Vc++-6.0-菜单的基本操作.doc

Vc++-6.0-菜单的基本操作.doc

ID:57665230

大小:26.00 KB

页数:7页

时间:2020-08-31

Vc++-6.0-菜单的基本操作.doc_第1页
Vc++-6.0-菜单的基本操作.doc_第2页
Vc++-6.0-菜单的基本操作.doc_第3页
Vc++-6.0-菜单的基本操作.doc_第4页
Vc++-6.0-菜单的基本操作.doc_第5页
资源描述:

《Vc++-6.0-菜单的基本操作.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Vc++6.0菜单的基本操作    凡是从CWnd派生的类,它们既可以接收标准消息,也可以接收命令消息和通告消息。而对于那些从CCmdTarget派生的类,则只能接收命令消息和通告消息,不能接收标准消息。    响应菜单项命令的顺序依次是:视类,文档类,框架类,最后才是应用程序类。    基本菜单操作:    1.标记菜单:    可以通过CWnd的成员函数:GetMenu来获得指向菜单栏的指针,在框架类的OnCreate函数中,加入以下代码    GetMenu()->GetSubMenu(0)->

2、CheckMenuItem(0,MF_BYPOSITION

3、MF_CHECKED);    2.默认菜单项:分隔栏在子菜单中占据索引位置,一个子菜单只有一个默认菜单项    GetMenu()->GetSubMenu(0)->SetDefaultItem(1,TRUE);    3.图形标记菜单:    m_bitmap.LoadBitmap(IDB_BITMAP1);    GetMenu()->GetSubMenu(0)->SetMenuItemBitmaps(0,MF_BYPOSITION,&m

4、_bitmap,    &m_bitmap);    图形标记菜单上显示的位图的尺寸有固定的标准,我们创建的位图太大了,只显示了当前位图左上角的一小部分内容,通过GetSystemMetrics函数可以得到图形标记菜单上显示的位图的尺寸。当该参数的值为SM_XMENUCHECKorSM_CYMENUCHECK时,这个函数将获取标记菜单项上标记图形的默认尺寸。    CString类提供了一个名为Format的函数,这个函数可以按照一定的格式把内容格式,然后将结果保存到CString类型的字符串对象中。

5、    4.禁用菜单项    一旦在CMainFrame类的构造函数中把成员变量m_bAutoMenuEnable设置为FALSE后,就不需要对ON_UPDATE_COMMAND_UI或ON_COMMAND消息进行响应处理了,CMenu类的EnableMenuItem函数将能够正常工作。    GetMenu()->GetSubMenu()->EnableMenuItem(1,MF_BYPOSITION

6、MF_DISABLED);    5.移除和装载菜单    BOOLSetMenu(CMenu*p

7、Menu);这个函数有一个CMenu类型指针的参数,它指向一个新菜单对象。SetMenu(NULL)移除现有菜单;    6.MFC菜单命令更新机制    我们只需要捕获UPDATE_COMMAND_UI消息,在该消息的响应函数中调用CCmdUI对象的相应函数,例如Enable,SetCheck或Setetxt    7.快捷菜单    CMenumenu;//最好动态分配内存,    menu.LoadMenu(IDR_MENU1);    CMenu*pPopup=menu.GetSubMenu(

8、0);    pPopup->TrasckPopupMenu(TPM_LEFTALIGN,TPM_RIGHTBUTTON,point.x,point.y,this);    this指的是View类接收消息,框架类不接受消息,GetParent()则是指框架类接收消息,则子窗口优先响应消息,如果子窗口不能处理,再由父窗口处理。    动态菜单操作:    1.添加菜单项目:    CMenumenu;    menu.CreateMenu();    GetMenu()->AppendMenu(MF_

9、POPUP,(UINT)menu.m_hMenu,”Test”);    2.插入菜单项目    GetMenu()->InsertMenu(2,MF_POPUP

10、MF_BYPOSITION,(UINT)menu.m_hMenu,    ”Test”);    menu.AppendMenu(MF_STRING,111,”HELLO”);    GetMenu()->GetSubMenu(0)->InsertMenu(ID_FILE_OPEN,MF_BYCOMMAND

11、MF_STRING,115,”V

12、C编程”);    3.删除菜单    BOOLDeleteMenu(UINTnPosition,UINTnFlag);利用这个函数,可以删除一个菜单项目,包括子菜单,以及子菜单下的菜单项,主要取决于调用这个函数的对象。    GetMenu()->DeleteMenu(1,MF_BYPOSITION);    GetMenu()->GetSubMenu(0)->DeleteMenu(2,MF_BYPOSITION);    4.动态添加的菜单项的命令响

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

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

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