弹出菜单问题无法正常工作 [英] Popup Menu Problem is not working properly
问题描述
下面的代码用于在系统任务栏图标上创建一个弹出菜单
无效的DisplayMenu(HWND hWnd)
{
HMENU hMenu;
POINT pCursor;
hMenu = LoadMenu(hInst,MAKEINTRESOURCE(IDC_GETSCREEN));
GetCursorPos(& pCursor);
TrackPopupMenu(hMenu,TPM_BOTTOMALIGN | TPM_LEFTBUTTON | TPM_NOANIMATION,pCursor.x,pCursor.y, 0 ,hWnd,NULL);
}
单击系统任务栏菜单上的此功能
IDC_GETSCREEN是菜单资源ID,其布局如下所示:
________ __________
|文件| |帮助|
-------- ----------
|退出| |关于|
--------- ------------
如您所见,这是使用Visual C ++的新项目创建的主菜单.
现在我的问题是
1.当我单击系统托盘上的图标时,它会创建菜单.但是文本文件和帮助不可见.即使我可以浏览菜单.
2.当我单击其他内容时,菜单不会消失.
谁能指出我的遗漏之处
在此先感谢
我解决了问题2
具有以下功能:
无效的DisplayMenu(HWND hWnd)
{
HMENU hMenu;
POINT pCursor;
hMenu = LoadMenu(hInst,MAKEINTRESOURCE(IDC_GETSCREEN));
GetCursorPos(& pCursor);
SetForegroundWindow(hWnd);
TrackPopupMenu(hMenu,TPM_BOTTOMALIGN | TPM_LEFTBUTTON | TPM_NOANIMATION,pCursor.x,pCursor.y, 0 ,hWnd,NULL);
PostMessage(hWnd,WM_NULL, 0 , 0 );
}
[/Edit]
您需要在弹出菜单中使用第二级菜单(子菜单);不,我不知道为什么.请查看本部分 [VOID DisplayMenu(HWND hWnd) { HMENU hMenu ; POINT pCursor; hMenu = LoadMenu(hInst,MAKEINTRESOURCE(IDC_GETSCREEN)); GetCursorPos(&pCursor); TrackPopupMenu(hMenu, TPM_BOTTOMALIGN | TPM_LEFTBUTTON | TPM_NOANIMATION, pCursor.x, pCursor.y, 0, hWnd, NULL); }
this function is being called on click on the system tray menu
IDC_GETSCREEN is a menu resource ID the lay out is given below:
________ __________
|File | | Help |
-------- ----------
|Exit | |About |
--------- ------------
As you see this is the primary menu that is created with new project of Visual C++.
Now My problem is
1. When when I click on the icon on the system tray it create the menu. but the text File and Help is not visible. Even though I can browse through the menu.
2. When I Click on something else the menu does not disappear.
Can anyone point me out my missing points
Thanks in advance
[Edit]I took care of problem 2
with below function:
VOID DisplayMenu(HWND hWnd) { HMENU hMenu ; POINT pCursor; hMenu = LoadMenu(hInst,MAKEINTRESOURCE(IDC_GETSCREEN)); GetCursorPos(&pCursor); SetForegroundWindow(hWnd); TrackPopupMenu(hMenu, TPM_BOTTOMALIGN | TPM_LEFTBUTTON | TPM_NOANIMATION, pCursor.x, pCursor.y, 0, hWnd, NULL); PostMessage(hWnd, WM_NULL, 0, 0); }
[/Edit]解决方案You need a second level of menu (a submenu) in a popup; and no I have no idea why. Take a look at this section[^] of one of my articles, for the code to do it.
这篇关于弹出菜单问题无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!