【求助】怎么样在MDI中实现新建文档时能弹对话框,选择文档类型,然后新建,同时根据文档类型构造不同的ChildFrame Client?

csx007700 2012-04-26 07:59:26
RT……怎么样在MDI中实现新建文档时能弹对话框,选择文档类型,然后新建?

就是说 我想在用户按下MainFrame里面的那个"新建"按钮的时候弹出一个窗口,问下用户应该怎么样把文档显示出来.更具体的说,用户在这里的选择不会改变我使用的Doc类,而是我用一个不同的呈现方式给他,创建不同样子的View.譬如根据用户的需求有的时候我新建出来的ChildFrame分为两部分,用Splitter,一个TreeView,一个LisiView.有的时候我就只要ListView,不用Splitter.....

我的思路是我在ChildFrame里面的OnCreateClient里面加入了一段代码

BOOL CChildFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext)
{
CNewDocumentDlg cndNewDocument;

if(cndNewDocument.DoModal()!=IDOK||
cndNewDocument.tdTypeDocument==TypeRawDocument)
{
//pContext->
return FALSE;
}

((CScoreProfessionalDoc*)(pContext->m_pCurrentDoc))->tdTypeDocument
= cndNewDocument.tdTypeDocument;

switch(cndNewDocument.tdTypeDocument)
{
case TypeQueryByClassInformation://这些TypeXX是我用来区分怎么样显示的
//这些地方进行分割Client的操作
break;
case TypeQueryByExamInformation:
break;
case TypePythonCode:
break;
default:
ASSERT(FALSE);
}
}


但是这样做的话如果用户不小心按错了新建以后又在cndNewDocument这个窗口里面按了取消,那么我返回True就会莫名其妙的出来一个ChildFrame,但是如果我返回False就会弹框,提示创建新文档失败....我还试过在OnNewDocument里面这样做,结果也是不行....如果我在程序开始执行到Instance的时候添到文档模板里面的话倒是出现可以选择怎么创建的框了....但是我希望用我自己做的.那个太丑了.......

有没有办法避免这个错误提示或者阻止那个ChildFrame创建?

或者有没有什么更好的方法能直接实现我想要的那个功能?

如果方便的话请贴一点示例代码上来可以吗....谢谢大家....

初学MDI...请大家多多包含...
...全文
137 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
huqiming 2012-04-27
  • 打赏
  • 举报
回复
http://wenku.baidu.com/view/189ea3106c175f0e7cd13711.html
http://hi.baidu.com/%B0%A2%B3%ACyuch/blog/item/a134bf4ffae688c2d0c86a25.html
一般都喜欢是SDI下多视图,你这居然是MDI下的多视图程序.
这两种资料都可以参考下

15,979

社区成员

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

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