MFC 菜单操作
在CMainFrame中OnCreate函数中添加下列:(注意在return(0)前添加)
在文件,新建前打钩 法1: GetMenu()->GetSubMenu(0)->CheckMenuItem(0,MF_BYPOSITION | MF_CHECKED);//第一个子菜单,第一个菜单项,按位置访问并且标记;
法2: GetMenu()->GetSubMenu(0)->CheckMenuItem(ID_FILE_NEW,MF_BYCOMMAND | MF_CHECKED);//第一个子菜单,ID号为ID_FILE_NEW的,按COMMAND访问并标记;
将文件->打开菜单项加粗 法1: GetMenu()->GetSubMenu(0)->SetDefaultItem(1,TRUE); //TRUE的意思是按位置索引
法2: GetMenu()->GetSubMenu(0)->SetDefaultItem(ID_FILE_OPEN,FALSE); //FALSE的意思是按标识索引,或者说是ID索引
将文件->打开菜单项禁用 GetMenu()->GetSubMenu(0)->EnableMenuItem(1,MF_BYPOSITION|MF_DISABLED|MF_GRAYED);//将打开菜单项禁用,变灰,记得将CMainFrame源文件函数中加入m_bAutoMenuEnable=FALSE;
去除所有菜单 SetMenu(NULL);
装载一个菜单资源并显示 CMenu menu; //定义一个菜单对象:menu
menu.LoadMenu(IDR_MAINFRAME); //Menu程序主菜单的资源标识是IDR_MAINFRAME
SetMenu(&menu); //调用SetMenu函数,把程序的菜单设置为刚刚加载的菜单对象。
menu.Detach(); //把菜单句柄和菜单对象分离。
将一个菜单项变为可用或不可用 先通过建立类向导,找到想变为可用的ID号,Messages里选择UPDATE COMMAND UI,增加函数,编辑函数,将函数里输入pCmdUI->Enable();就变为可用了,若想不能用,输入pCmdUI->Enable(FALSE);
添加右键菜单: 法1: 点工程->增加到工程->components and controls->到Gallary选VC++ Components,打开,选择Pop-up Menu,点Insert,再确定,就可以添加右键菜单。
法2: 在Resources中Menu文件夹,右击选择“插入Menu”,编辑想显示的右键菜单,然后再C__View类添加WM_RBUTTONDOWN消息响应函数,编辑,在函数里输入:
CMenu menu;
menu.LoadMenu(IDR_MENU1);
CMenu* pPopup=menu.GetSubMenu(0);
ClientToScreen(&point); //转换屏幕坐标和客户区坐标
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,point.x,point.y,this);
点右键菜单显示: 用建立类向导,分别为CMainFrame类和C__View类添加一个响应【显示】的菜单项(ID为IDM_SHOW)的函数,Messages选COMMAND,添加函数,编辑函数,分别添加MessageBox("Main show"),和MessageBox("View show"),结果显示View show。
动态菜单操作: 添加一个子菜单 :CMenu menu;
menu.CreateMenu();
GetMenu()->AppendMenu(MF_POPUP,(UINT)menu.m_hMenu,"test");
menu.Detach();
修改应用程序窗口的标题: 在CMainFrame中的PreCreateWindow的CREATETRUCT结构体中添加 cs.lpszName="图像融合软件"; 在return TRUE前添加。
在状态栏显示鼠标当前位置: 1, 在C_View 类添加WM_MOUSEMOVE消息的响应函数,里边添加下列响应函数:
CString str;
str.Format("x=%d,y=%d",point.x,point.y);
((CMainFrame*)GetParent())->m_wndStatusBar.SetWindowText(str);
2,在CMainFrame类的头文件中,将CStatusBar m_wmdStatusBar改为public类;
3,并且在C__View.cpp文件的前部添加代码: #include "MainFrm.h" 或者将1中的第三行函数改为 ((CMainFrame*)GetParent())->SetMessageText(str);
MFC 菜单操作的更多相关文章
- 扫雷游戏制作过程(C#描述):第五节、菜单操作(续)
前言 这里给出教程原文地址. 该项目已经放在github上托管. 发布版已经分享到百度网盘 菜单操作(续) 接着节前一章节的内容,我们继续完善菜单栏的功能. 我们首先,先完善Rank的选项,我们希望我 ...
- 扫雷游戏制作过程(C#描述):第四节、菜单操作
前言 这里给出教程原文地址. 该项目已经放在github上托管. 菜单操作 我们现在的程序单击菜单的时候不会有任何反应,这一节我们主要介绍菜单的相关代码,使得菜单能够正常使用. 现在我们希望在对应级别 ...
- MFC图片操作
根据MFC要操作图片的来源,可分为以下两类: 一.非动态显示图片(即图片先通过资源管理器载入,有一个固定ID) 二.动态载入图片(即只需要在程序中指定图片的路径即可载入) 一.非动态显示图片 1.传送 ...
- python开发_tkinter_单选菜单_不可用菜单操作
在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...
- selenium基础(下拉菜单操作)
selenium基础(下拉菜单操作) 非select/option元素: 1.触发下拉列表出现 2.等待下拉列表中的元素出现,然后进行选择元素即可. select/option元素: 下拉框操作-Se ...
- MFC文件操作
文件操作:二进制文件和文本文件的区别.二进制文件将数据在内存中存在的模式原封不动的搬到文件中,而文本文件是将数据的asc码搬到文件中.首先做一个读写文件的菜单,在CxxView里响应1.C的方式:fw ...
- Electron使用与学习--(基本使用与菜单操作)
对于electron是个新手,下面纯属个人理解.如有错误,欢迎指出. 一.安装 如果你本地按照github上的 # Install the `electron` command globally ...
- ENVI数据显示操作【Tools菜单操作1】
---恢复内容开始--- 一.Tools菜单命令及其功能 主图像窗口中Tool菜单多对应的下拉菜单共17项命令. 二.窗口链接/覆盖显示 窗口链接和叠加显示(Link和Overlay)是对多幅图像某一 ...
- ENVI软件操作【数据显示操作——Overlay菜单操作】
一.注记层(Annotation) 注记层是ENVI的一个数据类型,它的后缀名是.ann.往往作为栅格数据层,矢量数据层.三维场景会绘图图表的附加数据叠加在上面,还可以作为镶嵌图像时候的裁剪线.注记数 ...
随机推荐
- POJ 2891 中国剩余定理(不互素)
Strange Way to Express Integers Time Limit: 1000MS Memory Limit: 131072K Total Submissions: 17877 ...
- POJ:2139-Six Degrees of Cowvin Bacon
传送门:http://poj.org/problem?id=2139 Six Degrees of Cowvin Bacon Time Limit: 1000MS Memory Limit: 6553 ...
- Hibernate---数据操作示例BY实体映射文件
创建一个Student.java类:该类需要一个无参的构造函数,以及属性的get/set方法 public class Student implements Serializable { privat ...
- android onNewIntent 为什么要在onNewIntent的时候要显示的去调用setIntent
原因: 当调用到onNewIntent(intent)的时候,需要在onNewIntent() 中使用setIntent(intent)赋值给Activity的Intent.否则,后续的getInte ...
- 如何将多个Eclipse项目导入IntelliJ IDEA
技术交流群:233513714 IntelliJ IDEA 与Eclipse在新建项目上的叫法略有不同,区别见下图. 当我们使用idea后再次使用eclipse时就会有很多不适,下面介绍一个多项目的导 ...
- NGUI-使用UILabel呈现图片和不同格式的文字
1.可以使用BBCode标记 [b]Bold[/b] 粗体[i]italic[/i] 斜体[u]underli ...
- eclipse importing maven projects 卡顿
导入一个maven工程后 一直显示 importing maven projects 9% 解决办法: 找到eclipse安装目录下的eclipse.ini 在最后加入 -vm $JAVA_HOME% ...
- 孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化
孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.什么是序列化与反序列化 序列化是指将内存中的数据进行指 ...
- serial console
适用于: agent_ipmitool_socat pxe_ipmitool_socat 修改driver方式:更换ironic node的driver类型 yum install -y socat ...
- tinymce 上传图片空间(转)
转载自:http://www.cnblogs.com/ilovewindy/p/3823069.html 创建plugin后, editor_plugin.js中使用了 imageUploadWind ...