CMenu類為Windows HMENU的封裝類。它提供了成員函數(shù)以用于
創(chuàng)建、追蹤、更新及銷毀菜單。
在
本地的堆棧框架中創(chuàng)建一個CMenu對象,然后調(diào)用CMenu的成員函數(shù)來操縱所需的新菜單。
接著,調(diào)用CWnd::SetMenu函數(shù)為窗口設(shè)置菜單。然后立即調(diào)用CMenu對象的Detach成員函數(shù)。
CWnd::SetMenu成員函數(shù)將
窗口的菜單設(shè)置為新菜單,這將導(dǎo)致在窗口
刷新后將影響菜單的改變,同時也將菜單的
擁有者傳遞給窗口。調(diào)用
Detach函數(shù)將把HMENU從CMenu對象中分離出來,以便當(dāng)本地的CMenu變量超出范圍后,CMenu對象的構(gòu)造函數(shù)將不會銷毀不再擁有的菜單。
當(dāng)窗口銷毀后,菜單自動銷毀。
可以調(diào)用LoadMenuIndirect成員函數(shù)在內(nèi)存中創(chuàng)建來自模板的菜單,不過通過調(diào)用LoadMenu創(chuàng)建的菜單更容易維護(hù)。并且這種菜單資源本身也可以由菜單編輯器創(chuàng)建或修改。
#include <afxwin.h>
CMenu類的成員
數(shù)據(jù)成員
構(gòu)造函數(shù)
初始化
菜單操作
菜單項操作
可覆蓋的函數(shù)
DrawItem
|
通過框架來調(diào)用,其發(fā)生于擁有者菜單的可視部分有所改變
|
MeasureItem
|
通過框架來調(diào)用,用于決定當(dāng)創(chuàng)建了擁有者菜單時的菜單維數(shù) |