有两个困扰我好久的问题CSplitter和消息响应

kingofvc 2002-02-07 03:53:10
我在MainFrame里定义了一个CSplitterWnd 的wnd在OnCreatClient函数中写了
wnd.CreateStatic(this,2,1);
CRect r;
GetClientRect(&r);
CSize p(r.right/2,r.bottom/2);
wnd.CreateView(0,0,RUNTIME_CLASS(CTRYView),p,pContext);
wnd.CreateView(1,0,RUNTIME_CLASS(CTRYView),p,pContext);
return true;
在MainFrame.cpp中加入了#include "tryview.h"
可是在编译时有三个错误:
1:tryview.h(21) : error C2143: syntax error : missing ';' before '*':

2:tryview.h(21) : error C2501: 'CTRYDoc' : missing storage-class or type specifiers:

3:tryview.h(21) : error C2501: 'GetDocument' : missing storage-class or type specifiers:

三个错误都是针对
tryview.h中的
CTRYDoc* GetDocument();

当我把GetDocument这个函数删除 包括删除GetDocument时带来的其他问题 时问题解决 可是又如何得到文档呢?






这是一个动态菜单的程序
FILE COLOR VIEW
…… BLUE STANDARD
RED EXPAND
——
GREEN
YELLOW
程序一开始EXPAND可用STANDARD disable以后交替
分割线及下面的都是在EXPAND按下后出现在STANDARD按下后消失的
view.h中
afx_msg void OnUpdateOptions(CCmdUI* pCmdUI);
view.cpp中
ON_UPDATE_COMMAND_UI_RANGE(ID_STANDARD,ID_EXPAND, OnUpdateOptions)
ID_STANDARD,ID_EXPAND为两个菜单的ID号
void CDynMenuView::OnUpdateOptions(CCmdUI* pCmdUI)
{
CMenu *pAddinMenu, *pTopMenu;
pTopMenu = AfxGetMainWnd()->GetMenu();
pAddinMenu = pTopMenu->GetSubMenu(1);

switch (pCmdUI->m_nID)
{
case ID_EXPAND:pCmdUI->Enable(pAddinMenu->GetMenuItemCount() == 2);
break;
case ID_STANDARD:
pCmdUI->Enable(pAddinMenu->GetMenuItemCount() != 2);break;
}
}
这个函数好像只是把菜单给disable掉 没有enable可是在实际中好像也会enable(我把switch后的语句删掉就不会disable 一开始就可用 怎么回事?
...全文
24 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xghome 2002-02-07
  • 打赏
  • 举报
回复
得到文档
((CMainFrame*)(::AfxGetApp()->GetMainWnd()))->GetActiveDocument();
pCmdUI->Enable用错了,应该自己保留一个BOOL变量bFlag记录Enable情况
然后在菜单项的OnUpdateExit(CCmdUI* pCmdUI)函数里面
pCmdUI->Enable(bFlag)
只有这样,才能和MFC框架同步

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧