如何使用手柄打开系统或标准菜单?

问题描述 投票:0回答:1

GetSystemMenu()GetMenu() 函数分别返回系统(或标准)菜单的句柄。使用 Windows API,我如何在获得句柄后打开/显示系统(或标准)菜单?

winapi menu
1个回答
1
投票

使用 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
标志用于指定菜单位置和行为。您可以根据您的具体要求调整这些标志。

© www.soinside.com 2019 - 2024. All rights reserved.