MFC中菜单各函数的用法

MFC中菜单各函数的用法

ID:42562402

大小:33.25 KB

页数:7页

时间:2019-09-17

MFC中菜单各函数的用法_第1页
MFC中菜单各函数的用法_第2页
MFC中菜单各函数的用法_第3页
MFC中菜单各函数的用法_第4页
MFC中菜单各函数的用法_第5页
资源描述:

《MFC中菜单各函数的用法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1、消息的分类标准消息除WM_COMMAND之外,所有以WM_开头的消息。从CWnd派生的类,都可以接收到这类消息。命令消息来自菜单、加速键或工具栏按钮的消息。这类消息都以WM_COMMAND呈现。在MFC中,通过菜单项的标识(ID)来区分不同的命令消息;在SDK中,通过消息的wParam参数识别。从CCmdTarget派生的类,都可以接收到这类消息。通告消息由控件产生的消息,例如,按钮的单击,列表框的选择等均产生此类消息,为的是向其父窗口(通常是对话框)通知事件的发生。这类消息也是以WM_COMMAND形式呈现。从CCmdTarget派生的类,都可以接收到这

2、类消息。2、命令消息的路由:注意:通常消息产生时,MFC在后台将窗口过程函数替换为了AfxWndProc(可参考MFC源代码),AfxWndProc函数会调用AfxCallWndProc函数,AfxCallWndProc函数又会调用WindowPro函数,WindowPro函数是CWnd的成员函数,接下来WindowPro函数会调用OnWndMsg函数,OnWndMsg函数会判断消息类型,是标准消息则交由CWnd类处理;是命令消息则交由OnCommand函数处理;是通告消息则交由OnNotify函数处理。最后OnCommand和OnNotify函数都会调用On

3、CmdMsg函数来进行处理。OnCommand函数会完成命令消息的路由,路由过程:首先消息由CMainFrame交给它的子窗口类CView,如果类中有消息响应函数则响应,否则会转而交给CDoc类处理,如果CDoc类也没有消息响应函数,则CDoc类会将消息交还给CView类,继而交还给CMainFrame类,如果CMainFrame类中也没有消息响应函数,则消息最后由CWndApp类响应。1、对菜单编程时,首先要找到菜单,然后找到子菜单,最后才是菜单项。2、CWnd::GetMenu函数函数原型:CMenu*GetMenu()const;CMenu类封装了与菜单

4、相关的操作。利用这个函数就可以返回一个隶属于CWnd的菜单指针。3、CMenu::GetSubMenu函数函数原型:CMenu*GetSubMenu(intnPos)const;intnPos菜单序号。第一个子菜单的序号是0,该函数返回一个菜单的子菜单指针4、CMenu::CheckMenuItem该函数可以设置标记菜单(即菜单项前打勾)函数原型:UINTCheckMenuItem(UINTnIDCheckItem,UINTnCheck);UINTnIDCheckItem指示要被标记的菜单项,其取值的含义由第二个参数决定UINTnCheck如果该参数取值为:M

5、F_BYCOMMAND,那么第一个参数要按菜单项的ID号取值;如果该参数取值为:MF_BYPOSITION ,那么第一个参数要按菜单项的索引号取值(从0开始);当然第二个参数取值需要是MF_BYPOSITION或MF_BYCOMMAND的其中一个和MF_BYCOMMAND或MF_BYPOSITION的其中一个的位或(

6、)的组合。5、CMenu::SetDefaultItem该函数设置一个菜单项为缺省菜单项(菜单项会粗体显示)函数原型:BOOLSetDefaultItem(UINTuItem,BOOLfByPos=FALSE);UINTuItem该参数的含义由第

7、二个参数决定。如果fByPos值为FALSE,该参数按照菜单项的ID号取值,否则按菜单项的索引取值。BOOLfByPos=FALSE该参数用来决定uItem参数的含义注意:1、当按照索引访问菜单项的时候,分隔符也要计算在内!2、一个子菜单中只能有一个缺省菜单8、CMenu::SetMenuItemBitmaps该函数设置一个图形标记菜单函数原型:BOOLSetMenuItemBitmaps(UINTnPosition,UINTnFlags,constCBitmap*pBmpUnchecked,constCBitmap*pBmpChecked);UINTnPos

8、ition该参数含义由第二个参数决定UINTnFlags该参数决定第一个参数的取值。如果该参数取值为:MF_BYCOMMAND,那么第一个参数要按菜单项的ID号取值;如果该参数取值为:MF_BYPOSITION ,那么第一个参数要按菜单项的索引号取值(从0开始)constCBitmap*pBmpUnchecked菜单项没有被选中时,需要设置的菜单项的位图指针constCBitmap*pBmpChecked菜单项被选中时,需要设置的菜单项的位图指针注意:图形菜单的位图资源不能太大(系统限制为13×13),要获得位图的限制大小,可以使用下面的函数:9、GetSys

9、temMetrics该函数获取系统的一

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。