CMenu menu,*pMenu;
menu.LoadMenu(IDR_MENU_MANAGE);
CRect pt;
GetDlgItem(IDC_BUTTON)->GetWindowRect(&pt);
pMenu = menu.GetSubMenu(0);
pMenu->TrackPopupMenu(TPM_LEFTALIGN,ppt.left,ppt.bottom,this);
TrackPopupMenu();
函數功能:該函數在指定位置顯示快捷菜單,并跟蹤菜單項的選擇。快捷菜單可出現在螢幕上的任何位置。
函數原型:BOOL TrackPopupMenu(HMENU hMenu, UINT uFlags, int x, int y, int nReserved, HWND hWnd, CONST RECT* prcRect);
CheckMenuItem();
函數功能:該函數取得與指定菜單項相聯系的菜單标志。如果該菜單項打開了一個子菜單,該函數也傳回子菜單裡的菜單項數。
函數原型:DWORD CheckMenuItem(HMENU hmenu, UINT uIDCheckItem, UINT uCheck);
參數:
hmenu:含有其菜單項的标志将被提取得的菜單的句柄。
uIDCheckItem:指定要修改的菜單項。
uCheck:表示标記的狀态。此參數可取下列值之一:
MF_BYCOMMAND:表示參數uId給出菜單項的辨別符。如果MF_BYCOMMAND和MF_BYPOSITION都沒被指定,則MF_BYCOMMAND是預設值。
MF_BYPOSITION:表示參數uId給出菜單項相對于零的位置。
傳回值:如果指定的項不存在,傳回值是OXFFFFFFFF;如果菜單項打開了一個子菜單,則傳回值的低位含有與菜單相聯系的菜單标志,高位含有子菜單的項數。否則,傳回值是萊單标志的掩碼(布爾OR)。
下面列出與菜單項相關的菜單标志。
MF_CHECKED:放置選取标記于菜單項旁邊(隻用于下拉式菜單、子菜單或快捷菜單)。
MF_DISABLED:使菜單項無效。MF_GRAYED:使菜單項無效并交灰。MF_HILITE:加亮菜單項。
MF_MENUBARBREAK:對下拉式菜單、子菜單和快捷菜單,新列和舊列由垂直線隔開,其餘功能同MF_MENUBREAK标志。
MF_MENUBREAK:将菜單項放于新行(對菜單條)或無分隔列地放于新列(對下拉式菜單、子菜單或快捷菜單)。
MF_SEPARATOR:建立一個水準分隔線(隻用于下拉式菜單、子菜單或快捷菜單)。
MF_UNCHECKED: 相當于MF_CHECKED 的反作用,取消放置于菜單項旁邊的标記。