GetSystemMenu() 和GetMenu() 函数分别返回系统(或标准)菜单的句柄。使用 Windows API,我如何在获得句柄后打开/显示系统(或标准)菜单?
使用 Windows API 获得句柄后,要打开系统或标准菜单,可以使用 TrackPopupMenu() 函数。
这里有一个示例代码片段,演示了如何使用 TrackPopupMenu() 函数通过其句柄打开系统菜单:
HWND hWnd = // handle to the window whose system menu you want to open
HMENU hMenu = GetSystemMenu(hWnd, FALSE); // get the handle to the system menu
// get the position where the menu should be displayed
POINT cursorPos;
GetCursorPos(&cursorPos);
// open the system menu
TrackPopupMenu(hMenu, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_LEFTBUTTON,
cursorPos.x, cursorPos.y, 0, hWnd, NULL);
在此示例中,
hWnd
是您要打开其系统菜单的窗口的句柄。 GetSystemMenu()
函数被调用以获取系统菜单的句柄。 GetCursorPos()
函数被调用以获得菜单应该显示的位置。最后调用TrackPopupMenu()
函数在指定位置打开系统菜单
请注意,
TPM_LEFTALIGN
、TPM_TOPALIGN
和 TPM_LEFTBUTTON
标志用于指定菜单位置和行为。您可以根据您的具体要求调整这些标志。