Posted on 2012-10-24 10:47
盛勝 閱讀(359)
評論(0) 編輯 收藏 引用
1. 在資源文件中添加Menu



void ClistbDlg::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息處理程序代碼和/或調(diào)用默認(rèn)值
CMenu menu;
menu.LoadMenu(IDR_MENU1);
CMenu* pPopup=menu.GetSubMenu(0);
//ClientToScreen( )是把窗口坐標(biāo)轉(zhuǎn)換為屏幕坐標(biāo)
//ScreenToClient( )是把屏幕坐標(biāo)轉(zhuǎn)換為窗口坐標(biāo)
//屏幕坐標(biāo)是相對于屏幕左上角的,而窗口坐標(biāo)是相對于窗口用戶區(qū)左上角的
ClientToScreen(&point);
//該函數(shù)在指定位置顯示快捷菜單,并跟蹤菜單項(xiàng)的選擇
//TPM_LEFTBUTTON:若設(shè)置此標(biāo)志,用戶只能用鼠標(biāo)左鍵選擇菜單項(xiàng)。
//TPM_RIGHTBUTTON:若設(shè)置此標(biāo)志,用戶能用鼠標(biāo)左、右鍵選擇菜單項(xiàng)。
//X:在屏幕坐標(biāo)下,快捷菜單的水平位置。
//Y:在屏幕坐標(biāo)下,快捷菜單的垂直位置。 pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);
CDialog::OnRButtonDown(nFlags, point);
}
CMenu類的成員 數(shù)據(jù)成員 m_hMenu 指定附加給CMenu對象的窗口菜單的句柄 |
構(gòu)造函數(shù) 初始化 Attach 附加一個Windows菜單句柄給CMenu對象 Detach 從CMenu對象中分離Windows菜單的句柄,并返回該句柄 FromHandle 返回一個指向給定Windows菜單句柄的CMenu對象的指針 GetSafeHmenu 返回由CMenu對象包含的m_hMenu值 DeleteTempMap 刪除由FromHandle成員函數(shù)創(chuàng)建的所有臨時CMenu對象 CreateMenu 創(chuàng)建一個空菜單,并將其附加給CMenu對象 CreatePopupMenu 創(chuàng)建一個空的彈出菜單,并將其附加給CMenu對象 LoadMenu 從可執(zhí)行文件中裝載菜單資源,并將其附加給CMenu對象LoadMenuIndirect從內(nèi)存的菜單模板中裝載菜單,并將其附加給CMenu對象 DestroyMenu 銷毀附加給CMenu對象的菜單,并釋放菜單占用的內(nèi)存 |
菜單操作 DeleteMenu 從菜單中刪除指定的項(xiàng)。如果菜單項(xiàng)與彈出菜單相關(guān)聯(lián),那么將銷毀彈出菜單的句柄,并釋放它占用的內(nèi)存 TrackPopupMenu 在指定的位置顯示浮動菜單,并跟蹤彈出菜單的選擇項(xiàng) |
菜單項(xiàng)操作 AppendMenu 在該菜單末尾添加新的菜單項(xiàng) CheckMenuItem 在彈出菜單的菜單項(xiàng)中放置或刪除檢測標(biāo)記 CheckMenuRadioItem 將單選鈕放置在菜單項(xiàng)之前,或從組中所有的其它菜單項(xiàng)中刪除單選鈕 SetDefaultItem 為指定的菜單設(shè)置缺省的菜單項(xiàng)GetDefaultItem獲取指定的菜單缺省的菜單項(xiàng) EnableMenuItem 使菜單項(xiàng)有效、無效或變灰GetMenuItemCount決定彈出菜單或頂層菜單的項(xiàng)數(shù) GetMenuItemID 獲取位于指定位置菜單項(xiàng)的菜單項(xiàng)標(biāo)識 GetMenuState 返回指定菜單項(xiàng)的狀態(tài)或彈出菜單的項(xiàng)數(shù) GetMenuString 獲取指定菜單項(xiàng)的標(biāo)簽GetMenuItemInfo獲取有關(guān)菜單項(xiàng)的信息 GetSubMenu 獲取指向彈出菜單的指針 InsertMenu 在指定位置插入新菜單項(xiàng),并順次下移其它菜單項(xiàng) ModifyMenu 改變指定位置的已存在的菜單項(xiàng) RemoveMenu 從指定的菜單中刪除與彈出菜單相關(guān)聯(lián)的菜單項(xiàng) SetMenuItemBitmaps 將指定檢測標(biāo)記的位圖與菜單項(xiàng)關(guān)聯(lián) GetMenuCountextHelpID 獲取與菜單關(guān)聯(lián)的幫助文本的ID號 SetMenuCountextHelpID 設(shè)置與菜單關(guān)聯(lián)的幫助文本的ID號 |
可覆蓋的函數(shù) DrawItem 通過框架來調(diào)用,其發(fā)生于擁有者菜單的可視部分有所改變 MeasureItem 通過框架來調(diào)用,用于決定當(dāng)創(chuàng)建了擁有者菜單時的菜單維數(shù) |