多文当界面,如何创建子窗口,如果子窗口存在,将它激活??再加100分了

zjg751206 2003-08-29 08:13:06
多文当界面,如何创建子窗口,如果子窗口存在,将它激活??我已经给了100分,这是第二个100分了,同一个问题,望各位大侠指点迷津
...全文
100 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjg751206 2003-08-29
  • 打赏
  • 举报
回复
谢谢您,如何调用系统的那个filenew,那个新建按钮,估计您可定可以实现,就是我不会
ssfly 2003-08-29
  • 打赏
  • 举报
回复
这样啊,那我就不知道该怎么做了,呵呵,我是个小虫的说。不过这样你应该把你想解决的问题详细说明清楚,而不是只说“多文当界面,如何创建子窗口,如果子窗口存在,将它激活??” :)祝好运
zjg751206 2003-08-29
  • 打赏
  • 举报
回复
多文档界面在子窗口关闭时打印预览也是无法使用的,其实我编VC也很久了,但是这个问题我一直都解决不了,我需要创建多文档的子窗口自己的实例,估计肯定有高手可以写好,只可惜我不明白。
zjg751206 2003-08-29
  • 打赏
  • 举报
回复
谢谢您反复回答一个问题,都是我不好,这样视图和子窗口是创建了,但是系统的打印预览确不见了,实际上这个问题我出了三百分了,我还需要出更多的分,我问的问题都是同一个,我需要创建系统自己的子窗口实例,这样打印预览就可以使用了,除非您能在系统的子窗口关闭时帮我把打印预览也调出来。
ssfly 2003-08-29
  • 打赏
  • 举报
回复
error C2653: 'CMyView' : is not a class or namespace name
E:\Documents and Settings\Administrator\桌面\KK\MainFrm.cpp(112) : error C2065: 'classCKKView' : undeclared identifier
Error executing cl.exe.

你需要加上#include "MyView.h"

CMyView是我建的一个在新建子窗口中显示一个由CFormView类派生的Dialog,如果你只是需要新建一个子窗口如下即可:

CChildFrame *m_pFrame = new CChildFrame();
if(!m_pFrame->LoadFrame(IDI_MyView,WS_MAXIMIZE | WS_OVERLAPPEDWINDOW, NULL, NULL))
return;
m_pFrame->InitialUpdateFrame(NULL, true);

前面的m_Context是用来控制子窗口中一些显示属性和显示内容用的



zjg751206 2003-08-29
  • 打赏
  • 举报
回复
error C2653: 'CMyView' : is not a class or namespace name
E:\Documents and Settings\Administrator\桌面\KK\MainFrm.cpp(112) : error C2065: 'classCKKView' : undeclared identifier
Error executing cl.exe.
zjg751206 2003-08-29
  • 打赏
  • 举报
回复
GetApp();????????????????/我忘记了怎么写的??
bcpl 2003-08-29
  • 打赏
  • 举报
回复
如果有CChildFrame的指针pFrame,用
pFrame->ActivateFrame(SW_SHOW);
UDX协议 2003-08-29
  • 打赏
  • 举报
回复
CMapTqryApp *pApp = GetApp();
if(pApp->m_pTqryDocTemProperty)
{
POSITION pos = pApp->m_pTqryDocTemProperty->GetFirstDocPosition();
if(pos == NULL)
{
CDocument * pDoc = pApp->m_pTqryDocTemProperty->OpenDocumentFile(NULL);
if(pDoc)
{
POSITION posView = pDoc->GetFirstViewPosition();
if(posView != NULL)
{
CView * pView = pDoc->GetNextView(posView);
if(pView)
{
CFrameWnd *pChidWnd = pView->GetParentFrame();
if(pChidWnd )
{
g_MainWnd->MDIActivate(pChidWnd );
CTqryMainQueryFormView * pTqryView = (CTqryMainQueryFormView *)pView;
pTqryView->m_pTqry = m_pPolice->m_pTqry;
pTqryView->InitData();
}
}
}
}
}else
{
while(pos != NULL)
{
CDocument * pDoc = pApp->m_pTqryDocTemProperty->GetNextDoc(pos);
if(pDoc)
{
POSITION posView = pDoc->GetFirstViewPosition();
while(posView != NULL)
{
CView * pView = pDoc->GetNextView(posView);
if(pView)
{
CFrameWnd *pChidWnd = pView->GetParentFrame();
if(pChidWnd )
{
g_MainWnd->MDIActivate(pChidWnd );
CTqryMainQueryFormView * pTqryView = (CTqryMainQueryFormView *)pView;
pTqryView->m_pTqry = m_pPolice->m_pTqry;
pTqryView->InitData();
}
}
}
}
}
}
}

MDIActivate(pChidWnd );激活
OpenDocumentFile(NULL);新建

zjg751206 2003-08-29
  • 打赏
  • 举报
回复
有代码吗??zjg751206@sina.com
zjg751206 2003-08-29
  • 打赏
  • 举报
回复
error C2065: 'm_pMainWnd' : undeclared identifier
error C2027: use of undefined type 'CMyView'
see declaration of 'CMyView'
error C2065: 'classCMyView' : undeclared identifier
Error executing cl.exe.
Creating browse info file...

KK.exe - 3 error(s), 0
llm06 2003-08-29
  • 打赏
  • 举报
回复
使用cdocumenttemplate 的opendocumentfile来打开子窗口

想激活,先使用findwindow来查找子窗口,如果找到,调用bringwindowtotop来激活
xmndragon 2003-08-29
  • 打赏
  • 举报
回复
有代码吗?xmndragon@vip.sina.com
ssfly 2003-08-29
  • 打赏
  • 举报
回复
CChildFrame *m_pFrame = new CChildFrame();
CCreateContext m_Context;
m_Context.m_pNewViewClass = RUNTIME_CLASS(CMyView);
if(!m_pFrame->LoadFrame(IDI_MyView,WS_MAXIMIZE | WS_OVERLAPPEDWINDOW, NULL, &m_Context))
return;
m_pFrame->InitialUpdateFrame(NULL, true);
zjg751206 2003-08-29
  • 打赏
  • 举报
回复
谢谢是这么搞定的
AfxGetApp()->m_pDocTemplate->OpenDocumentFile(NULL);

15,979

社区成员

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

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