菜单的主要方法

(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,类型,画布,句柄等详细信息

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值