日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

VC创建系统托盘

發(fā)布時(shí)間:2024/4/11 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VC创建系统托盘 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


1.創(chuàng)建菜單資源? ID:? IDR_MENU_NOTIFY
??????????????? 添加子菜單? 顯示? IDM_NOTIFY_SHOW
??????????????????????????? 退出? IDM_NOTIFY_CLOSE
2.認(rèn)識(shí)一個(gè)API
??????? Shell_NotifyIcon
???????? BOOL Shell_NotifyIcon(??????????????????? //向系統(tǒng)托盤中加入圖標(biāo)
?????????????????????????? DWORD dwMessage,???????? //狀態(tài)????????? ?
?????????????????????????? PNOTIFYICONDATA lpdata?? //含有圖標(biāo)? 消息響應(yīng) 的一個(gè)結(jié)構(gòu)體
???????? );

?3.認(rèn)識(shí)NOTIFYICONDATA? 結(jié)構(gòu)體:
?????????? typedef struct _NOTIFYICONDATA {
??? DWORD cbSize;?????? //結(jié)構(gòu)體自身大小
??? HWND hWnd;????????? //托盤的父窗口? 托盤發(fā)出的消息由哪一個(gè)窗口響應(yīng)
??? UINT uID;?????????? //顯示圖標(biāo)的ID
??? UINT uFlags;???????? //托盤的狀態(tài) (如有圖標(biāo),有氣泡提示,有消息響應(yīng)等)
??? UINT uCallbackMessage; //托盤事件的消息響應(yīng)函數(shù)
??? HICON hIcon;??????????? //圖標(biāo)的變量
??? TCHAR szTip[64];??????? //氣泡的顯示文字
??? DWORD dwState;????????? //圖標(biāo)的顯示狀態(tài)
??? DWORD dwStateMask;????? //圖標(biāo)的顯示狀態(tài)
??? TCHAR szInfo[256];????? //氣泡的顯示文字? (可以忽略)
??? union {
??????? UINT uTimeout;
??????? UINT uVersion;
??? };
??? TCHAR szInfoTitle[64];
??? DWORD dwInfoFlags;
??? GUID guidItem;
??? HICON hBalloonIcon;
} NOTIFYICONDATA, *PNOTIFYICONDATA;

4.在oninitdialog函數(shù)中寫入加入系統(tǒng)脫盤的代碼:


??????? NOTIFYICONDATA nid; //這句話最好添加在頭文件里面
????? ?
??????? nid.cbSize = sizeof(nid);???? //大小賦值
?? ?nid.hWnd = m_hWnd;?????????? //父窗口
?? ?nid.uID = IDR_MAINFRAME;???? //icon? ID
?? ?nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;?? //托盤所擁有的狀態(tài)
?? ?nid.uCallbackMessage = UM_ICONNOTIFY;??????????? //回調(diào)消息
?? ?nid.hIcon = m_hIcon;??????????????????????????? //icon 變量
?? ?CString str="PCRemote遠(yuǎn)程協(xié)助軟件.........";?????? //氣泡提示
?? ?lstrcpyn(nid.szTip, (LPCSTR)str, sizeof(nid.szTip) / sizeof(nid.szTip[0]));
?? ?Shell_NotifyIcon(NIM_ADD, &nid);?? //顯示托盤

5.演示 ,在窗口銷毀時(shí)托盤依然存在

6.添加WM_CLOSE消息并寫入代碼:
????? Shell_NotifyIcon(NIM_DELETE, &nid); //銷毀圖標(biāo)

7.stdafx.h文件中加入自定義消息的定義
???? //自定義消息
enum
{
?? ?UM_ICONNOTIFY= WM_USER+0x100,
};


8.聲明消息處理函數(shù):
???? afx_msg void OnIconNotify(WPARAM wParam,LPARAM lParam);


9.? cpp文件中寫入代碼:
?????? void CPCRemoteDlg::OnIconNotify(WPARAM wParam, LPARAM lParam)
{
?? ?switch ((UINT)lParam)
?? ?{
?? ?case WM_LBUTTONDOWN: // click or dbclick left button on icon
?? ?case WM_LBUTTONDBLCLK: // should show desktop
?? ??? ?if (!IsWindowVisible())
?? ??? ??? ?ShowWindow(SW_SHOW);
?? ??? ?else
?? ??? ??? ?ShowWindow(SW_HIDE);
?? ??? ?break;
?? ?case WM_RBUTTONDOWN: // click right button, show menu
?? ??? ?CMenu menu;
?? ??? ?menu.LoadMenu(IDR_MENU_NOTIFY);
?? ??? ?CPoint point;
?? ??? ?GetCursorPos(&point);
?? ??? ?SetForegroundWindow();
?? ??? ?menu.GetSubMenu(0)->TrackPopupMenu(
?? ??? ??? ?TPM_LEFTBUTTON|TPM_RIGHTBUTTON,
?? ??? ??? ?point.x, point.y, this, NULL);
?? ??? ?PostMessage(WM_USER, 0, 0);
?? ??? ?break;
?? ?}
}


10.添加消息響應(yīng):
?? ?ON_MESSAGE(UM_ICONNOTIFY,OnIconNotify) ?

11.添加顯示菜單消息響應(yīng)
?? ?














1.創(chuàng)建菜單資源? ID:? IDR_MENU_NOTIFY
??????????????? 添加子菜單? 顯示? IDM_NOTIFY_SHOW
??????????????????????????? 退出? IDM_NOTIFY_CLOSE
2.認(rèn)識(shí)一個(gè)API
??????? Shell_NotifyIcon
???????? BOOL Shell_NotifyIcon(??????????????????? //向系統(tǒng)托盤中加入圖標(biāo)
?????????????????????????? DWORD dwMessage,???????? //狀態(tài)????????? ?
?????????????????????????? PNOTIFYICONDATA lpdata?? //含有圖標(biāo)? 消息響應(yīng) 的一個(gè)結(jié)構(gòu)體
???????? );

?3.認(rèn)識(shí)NOTIFYICONDATA? 結(jié)構(gòu)體:
?????????? typedef struct _NOTIFYICONDATA {
??? DWORD cbSize;?????? //結(jié)構(gòu)體自身大小
??? HWND hWnd;????????? //托盤的父窗口? 托盤發(fā)出的消息由哪一個(gè)窗口響應(yīng)
??? UINT uID;?????????? //顯示圖標(biāo)的ID
??? UINT uFlags;???????? //托盤的狀態(tài) (如有圖標(biāo),有氣泡提示,有消息響應(yīng)等)
??? UINT uCallbackMessage; //托盤事件的消息響應(yīng)函數(shù)
??? HICON hIcon;??????????? //圖標(biāo)的變量
??? TCHAR szTip[64];??????? //氣泡的顯示文字
??? DWORD dwState;????????? //圖標(biāo)的顯示狀態(tài)
??? DWORD dwStateMask;????? //圖標(biāo)的顯示狀態(tài)
??? TCHAR szInfo[256];????? //氣泡的顯示文字? (可以忽略)
??? union {
??????? UINT uTimeout;
??????? UINT uVersion;
??? };
??? TCHAR szInfoTitle[64];
??? DWORD dwInfoFlags;
??? GUID guidItem;
??? HICON hBalloonIcon;
} NOTIFYICONDATA, *PNOTIFYICONDATA;

4.在oninitdialog函數(shù)中寫入加入系統(tǒng)脫盤的代碼:


??????? NOTIFYICONDATA nid; //這句話最好添加在頭文件里面
????? ?
??????? nid.cbSize = sizeof(nid);???? //大小賦值
?? ?nid.hWnd = m_hWnd;?????????? //父窗口
?? ?nid.uID = IDR_MAINFRAME;???? //icon? ID
?? ?nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;?? //托盤所擁有的狀態(tài)
?? ?nid.uCallbackMessage = UM_ICONNOTIFY;??????????? //回調(diào)消息
?? ?nid.hIcon = m_hIcon;??????????????????????????? //icon 變量
?? ?CString str="PCRemote遠(yuǎn)程協(xié)助軟件.........";?????? //氣泡提示
?? ?lstrcpyn(nid.szTip, (LPCSTR)str, sizeof(nid.szTip) / sizeof(nid.szTip[0]));
?? ?Shell_NotifyIcon(NIM_ADD, &nid);?? //顯示托盤

5.演示 ,在窗口銷毀時(shí)托盤依然存在

6.添加WM_CLOSE消息并寫入代碼:
????? Shell_NotifyIcon(NIM_DELETE, &nid); //銷毀圖標(biāo)

7.stdafx.h文件中加入自定義消息的定義
???? //自定義消息
enum
{
?? ?UM_ICONNOTIFY= WM_USER+0x100,
};


8.聲明消息處理函數(shù):
???? afx_msg void OnIconNotify(WPARAM wParam,LPARAM lParam);


9.? cpp文件中寫入代碼:
?????? void CPCRemoteDlg::OnIconNotify(WPARAM wParam, LPARAM lParam)
{
?? ?switch ((UINT)lParam)
?? ?{
?? ?case WM_LBUTTONDOWN: // click or dbclick left button on icon
?? ?case WM_LBUTTONDBLCLK: // should show desktop
?? ??? ?if (!IsWindowVisible())
?? ??? ??? ?ShowWindow(SW_SHOW);
?? ??? ?else
?? ??? ??? ?ShowWindow(SW_HIDE);
?? ??? ?break;
?? ?case WM_RBUTTONDOWN: // click right button, show menu
?? ??? ?CMenu menu;
?? ??? ?menu.LoadMenu(IDR_MENU_NOTIFY);
?? ??? ?CPoint point;
?? ??? ?GetCursorPos(&point);
?? ??? ?SetForegroundWindow();
?? ??? ?menu.GetSubMenu(0)->TrackPopupMenu(
?? ??? ??? ?TPM_LEFTBUTTON|TPM_RIGHTBUTTON,
?? ??? ??? ?point.x, point.y, this, NULL);
?? ??? ?PostMessage(WM_USER, 0, 0);
?? ??? ?break;
?? ?}
}


10.添加消息響應(yīng):
?? ?ON_MESSAGE(UM_ICONNOTIFY,OnIconNotify) ?

11.添加顯示菜單消息響應(yīng)
?? ?












總結(jié)

以上是生活随笔為你收集整理的VC创建系统托盘的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。