请教一个关于多文档试图显示的问题!急死我了亚!请大家帮忙!在线等!

sujiayi 2003-10-09 03:25:05
我做的是多文档试图的程序,在启动的时候,我不让视图显示,我把
BOOL CBugViewApp::InitInstance()这个函数中的CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_BugViewTYPE,
RUNTIME_CLASS(CBugViewDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CBugViewView));
AddDocTemplate(pDocTemplate);
给屏蔽了!
我想通过菜单来显示视图,菜单响应函数在mainframe中,请问应该怎么做呀!
请详细一点!谢谢!
...全文
32 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
sujiayi 2003-10-10
  • 打赏
  • 举报
回复
如果我一个文档对应两个视图,我在file->new的时候提示一个框,叫我选择是那个视图!如果我想直接指定那个视图启动,请问应该怎么做呀!
sujiayi 2003-10-09
  • 打赏
  • 举报
回复
不好用!
请问大家一个问题!
CCreateContext::m_pCurrentDoc这个怎么指定亚!
用建立文档对象吗?
flyelf 2003-10-09
  • 打赏
  • 举报
回复
添加wm_paint消息的相应
OnPaint()
{
CPaintDC dc(this);
OnDraw(&dc);
}
sujiayi 2003-10-09
  • 打赏
  • 举报
回复
CBugViewView* m_pMDClientView = new CBugViewView;

CMDIChildWnd* pMDIChildWnd = new CMDIChildWnd;
pMDIChildWnd->Create(NULL,_T("Hello"),
WS_CHILD | WS_VISIBLE | WS_OVERLAPPEDWINDOW,
rectDefault, this,NULL);

CCreateContext context;
context.m_pNewViewClass =(CRuntimeClass*) m_pMDClientView;

context.m_pCurrentFrame = pMDIChildWnd;
if (!IsWindow(m_pMDClientView->m_hWnd))
{
if (!m_pMDClientView->Create(NULL, NULL, 0L, rectDefault, this, AFX_IDW_PANE_FIRST+1, &context));
;
}

if (m_pMDClientView->IsKindOf(RUNTIME_CLASS(CBugViewView)))
{
return;
}
m_pMDClientView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
m_pMDClientView->ShowWindow(SW_SHOW);
m_pMDClientView->OnInitialUpdate();

SetActiveView(m_pMDClientView);
RecalcLayout();

我现在改为这一段代码,视图能出来了!他响应OnInitialUpdate()这个函数,但他不响应OnDraw()函数,请问我这个程序到底错在那里!
谢谢!
sujiayi 2003-10-09
  • 打赏
  • 举报
回复
我做的这个程序,GetActiveDocument();没有用因为程序一启动的时候,就没有视图显示!返回值一定是null
flyelf 2003-10-09
  • 打赏
  • 举报
回复
CMultiDocTemplate* m_pcBugViewTemplate = new CMultiDocTemplate(...);
在创建的时候:
CxxxDoc *pcDoc = GetActiveDocument();
CFrameWnd *pcFrame = m_pcBugViewTemplate->CreateNewFrame(pcDoc, NULL);
m_pcBugViewTemplate->InitialUpdateFrame(pcFrame, pcDoc);

Allesgut 2003-10-09
  • 打赏
  • 举报
回复
在InitInstance中加上
if (cmdInfo.m_nShellCommand==CCommandLineInfo::FileNew)
{
cmdInfo.m_nShellCommand=CCommandLineInfo::FileNothing;
}
sujiayi 2003-10-09
  • 打赏
  • 举报
回复
CBugViewView* m_pMDClientView =new CBugViewView;
CCreateContext context;
context.m_pCurrentFrame = GetActiveFrame();
context.m_pLastView = NULL;
context.m_pCurrentDoc = GetActiveDocument();
//content.m_pNewDocTemplate = ;
if (!IsWindow(m_pMDClientView->m_hWnd))
{
if (!m_pMDClientView->Create(NULL, NULL, 0L, CRect(0, 0, 0, 0), this, AFX_IDW_PANE_FIRST+1, &context));
//bRet = FALSE;
}

if (m_pMDClientView->IsKindOf(RUNTIME_CLASS(CBugViewView)))
{
m_pMDClientView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
m_pMDClientView->GetParentFrame()->ActivateFrame();
m_pMDClientView->GetParentFrame()->ShowWindow(SW_SHOW);
}

m_pMDClientView->ShowWindow(SW_SHOW);
m_pMDClientView->OnInitialUpdate();
SetActiveView(m_pMDClientView);
RecalcLayout();


请问我用的这一段代码有什么错吗?
谢谢!
yaoha2003 2003-10-09
  • 打赏
  • 举报
回复
用单文档吧
sujiayi 2003-10-09
  • 打赏
  • 举报
回复
对不其实我问的不对!
我现在只屏蔽了
if (!ProcessShellCommand(cmdInfo))
return FALSE;
这两句,文档不显示了。
请问如果我让文档显示,应该怎么办!如果有两个以上的文档,我只想显示其中的一个,该怎么办呀!
xiaohyy 2003-10-09
  • 打赏
  • 举报
回复
去掉CBugViewApp::InitInstance中的以下两句

if (!ProcessShellCommand(cmdInfo))
return FALSE;
hujun614 2003-10-09
  • 打赏
  • 举报
回复
用ClassWizard工具,用你的APP对象响应ID_FILE_NEW消息,第一次的ID_FILE_NEW直接退出就OK,以后就调CWinApp::OnFileNew();就可以打开新视图了。
void CTestvc3App::OnFileNew()
{
// TODO: Add your command handler code here
static int iii = 0;
if(iii == 0){
iii = 1;
return ;
}
CWinApp::OnFileNew();
}
qwedcxza 2003-10-09
  • 打赏
  • 举报
回复
菜单可以在 APP 中响应
或者你可以隐藏视图窗口,而不屏蔽初始化的建立
ninsenki 2003-10-09
  • 打赏
  • 举报
回复
多文档一开始不让显示视图显示什么,不显示视图内容不就行了吗

16,471

社区成员

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

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

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