社区
VC.NET
帖子详情
为什么在mainframe里给菜单项加消息处理没问题,在view类里这样做菜单项会变灰?
Kaile
2005-08-16 10:09:13
我的SDI程序用CSplitterWindow分为2个View,我想在右边的view里处理菜单消息,结果加了消息映射后菜单还是无效,如果把消息加到mainframe下就好了,请教原因是什么?我想加到View里应该如何做?
谢谢!
...全文
160
10
打赏
收藏
为什么在mainframe里给菜单项加消息处理没问题,在view类里这样做菜单项会变灰?
我的SDI程序用CSplitterWindow分为2个View,我想在右边的view里处理菜单消息,结果加了消息映射后菜单还是无效,如果把消息加到mainframe下就好了,请教原因是什么?我想加到View里应该如何做? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tiger波波
2005-08-17
打赏
举报
回复
学习
蒋晟
2005-08-17
打赏
举报
回复
用户可以通过界面操作来设置活动视图。如果要用程序设置,调用CSplitterWnd::SetActivePane
Kaile
2005-08-17
打赏
举报
回复
蒋老师:
可否将右边的view设为活动视图,我希望消息处理还在这个view里进行。
感谢您的帮助。
蒋晟
2005-08-17
打赏
举报
回复
区别是视图是否框架的活动视图
只有一个视图的时候,视图总是框架的活动视图
Kaile
2005-08-17
打赏
举报
回复
为什么我以前的VC6程序在View里做消息映射一直正常?区别是只有一个view,没有多个view。
难道这是VC6与.net2003的差别?
蒋晟
2005-08-17
打赏
举报
回复
命令消息首先被CWinApp类处理,默认的处理流程是CWinApp类->主框架->MDI子框架->活动视图->文档。如果你要自定义处理流程,可以在处理流程中处理这个命令并/或转发到其他CCmdTarget派生类
参考
http://www.codeproject.com/docview/splitcmdroute.asp
c9714052
2005-08-17
打赏
举报
回复
因为菜单不属于View,结构应该是mainframe包含菜单和view。
你可在view上画条斜线看看,从0,0开始,线是画不到菜单上的。你再在mainframe上画,就能画到菜单上了。
真相重于对错
2005-08-17
打赏
举报
回复
CODE?
真相重于对错
2005-08-17
打赏
举报
回复
正确
HeavenMonkey
2005-08-17
打赏
举报
回复
是吗?快试试……
MFC中动态添
加
菜单项
是
灰
色的解决办法
呈现
灰
色的原因是
没
有对应的
消息
响应函数与菜单相关联,只需要自己写一个
消息
响应函数即可,例如孙鑫的VC++教程第六章有相关动态添
加
菜单的教程,但是此教程在使用动态添
加
菜单项
之后并
没
有对
菜单项
是
灰
色的进行说明,话不多说代码如下,初学者可以看看: GetMenu()->GetSubMenu(0)->AppendMenu(MF_STRING,114,"wo cao ni da ye"); 这是原孙鑫老
同一个菜单,在
view
和
mainframe
两个
类
里
面添
加
响应函数的区别
..
消息
出现后。。。首先到
VIEW
里
找
处理
函数。
没
有得话再去DOC。。接着是
MAINFRAME
。
再是程序类。最后是系统默认。。若还
没
找到
处理
函数 。则不
处理
这个
消息
。。
没
区别
只是在
view
里
响应函数是
view
的成员函数
在
mainframe
里
响应函数好似frame的成员函数
可以让你的程序在
view
或
mainframe
里
做
你想
做
的动作
在document
里
响应也可以
MFC中添
加
的
菜单项
为什么始终是
灰
色的
好多人都碰到过这些事情,新
加
的按钮却是
灰
色的不能点击,好多时候
MFC菜单
消息
首先,在MFC中,具有PopUp属性的菜单是不能用来
做
命令响应的。 在MFC中: 当点击一个
菜单项
的时候,最先接受到
菜单项
消息
的是C
MainFrame
框架类,C
MainFrame
框架类将会把
菜单项
消息
交给它的子窗口
View
类,由
View
类首先进行
处理
;如果
View
类检测到
没
对该
菜单项
消息
做
响应,则
View
类把
菜单项
消息
交由文档类Doc类进行
处理
;如果
mfc单文档获取顶层菜单的
菜单项
文本,并设置响应菜单命令范围
新建好一个单文档工程,顶层菜单也在同时建好,在resource
view
中可以看到,顶层菜单的menu的ID为IDR_
MAINFRAME
,打开IDR_
MAINFRAME
,如图,怎么获取菜单下透明度中的子
菜单项
?(如:1.0,0.8...) 而且还存在另一个
问题
就是这几个子菜单都是等价的,理想状态是点击任意一个
菜单项
都会响应同一个函数,传统的方法,假如右键添
加
消息
响应函数,需要写5个完全一样的函数
VC.NET
7,540
社区成员
27,673
社区内容
发帖
与我相关
我的任务
VC.NET
.NET技术 VC.NET
复制链接
扫一扫
分享
社区描述
.NET技术 VC.NET
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章