### 函数功能

该函数在指定位置显示快捷菜单，并跟踪菜单项的选择。快捷菜单可出现在屏幕上的任何位置。

### 函数原型

BOOL TrackPopupMenu（HMENU hMenu，UINT uFlags，int x，int y，int nReserved，HWND hWnd，CONST RECT”prcRect）；
参数
hMenu：被显示的快捷菜单的句柄。此句柄可为调用CreatePopupMenu创建的新快捷菜单的句柄，也可以为调用GetSubMenu取得的与一个已存在菜单项相联系的子菜单的句柄。
uFlags：一种指定功能选项的位标志。用下列标志位之一来确定函数如何水平放置快捷菜单：
TPM_CENTERALLGN：若设置此标志，函数将按参数x指定的坐标水平居中放置快捷菜单。
TPM_LEFTALLGN：若设置此标志，函数使快捷菜单的左边界与由参数X指定的坐标对齐。
TPM_RIGHTALLGN：若设置此标志，函数使快捷菜单的右边界与由参数X指定的坐标对齐。
用下列标志位之一来确定函数如何垂直放置快捷菜单：
TPM_BOTTOMALLGN：若设置此标志，函数使快捷菜单的下边界与由参数y指定的坐标对齐。
TPM_TOPALLGN：若设置此标志，函数使快捷菜单的上边界与由参数y指定的坐标对齐。
TPM_VCENTERALLGN；若设置此标志，函数将按参数y指定的坐标垂直居中放置快捷菜单
用下列标志位之一来确定在菜单没有父窗口的情况下用户的选择：
TPM_NONOTIFY：若设置此标志，当用户单击菜单项时函数不发送通知消息。
TPM_RETURNCMD；若设置此标志；函数将用户所选菜单项的标识符返回到返回值里。
用下列标志位之一来确定在快捷菜单跟踪哪一个鼠标键：
TPM_LEFTBUTTON:若设置此标志，用户只能用鼠标左键选择菜单项。
TPM_RIGHTBUTTON：若设置此标志，用户能用鼠标左、右键选择菜单项。
X：在屏幕坐标下，快捷菜单的水平位置。
Y:在屏幕坐标下，快捷菜单的垂直位置。
NReserved：保留值，必须为零。
HWnd：拥有快捷菜单的窗口的句柄。此窗口接收来自菜单的所有消息。函数返回前，此窗口不接受来自菜单的WM_COMMAND消息。
如果在参数uFlags里指定了TPM_NONOTIFY值，此函数不向hWnd标识的窗口发消息。 但必须给hWnd里传一个窗口句柄，可以是应用程序里的任一个窗口句柄。
PrcRect：未用。

### 返回值

如果在参数uFlags里指定了TPM_RETURNCMD值，则返回值是用户选择的菜单项的标识符。如果用户未作选择就取消了菜单或发生了错误，则退回值是零。如果没在参数uFlags里指定TPM_RETURNCMD值，若函数调用成功，返回非零值，若函数调用失败，返回零。若想获得更多的错误信息，清调用GetLastError
函数:
备注：Windows CE不支持参数uFlags取下列值：TPM_NONOTIFY；TPM_LEFTBUTTON；TPM_RIGHTBUTTON。

### 速查

Windows NT：3.1及以上版本；Windows：95及以上版本；Windows CE：1.0及以上版本；头文件：winuser.h；输入库：user32.lib。