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.往往作为栅格数据层,矢量数据层.三维场景会绘图图表的附加数据叠加在上面,还可以作为镶嵌图像时候的裁剪线.注记数 ...
随机推荐
- Servlet HttpRequest 中【getAttribute】和【getParameter】的区别
1.获取的值不同 getAttribute表示从request范围取得设置的属性,必须要通过setAttribute设置属性,才能通过getAttribute取得.设置和取得的值都是Object类型. ...
- saltstack执行远程命令
目录 Remote Execution salt state salt state 系统 salt state 系统流程 Runner salt runner Orchestrate Runner S ...
- 14 Django的用户认证组件
用户认证 auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: 1.1 .authentica ...
- .Net Mvc 4 Route路由
1.前言 在创建一个MVC项目后就可以,在App_Start文件下的RouteConfig.cs里面就可以定义我们的路由规则,其中已经有默认的路由规则了,routes.IgnoreRoute是让路由规 ...
- SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID
如题: SDK location not found. Define location with sdk.dir in the local.properties file or with an AND ...
- Null / Loopback (Null)
参考: http://www.cnblogs.com/caoguoping100/p/3654452.html https://wiki.wireshark.org/NullLoopback 抓包安装 ...
- CentOS-6.3-minimal安装gnome桌面环境(转载)
最近,想学着搞搞linux,从入门安装开始,先装centos6.3-minimal,发现是windowser最不习惯的命令界面,先升级桌面,教程如下. 1.添加一个普通用户,并设置密码useradd ...
- 【Pascal's Triangle】cpp
题目: Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5,R ...
- chromedriver版本支持的Chrome版本
下载chromedriver,链接:http://chromedriver.storage.googleapis.com/index.html chromedirver版本 支持的Chrome版本 ...
- python负数除法与模运算
1.负数除法: >>> print 45/76>>> print -45/7-7 >>> print 45/-7-7 >>> p ...