(1) Attach方法
该方法用于将句柄关联到菜单对象上
语法:
BOOL Attach(HMENU hMenu);
hMenu:标识菜单句柄。
返回值:成功返回非零值,否则,执行失败;
(2)Detach()
和Attach方法相反,该方法从菜单对象上分离菜单句柄。
语法:
HMENU Detach()
返回值:分离菜单的句柄
(3)FromHandle方法
根据菜单句柄返回一个菜单对象的指针,如果句柄没有关联菜单对象,一个临时菜单对象指针将被查创建
语法:
static CMenu* PASCAL FromHandle(HMENU hMenu)
hMenu:标识菜单句柄
返回值:菜单指针对象
(4)CreateMenu方法
该方法用于创建一个菜单窗口,并将其关联到菜单对象上。
语法:
BOOL CreateMenu()
返回值:执行成功返回非零值。
(5)CreatePopupMenu方法
该方法用于创建一个弹出式菜单,并将其关联到菜单对象上
BOOL CreatePopupMenu()
返回值:执行成功返回非零值,否则,失败
(6)LoadMenu方法
从应用程序中加载一个菜单资源,将其关联到菜单对象上
语法:
BOOL LoadMenu(LPCTSTR lpszResourceName )
BOOL LoadMenu(UINT nIDResouce);
lpszResourceName:标识资源名称
nIDResource:标识资源ID
返回值:执行成功返回非零值
(7)DestroyMenu方法
释放菜单资源,在菜单窗口被释放前,它将从菜单对象上分离出来
语法:
BOOL DestroyMenu()
(8) DeleteMenu方法
从菜单中删除一个菜单项
语法
BOOL DeleteMenu(UINT nPosition,UNIT nFlags)
nPosition:标识一个菜单项
nFlags:决定解释nPosition的方式
MF_BYCOMMAND 根据nPosition标识的菜单ID删除菜单项
MF_BYPOSITION 根据nPosition标识的菜单位置删除菜单项
(9) TrackPopupMenu方法
用于显示一个弹出式菜单
语法:
BOOL TracePopupMenu(UINT nFlags,int x,int y,CWind *pWnd,LPCRECT lpRect=NULL)
nFlags:表示屏幕标记和鼠标按钮标记,可选值为:
TPM_CENTERALIGN 在x水平位置居中显示菜单
TPM_LEFTALIGN 在x水平位置左方显示菜单
TPM_RIGHTALIGN 在x水平位置右方显示菜单
TPM_LEFTBUTTOM 单击鼠标左键显示弹出式菜单
TPM_RIGHTBUTTOM 单击鼠标右键显示弹出式菜单
x,y:以屏幕坐标标识的弹出式菜单的坐标
pWnd:标识弹出式菜单的所有者
lpRect:以屏幕坐标表示用户在菜单中的单击区域,如果为NULL,则当用户单击弹出式菜单之外的区域时,将释放菜单窗口
(10)AppendMenu方法
在菜单项的末尾添加一个新菜单
语法
BOOL AppendMenu(UINT nFlags,UINT nIDNewItem=0,LPCTSTR lpszNewItem=NULL)
BOOL AppendMenu(UINT nFlags,UINT nIDNewItem,const CBibtmap *pBmp)
nFlags:标识菜单项的状态信息
nIDNewItem:标识菜单项的ID
lpszNewItem:标识菜单项的内容
pBmp:标识关联菜单的位图对象指针
(11)GetMenuItemCount方法
用于返回弹出式菜单或顶层菜单的菜单数
语法
UINT GetMenuCount() const
返回值:如果菜单没有子菜单,返回-1,否则,返回子菜单数
(12)GetMenuItemID方法
根据菜单项的位置返回菜单项的ID,如果菜单是一个弹出式菜单,返回-1,如果是分隔条,返回0
语法
uint GetMenuItemID(int nPos) const
nPos:标识菜单项的位置
(13)GetMenuString方法
获取菜单项的文本
语法
int GetMenuString(UINT nIDItem,LPTSTR lpString,int nMaxCount,UINT nFlags) const
int GetMenuString(UINT nIDItem,CString &rString,UINT nFlags) const
nIDItem:标识菜单项位置或菜单项命令ID,具体含义依赖于nFlags的值
lpString:标识一个字符缓冲区
nMaxCount:标识向字符缓冲区中拷贝的最大字符数
rString:标识一个字符串
nFlags:意义同上DeleteMenu
返回值:时机拷贝到缓冲区中的字符数
(14)GetSubMenu方法
获取弹出式菜单中的一个菜单项
语法:
CMenu * GetSubMenu(int nPos) const
nPos:标识菜单项位置,第一个菜单对应的位置为0,第二个菜单项对应的位置为1,以此类推
(15)InsertMenu方法
向菜单指定位置插入菜单项
语法:
BOOL InsertMenu(UINT nPosition,UINT nFlags,UINT nIDNewItem=0,LPCTSTR lpszNewItem=NULL)
BOOL InsertMenu(UINT nPosition,UINT nFlags,UINT nIDNewItem,const CBitmap *pBmp)
各参数的含义同上
nPosition:标识位置,单依赖于nFlags的值
(16)ModifyMenu方法
该方法修改菜单项信息
BOOL ModifyMenu(UINT nPosition,UINT nFlags,UINT nIDNewItem=0,LPCTSTR lpszNewItem=NULL)
BOOL ModifyMenu(UINT nPosition,UINT nFlags,UINT nIDNewItem,const CBitmap *pBmp)
(17)RemoveMenu方法
语法
BOOL RemoveMenu(UINT nPosition,UINT nFlags)
(18) DrawItem方法
语法
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
lpDrawItemStruct:是一个DRAWITEMSTRUCT结构指针,DRAWITEMSTRUCT包含了菜单项的ID,类型,画布,句柄等详细信息