~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~对面的高手瞧过来~~~~~~~~~~~~~~~~~~~~~~~

zminhao 2003-10-29 05:51:53
我用CJLibrary想做成OutLookBar风格的框架,按Bar上的按钮实现单文档切换,每一个文档都是CFormView,请问如何实现,分好说。
...全文
43 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zminhao 2003-10-31
  • 打赏
  • 举报
回复
有谁做过呀,请指教一下呀,我很急呀。
vcforever 2003-10-30
  • 打赏
  • 举报
回复
同意flyelf(空谷清音),下面有一个方法希望对你有帮助
1.为每个视图定义ID
2.定义个SwitchView(nvID)的函数

CView *pOld=GetActiveView();
CView *pNew=(CView*)GetDlgItem(nvID);
if(pNew==NULL)//如果第一次的话
{
switch(nV)
{
case IDVIEW_XXX:
pNew=(CView*) new CMyViewXXX;
break;
case IDVIEW_XXX:
pNew=(CView*) new CMyViewXXX;
break;
}
CCreateContext context;
context.m_pCurrentDoc=pOld->GetDocument();
pNew->Create(NULL,NULL,WS_BORDER,
CFrameWnd::rectDefault,this,nvID,&context);
pNew->OnInitialUpdate();
}
this->SetActiveView(pNew);
pNew->ShowWindow(SW_SHOW);
pOld->ShowWindow(SW_HIDE);

pOld->SetDlgCtrlID(
pOld->GetRuntimeClass()==RUNTIME_CLASS(CMyEdit)?0:1);
//此处必须旧的视图的ID改回你设置的ID,因为当它活动的时候
//ID是AFX_IDW_PANE_FIRST
pNew->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
//当前活动视图ID必须是AFX_IDW_PANE_FIRST
this->RecalcLayout();

4.菜单设置
pCmdUI->Enable(!GetActiveView()->IsKindOf(RUNTIME_CLASS(CMyView)));

上面只是提供一个相关的思路,具体应用和这个也差不多!
希望对你有帮助吧!
zminhao 2003-10-30
  • 打赏
  • 举报
回复
flyelf(空谷清音)
你的意思我知道 ,有没有例子呀,分数不够我再开新贴加
flyelf 2003-10-30
  • 打赏
  • 举报
回复
把窗口Create出来后,根据需要进行show/hide
flinming 2003-10-30
  • 打赏
  • 举报
回复
up,学习
arvid_gs 2003-10-30
  • 打赏
  • 举报
回复
你的这种效果可以用tabCtrl 来实现,每个 tab页上就是你要用的东西!
zminhao 2003-10-30
  • 打赏
  • 举报
回复
有谁做过呀,请指教一下呀,我很急呀。
zminhao 2003-10-30
  • 打赏
  • 举报
回复
给个完整的例子吧
nenya 2003-10-29
  • 打赏
  • 举报
回复
也就是MDI吧.
就是一个当前的from被激活吧
beyondtkl 2003-10-29
  • 打赏
  • 举报
回复
不懂 友情up
不过感觉你描述的还不是很清楚.
canoe_eyes 2003-10-29
  • 打赏
  • 举报
回复
up

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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