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



void ClistbDlg::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息處理程序代碼和/或調用默認值
CMenu menu;
menu.LoadMenu(IDR_MENU1);
CMenu* pPopup=menu.GetSubMenu(0);
//ClientToScreen( )是把窗口坐標轉換為屏幕坐標
//ScreenToClient( )是把屏幕坐標轉換為窗口坐標
//屏幕坐標是相對于屏幕左上角的,而窗口坐標是相對于窗口用戶區左上角的
ClientToScreen(&point);
//該函數在指定位置顯示快捷菜單,并跟蹤菜單項的選擇
//TPM_LEFTBUTTON:若設置此標志,用戶只能用鼠標左鍵選擇菜單項。
//TPM_RIGHTBUTTON:若設置此標志,用戶能用鼠標左、右鍵選擇菜單項。
//X:在屏幕坐標下,快捷菜單的水平位置。
//Y:在屏幕坐標下,快捷菜單的垂直位置。 pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);
CDialog::OnRButtonDown(nFlags, point);
}
CMenu類的成員 數據成員 m_hMenu 指定附加給CMenu對象的窗口菜單的句柄 |
構造函數 初始化 Attach 附加一個Windows菜單句柄給CMenu對象 Detach 從CMenu對象中分離Windows菜單的句柄,并返回該句柄 FromHandle 返回一個指向給定Windows菜單句柄的CMenu對象的指針 GetSafeHmenu 返回由CMenu對象包含的m_hMenu值 DeleteTempMap 刪除由FromHandle成員函數創建的所有臨時CMenu對象 CreateMenu 創建一個空菜單,并將其附加給CMenu對象 CreatePopupMenu 創建一個空的彈出菜單,并將其附加給CMenu對象 LoadMenu 從可執行文件中裝載菜單資源,并將其附加給CMenu對象LoadMenuIndirect從內存的菜單模板中裝載菜單,并將其附加給CMenu對象 DestroyMenu 銷毀附加給CMenu對象的菜單,并釋放菜單占用的內存 |
菜單操作 菜單項操作 可覆蓋的函數 DrawItem 通過框架來調用,其發生于擁有者菜單的可視部分有所改變 MeasureItem 通過框架來調用,用于決定當創建了擁有者菜單時的菜單維數 |