| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1258 人关注过本帖
标题:[求助]切分窗口后的问题
只看楼主 加入收藏
pzs0221
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-8-16
收藏
 问题点数:0 回复次数:5 
[求助]切分窗口后的问题

我将窗口切分为outlook,formView,
可是在formView 中添加了菜单响应函数,运行后菜单是
灰色的,后来我发现只要切分窗口,在view中添加的菜单响应函数都得不到响应;
切分窗口后如何在view中正确的响应菜单命令?

搜索更多相关主题的帖子: 切分窗口 菜单 formView 响应函数 view 
2006-08-27 14:12
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
因为你右边的窗口不是activeview了,把鼠标focus在右边的话就可以相应。

引用bfgghy兄前面的解决方法:
这个问题很好解决,首先你要理解MFC的命令传送机制是通过框架窗口的OnCmdMsg函数实现的,它将诸如菜单、工具栏等命令按以下顺序进行传送:
活动视图、文档、文档模板、框架窗口、应用程序对象,如果其中一级具有该命令的处理,则传送在此终止。
因为你的程序有两个视图,所以非活动视图将接收不到传送的命令,所以要自定义命令传送过程:
覆盖框架窗口的OnCmdMsg函数,先调用缺省的OnCmdMsg函数(即上面的传送过程),如果命令没有被处理(缺省的OnCmdMsg返回FALSE),则获取当前所有视图指针,并调用每个视图的OnCmdMsg函数,将命令消息传送给每个视图就可以了。

BOOL CMainFrame::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
{
if ( CFrameWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo) )
  return TRUE;

CWandererDoc* pDoc = ( CWandererDoc* ) GetActiveDocument ();
if ( pDoc != NULL )
POSITION pos = pDoc->GetFirstViewPosition ();

while ( pos != NULL )
{
  CView* pNextView = pDoc->GetNextView ( pos );
  if ( pNextView != GetActiveView() )
  {
   if ( pNextView->OnCmdMsg ( nID, nCode, pExtra, pHandlerInfo ) )
    return TRUE;
  }
}

return FALSE;
}


http://myajax95./
2006-08-29 05:40
pzs0221
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-8-16
收藏
得分:0 

我的问题解决了,我在CMainFrame::OnCreatClient()中在分割完后用SetActive()把FormView设为活动的,现在还没发现有其它问题!一个语句办大事!

2006-09-01 20:44
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
你把鼠标放在另一个view里这个问题就又出来了。

http://myajax95./
2006-09-02 01:49
juzi4003
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-8-22
收藏
得分:0 
我要做切分窗口的时候,
比如加入一个CListView的派生类,
老是会出现,说这个类没有定义或者不存在,
同时,还会出现CMyView类中的GetDocument()出错。
不知道是怎么回事啊?

2006-09-04 12:37
王慧1
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2023-1-14
收藏
得分:0 
回复 楼主 pzs0221
请问我的这段代码一直报错显示CWandererDoc是未定义的标识符,请问这该怎么办啊
2023-01-14 21:25
快速回复:[求助]切分窗口后的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019370 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved