程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 淺析Visual C++開發實現方法

淺析Visual C++開發實現方法

編輯:C++入門知識

其實Visual C++不僅是一個C++編譯器,而且是一個基於Windows操作系統的可視化集成開發環境,對於Visual C++這些組件通過一個很重要的組件集成為一個良好的開發環境,還有一些對Visual C++開發實現方法介紹。

這些程序運行時不顯示運行窗口,只在任務欄上顯示一個圖標,表示程序正在運行,用戶可以通過鼠標與應用程序交互,程序開發人員有時也需要編制一些僅在後台運行的類似程序,為了不干擾前台程序的運行界面和不顯示不必要的窗口,應使程序運行時的主窗口不可見。

同時將一個圖標顯示在任務欄右端靜態通告區中並響應用戶的鼠標動作。本實例就介紹Visual C++開發這類程序的設計方法,該程序編譯運行後,如果雙擊托盤圖標,程序會彈出一個消息列表窗口,只要鼠標在托盤圖標上移動或點擊無論是左右鍵的單擊或雙擊),產生的消息都會顯示在這個窗口。

  • 探索C++編譯器構造
  • 說明C++編譯器編譯問題
  • 簡介學習C++總結之談
  • 淺析java、C#、C++及VC之間關系
  • C++語言真的還有市場價值?

當鼠標光標移到托盤圖標上時,在圖標附近會顯示提示信息;單擊右鍵時彈出上下文菜單,這個菜單中應包含打開屬性頁的命令或者打開與圖標相關的其它窗口的命令,另外,該程序還可以動態的改變托盤的圖標。參照這個例子,相信讀者能輕松自如地在自己的程序中應用系統托盤。

Visual C++開發實現方法
為了實現拖盤程序,首先要使程序的主窗口不可見,這點實現起來十分容易,只要調用ShowWindow(SW_HIDE)就可以了,本實例采用的就是這種方法,還有一種思路是通過分別設置主邊框窗口的風格和擴展風格來隱藏主框架:

在任務條上顯示圖標是利用系統API函數Shell_NotifyIcon)來將一個圖標顯示在任務欄的通告區中。該函數的原型為:BOOL Shell_NotifyIcon(DWORD dwMessage, PNOTIFYICONDATA pnid); 該函數的第一個參數dwMessage類型為DWORD,表示要進行的動作,它可以是下面的值之一:

  1. BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)   
  2. {   
  3. cs.style =WS_POPUP;//使主窗口不可見;   
  4. cs.dwExStyle =WS_EX_TOOLWINDOW;//不顯示任務按鈕;   
  5. return CFrameWnd::PreCreateWindow(cs);   

NIM_ADD:添加一個圖標到任務欄。NIM_MODIFY:修改狀態欄區域的圖標。NIM_DELETE:刪除狀態欄區域的圖標。IM_SETFOCUS:將焦點返回到任務欄通知區域。當完成用戶界面操作時,任務欄圖標必須用此消息。例如,如果任務欄圖標正顯示上下文菜單,但用戶按下"ESCAPE"鍵取消操作,這時就必須用此消息將焦點返回到任務欄通知區域。

NIM_SETVERSION:指示任務欄按照相應的動態庫版本工作。第二個參數pnid是NOTIFYICONDATA結構的地址,其內容視dwMessage的值而定。這個結構在SHELLAPI.H文件中定義如下:

  1. BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)   
  2. {   
  3. cs.style =WS_POPUP;//使主窗口不可見;   
  4. cs.dwExStyle =WS_EX_TOOLWINDOW;//不顯示任務按鈕;   
  5. return CFrameWnd::PreCreateWindow(cs);   

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved