气泡响应鼠标单击事件
我用Shell_NotifyIcon函数弹出了一个气泡,现在需要点击这个气泡来弹出一个网页,请大侠指教气泡怎么响应鼠标单击消息呢?谢谢
[解决办法]
#define UM_NOTIFY 888 //可随便取一个用户消息id值
//产生icon
NOTIFYICONDATA NotifyIconData;
NotifyIconData-> cbSize = sizeof(NOTIFYICONDATA);
NotifyIconData-> hWnd = hWnd;
NotifyIconData-> uID = 1;
NotifyIconData-> uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
//点击icon时对应的消息id
NotifyIconData-> uCallbackMessage = UM_NOTIFY;
NotifyIconData-> hIcon = LoadIcon(hInst,(LPCTSTR)IDI_HIDEWINDOW);
sprintf(pNotifyIconData-> szTip, "HideWindow ^_^ ");
NotifyIconData-> uVersion = NOTIFYICON_VERSION;
Shell_NotifyIcon(NIM_ADD,pNotifyIconData);
Shell_NotifyIcon(NIM_SETVERSION,pNotifyIconData);
//处理UM_NOTIFY消息
case UM_NOTIFY:
switch(lParam)
{
case WM_CONTEXTMENU: //右键单击
DisplayContextMenu(hWnd);
break;
}
//显示菜单
VOID DisplayContextMenu(HWND hwnd)
{
HMENU hmenu; // top-level menu
HMENU hmenuTrackPopup; // shortcut menu
POINT pt;
int nMouse[3]={0};
//pt.x=100; pt.y=100;
GetCursorPos(&pt);
if ((hmenu = LoadMenu(hInst, (LPCTSTR)IDC_HIDEWINDOW)) == NULL)
return;
hmenuTrackPopup = GetSubMenu(hmenu, 0);
SetForegroundWindow(hwnd);
TrackPopupMenu(hmenuTrackPopup,
TPM_LEFTALIGN | TPM_RIGHTBUTTON,
pt.x, pt.y, 0, hwnd, NULL);
PostMessage(hwnd,WM_NULL,0,0);
DestroyMenu(hmenu);
}
LZ参考:
http://www.codeproject.com/Articles/74/Adding-Icons-to-the-System-Tray
http://topic.csdn.net/t/20030106/16/1331897.html