0
我想做一個小型的系統托盤程序只有一個上下文菜單作爲其GUI。通知圖標工具提示沒有顯示,儘管設置正確szTip
但是,我無法讓工具提示工作。我正確地設置了NOTIFYICONDATA的szTip並且其他所有東西似乎都能正常工作......什麼能夠防止鼠標懸停時顯示工具提示?
void main()
{
int result;
hinst = GetModuleHandle(NULL);
memset(&wnd, 0, sizeof(wnd));
wnd.cbSize = sizeof(wnd);
wnd.lpszClassName = "MainWClass";
wnd.lpfnWndProc = MainWProc;
wnd.hInstance = hinst;
result = RegisterClassEx(&wnd);
hwnd = CreateWindowEx
(
0, //extended styles
wnd.lpszClassName, //class name
"Main Window", //window name
WS_OVERLAPPEDWINDOW | WS_HSCROLL | WS_VSCROLL | WS_MINIMIZEBOX, //style tags
CW_USEDEFAULT, //horizontal position
CW_USEDEFAULT, //vertical position
CW_USEDEFAULT, //width
CW_USEDEFAULT, //height
(HWND) NULL, //parent window
(HMENU) NULL, //class menu
(HINSTANCE) wnd.hInstance, //some HINSTANCE pointer
NULL //Create Window Data?
);
nid.cbSize = sizeof(nid);
nid.hWnd = hwnd;
nid.uID = 1;
nid.uVersion = NOTIFYICON_VERSION_4;
nid.uCallbackMessage = WM_CONTEXTMENU;
nid.hIcon = LoadIcon(hinst, MAKEINTRESOURCE(IDI_ICON1));
strcpy(nid.szTip, "My Tooltip!");
nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
if(! Shell_NotifyIcon(NIM_ADD, &nid))
{
printf("Shell_NotifyIcon(NIM_ADD, &nid) failed.\r\n");
Sleep(INFINITE);
}
if(! Shell_NotifyIcon(NIM_SETVERSION, &nid))
{
printf("Shell_NotifyIcon(NIM_SETVERSION, &nid) failed.\r\n");
Sleep(INFINITE);
}
UpdateWindow(hwnd);
while(true)
{
//Dispatch for main window
if(PeekMessage(&msg, hwnd, NULL, NULL, PM_REMOVE))
{
DispatchMessage(&msg);
}
}
}
謝謝,它修復了它! – Joshua 2012-02-26 06:51:11