菜-菜-菜单的问题?
为什么程序在一启动时,我自已定义的菜单项是灰的,而用鼠标在客户区中一点就灵了?
是用MFC框架生成的。
问题点数:53、回复次数:10Top
1 楼g_shepherd1978(g_shepherd)回复于 2001-12-16 20:42:11 得分 5
是不是没有得到焦点阿?Top
2 楼jakieliu(边城浪子)回复于 2001-12-16 20:57:06 得分 2
给菜单加上代码就自然不是灰的了.我就遇到过。《vc++技术内幕》提到过。Top
3 楼IceWall(谁敢打我)回复于 2001-12-16 21:06:30 得分 0
边城浪子: 我加了呀,同时,系统生成的工具条的图标也是灰的,可是一点客户区,就显示过来了,您能给解决,我会给你追加50分!!!Top
4 楼netfoxy(花虎)回复于 2001-12-16 21:13:51 得分 11
你是不是在视图类里面响应菜单的
如果视图没有被激活,你的菜单或工具条上的按钮当然是灰的Top
5 楼xiaoxiaohan(萧晓寒)回复于 2001-12-16 22:18:06 得分 5
你是在视图类里面响应菜单的
视图没有被激活,菜单是灰的 Top
6 楼IceWall(谁敢打我)回复于 2001-12-16 22:44:22 得分 0
楼上的说的对,
我是在视图类里面响应菜单的,
启动程序后,视图如何被激活呢?是不是与我切分了窗口有关呢?各位别说菜呀!! Top
7 楼jiangsheng(蒋晟.Net[MVP])回复于 2001-12-17 01:11:41 得分 10
默认情况下,没有处理函数和更新函数的菜单项会被禁用。
如果程序是基于框架的。弹出菜单的时候系统会向框架查询菜单项是否可用,以及设置菜单项的状态(参见CFrameWnd::OnInitMenuPopup的代码)
如果程序是对话框的,则你可能需要自己写代码使得使用ON_UPDATE_COMMAND_UI宏定义的菜单项更新函数有效。
参见
http://www.csdn.net/develop/read_article.asp?id=9481
http://www.csdn.net/develop/read_article.asp?id=9490Top
8 楼sinfee(口是心非)回复于 2001-12-17 08:31:08 得分 10
我建议你参照“关于...”命令的处理方式,可以在主程序中(XXXXAPP)中实现,
或是在主框架中处理命令ID的更新,不要把消息传到视中就可以了。我就是这样实
现的,我做的是两个视的,一个是自己生成的,一个是我切分的,所以会出现命令
被MFC自动添加更新代码造成有的视可以用某些命令有的不可以。Top
9 楼a_kun(狂人日记)回复于 2001-12-17 08:36:06 得分 8
是这样,在CMainFrame类里有个函数SetFocus()重载,是将焦点再设给m_wndView,如果你用了切分窗口,应当通知切分窗口和视图设置了焦点。Top
10 楼yakai(日落长河)回复于 2001-12-17 08:45:21 得分 2
在CMainFrame类里定义消息映射函数Top




