自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

怎樣實(shí)現(xiàn)Visual C++系統(tǒng)托盤

開發(fā) 后端
下文著重介紹一下Visual C++開發(fā)這類程序的設(shè)計(jì)方法,這些內(nèi)容都是一些門戶網(wǎng)站和技術(shù)論壇找到的,中間可能有不妥當(dāng)?shù)膯栴},歡迎大家學(xué)習(xí)指正。

微軟中國公司與1993年推出的Visual C++1.0后,Visual C++已成為專業(yè)程序員進(jìn)行軟件開發(fā)的首選工具,隨著時代的進(jìn)步科技的發(fā)展Visual C++版本也快速的提升與升級,Visual C++開發(fā)也變成了一件容易的事情了。

這些程序運(yùn)行時不顯示運(yùn)行窗口,只在任務(wù)欄上顯示一個圖標(biāo),表示程序正在運(yùn)行,用戶可以通過鼠標(biāo)與應(yīng)用程序交互,程序開發(fā)人員有時也需要編制一些僅在后臺運(yùn)行的類似程序,為了不干擾前臺程序的運(yùn)行界面和不顯示不必要的窗口,應(yīng)使程序運(yùn)行時的主窗口不可見。

同時將一個圖標(biāo)顯示在任務(wù)欄右端靜態(tài)通告區(qū)中并響應(yīng)用戶的鼠標(biāo)動作。本實(shí)例就介紹Visual C++開發(fā)這類程序的設(shè)計(jì)方法,該程序編譯運(yùn)行后,如果雙擊托盤圖標(biāo),程序會彈出一個消息列表窗口,只要鼠標(biāo)在托盤圖標(biāo)上移動或點(diǎn)擊(無論是左右鍵的單擊或雙擊),產(chǎn)生的消息都會顯示在這個窗口里;當(dāng)鼠標(biāo)光標(biāo)移到托盤圖標(biāo)上時,在圖標(biāo)附近會顯示提示信息;#t#

單擊右鍵時彈出上下文菜單,這個菜單中應(yīng)包含打開屬性頁的命令或者打開與圖標(biāo)相關(guān)的其它窗口的命令,另外,該程序還可以動態(tài)的改變托盤的圖標(biāo)。參照這個例子,相信讀者能輕松自如地在自己的程序中應(yīng)用系統(tǒng)托盤。

一、實(shí)現(xiàn)方法

為了實(shí)現(xiàn)拖盤程序,首先要使程序的主窗口不可見,這點(diǎn)實(shí)現(xiàn)起來十分容易,只要調(diào)用ShowWindow(SW_HIDE)就可以了,本實(shí)例采用的就是這種方法,還有一種思路是通過分別設(shè)置主邊框窗口的風(fēng)格和擴(kuò)展風(fēng)格來隱藏主框架:

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

在任務(wù)條上顯示圖標(biāo)是利用系統(tǒng)API函數(shù)Shell_NotifyIcon()來將一個圖標(biāo)顯示在任務(wù)欄的通告區(qū)中。該函數(shù)的原型為:  

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

在該結(jié)構(gòu)的成員中,cbSize為該結(jié)構(gòu)所占的字節(jié)數(shù),hWnd為接受該圖標(biāo)所發(fā)出的消息的窗口的句柄(鼠標(biāo)在任務(wù)欄上程序圖標(biāo)上動作時圖標(biāo)將發(fā)出消息,這個消息用戶要自己定義),uID為被顯示圖標(biāo)的ID,uFlags指明其余的幾個成員(hIcon、uCallBackMessage和szTip)的值是否有效。

uCallbackMessage為一個用戶自定義的消息,當(dāng)用戶在該圖標(biāo)上作用一些鼠標(biāo)動作時,圖標(biāo)將向應(yīng)用程序的主框架窗口(hWnd成員中指定的窗口)發(fā)出該消息,為了使程序的主框架得到該通知消息,Visual C++開發(fā)需要設(shè)置NOTIFYICONDATA 結(jié)構(gòu)的flag成員的值為NIF_MESSAGE。hIcon為將在任務(wù)欄上顯示的圖標(biāo)句柄,szTip鼠標(biāo)停留在該圖標(biāo)上時顯示的提示字符串。

【編輯推薦】

  1. 簡介學(xué)習(xí)C++總結(jié)之談
  2. 對C++庫函數(shù)進(jìn)行學(xué)習(xí)探索總結(jié)筆記
  3. C++類庫設(shè)計(jì)的基本構(gòu)思與方法
  4. C++語言真的還有市場價值?
  5. C++類庫設(shè)計(jì)的基本構(gòu)思與方法
責(zé)任編輯:chenqingxiang 來源: 51CTO.com
相關(guān)推薦

2012-01-17 10:43:26

Java

2011-04-21 13:46:54

Ubuntu Unit

2009-02-22 09:11:16

Windows音量顯示

2011-04-18 15:33:33

Ubuntu 11.0

2011-08-23 09:33:19

Ubuntu系統(tǒng)托盤

2010-01-18 14:41:52

Visual C++開

2011-01-19 14:40:45

Thunderbird

2025-04-25 09:35:39

WinformWindows系統(tǒng)托盤

2010-01-11 11:02:59

Visual C++

2020-03-06 08:00:02

Multipass系統(tǒng)虛擬機(jī)

2022-12-17 17:00:21

Windows 11微軟

2010-01-18 15:40:37

Visual C++工

2010-01-22 13:59:34

Visual C++應(yīng)

2010-01-15 14:52:33

Visual C++

2010-01-28 16:16:32

C++多態(tài)性

2010-01-25 10:25:19

C++變量

2010-01-20 14:35:55

C++調(diào)用

2009-11-12 10:05:09

Visual C++

2009-11-12 11:00:56

Visual C++

2023-11-30 08:26:01

微軟Windows
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號