国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
系統(tǒng)托盤編程_平臺(tái)/系統(tǒng)_VC技術(shù)文章
系統(tǒng)托盤編程_平臺(tái)/系統(tǒng)_VC技術(shù)文章
作者:佚名 文章來源:互聯(lián)網(wǎng) 更新時(shí)間:2006-5-21

        Windows 95以及后來的Windows版本允許你將程序圖標(biāo)放入系統(tǒng)托盤。所謂系統(tǒng)托盤,通常指的是屏幕右下方顯示時(shí)間,音量等圖標(biāo)的那個(gè)區(qū)域。這個(gè)區(qū)域主要用于顯示狀態(tài)信息或者當(dāng)你運(yùn)行的程序不可見時(shí),允許你方便地訪問程序的主要特性。這個(gè)區(qū)域還可以用于顯示小程序的圖標(biāo),以便用戶容易訪問主程序,或者在預(yù)定的時(shí)間加載主程序。有些系統(tǒng)托盤圖標(biāo)可以變化用以指示程序狀態(tài),例如,瀏覽器的系統(tǒng)托盤圖標(biāo)當(dāng)modem接收和發(fā)送數(shù)據(jù)時(shí)顯示的是不同的圖標(biāo)。把鼠標(biāo)移到托盤圖標(biāo)上停留一下常常會(huì)顯示一個(gè)提示,根據(jù)程序的狀態(tài),它可能也會(huì)變化。在托盤圖標(biāo)上單擊鼠標(biāo)右鍵常常顯示一個(gè)程序菜單,而雙擊鼠標(biāo)左鍵常??梢詥?dòng)主窗口或應(yīng)用程序。訪問系統(tǒng)托盤的方法是通過Shell_NotifyIcon函數(shù)和NOTIFYICONDATA結(jié)構(gòu)實(shí)現(xiàn)的。

typedef struct _NOTIFYICONDATA {

DWORD cbSize;
HWND hWnd;
UINT uID;
UINT uFlags;
UINT uCallbackMessage;
HICON hIcon;
TCHAR szTip[64];
DWORD dwState; //Version 5.0
DWORD dwStateMask; //Version 5.0
TCHAR szInfo[256]; //Version 5.0
UINT uTimeout; //Version 5.0
TCHAR szInfoTitle[64]; //Version 5.0
DWORD dwInfoFlags; //Version 5.0
} NOTIFYICONDATA, *PNOTIFYICONDATA;
為了要在系統(tǒng)托盤中顯示圖標(biāo),用NIM_ADD標(biāo)志調(diào)用Shell_NotifyIcon函數(shù)。
#define ID_TASKBARICON 100
#define WM_ICONNOTIFY (WM_USER + 101)

NOTIFYICONDATA nid;

// 初始化系統(tǒng)托盤圖標(biāo)
nid.cbSize = sizeof(NOTIFYICONDATA);
nid.hWnd = hWnd;
nid.uID = ID_TASKBARICON;
nid.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP;
nid.uCallbackMessage = WM_ICONNOTIFY;
nid.hIcon = LoadImage(hInst, MAKEINTRESOURCE(IDI_TRAY1), IMAGE_ICON, 16, 16, 0);
strcpy(nid.szTip, "My Tooltip Text");
Shell_NotifyIcon(NIM_ADD, &nid);
cbSize成員是結(jié)構(gòu)的大?。ㄊ褂盟饕菫榱酥С謱磉@個(gè)結(jié)構(gòu)大小增加)。
hWnd是窗口句柄。當(dāng)圖標(biāo)發(fā)生某事件時(shí)(如單擊、雙擊等),Windows將向窗口發(fā)送uCallbackMessage成員指定的消息。uID成員指定與圖標(biāo)關(guān)聯(lián)的ID。它不是很重要,除非你需要顯示并跟蹤幾個(gè)圖標(biāo)。
uFlag成員告訴Windows應(yīng)該讀取哪個(gè)成員。當(dāng)添加一個(gè)圖標(biāo)時(shí),應(yīng)該包含這個(gè)結(jié)構(gòu)的大多數(shù)成員。當(dāng)更新圖標(biāo)時(shí),如只是需要改變圖標(biāo)時(shí),你只要設(shè)置相應(yīng)
的標(biāo)志就可以了。

hIcon成員是你想顯示的圖標(biāo)。
最后,szTip成員是提示文本。設(shè)置好這些結(jié)構(gòu)成員后,調(diào)用Shell_NotifyIcon函數(shù)。

當(dāng)與圖標(biāo)關(guān)聯(lián)的事件發(fā)生時(shí),Windows將發(fā)送uCallbackMessage成員指定的消息。IParam包含發(fā)送的消息。當(dāng)獲得WM_LBUTTONDBLCLK消息時(shí)顯示主窗口
或者啟動(dòng)主程序。當(dāng)獲得WM_RBUTTONUP消息時(shí)顯示菜單。

注意:如果在系統(tǒng)托盤中單擊鼠標(biāo)右鍵,有時(shí)會(huì)有一個(gè)彈出式(上下文菜單)菜單顯示/消失的怪現(xiàn)象,詳細(xì)信息擊解決辦法請(qǐng)參閱微軟知識(shí)庫(kù)文章Q135788,也可以參考下列代碼加以解決。
switch(nMsg) {
case WM_ICONNOTIFY:
switch(lParam) {
case WM_LBUTTONDBLCLK:
// Load main window here
break;
case WM_RBUTTONUP:
{
POINT point;
HMENU hMenu, hSubMenu;
// Get mouse position
GetCursorPos(&point);
// Popup context menu
hMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_MYMENU));
hSubMenu = GetSubMenu(hMenu, 0);
SetMenuDefaultItem(hSubMenu, IDM_DEFAULTCMD, FALSE);
SetForegroundWindow(hMainDlg); // Per KB Article Q135788
TrackPopupMenu(hSubMenu,
TPM_LEFTBUTTON|TPM_RIGHTBUTTON|TPM_LEFTALIGN,
point.x, point.y, 0, hWnd, NULL);
PostMessage(hMainDlg, WM_NULL, 0, 0); // Per KB Article Q135788
DestroyMenu(hMenu);
}
break;
default:
return FALSE;
}
}
不論什么時(shí)候,你都可以用 NIM_MODIFY 調(diào)用 Shell_NotifyIcon。程序終止之前,用 NIM_DELETE 調(diào)用 Shell_NotifyIcon從托盤中清除圖標(biāo)。

Shell_NotifyIcon(NIM_DELETE, &nid);

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
托盤編程全接觸
VC中系統(tǒng)托盤圖標(biāo)的實(shí)現(xiàn)
c++ win32下窗口的最小化到托盤以及還原
Delphi托盤編程實(shí)戰(zhàn)演練
最小化Excel 至系統(tǒng)托盤
VC++如何在托盤區(qū)顯示程序圖標(biāo) >> 瀑布集
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服