我的做法是首先创建一个CMyDoc和一个CMyScorllview。然后用下面的代码在我要嵌入的Formview的OnInitialUpdate函数种加入:
void CMyFormView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
CCreateContext pContext;
CWnd* pFrameWnd = this;
pContext.m_pCurrentDoc = new CMyDoc;
pContext.m_pNewViewClass = RUNTIME_CLASS(CMyScorllview);
CMyScorllview *pView =(CMyScorllview*) ((CFrameWnd*)pFrameWnd)->CreateView(&pContext);
ASSERT(pView);
CRect rectWindow;
CWnd* pwnd = GetDlgItem(IDC_STATIC_CHILDVIEW);
pwnd->GetWindowRect(rectWindow);
ScreenToClient(rectWindow);
pView->MoveWindow(rectWindow);
pView->ShowWindow(SW_NORMAL);
}
运行程序报错,显示一个assert错误。
why?
void CMyFormView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
CCreateContext pContext;
CWnd* pFrameWnd = this;
pContext.m_pCurrentDoc = new CMyDoc;
pContext.m_pNewViewClass = RUNTIME_CLASS(CMyScorllview);
CMyScorllview *pView =(CMyScorllview*) ((CFrameWnd*)pFrameWnd)->CreateView(&pContext);
ASSERT(pView);
CRect rectWindow;
CWnd* pwnd = GetDlgItem(IDC_STATIC_CHILDVIEW);
pwnd->GetWindowRect(rectWindow);
ScreenToClient(rectWindow);
pView->MoveWindow(rectWindow);
pView->ShowWindow(SW_NORMAL);
}
运行程序报错,显示一个assert错误。
why?
解决方案 »
- 麻烦帮我看看,为什麽动态导入失败,谢谢,有源码
- 求助~关于win32程序消息处理的时间问题
- GINA -> WlxQueryTsLogonCredentials 失败,错误码183
- 求问!!VC编程,怎么把一个小数存到数据库的numeric类型里?
- 不能直接在屏幕上用绘图函数画图吗?为什么呀??
- MFC ODBC编程操作ORACLE,当要操作的表未定、表的字段也未定时,无法用绑定的CRecordSet来编程,怎么办?
- 关于坐标映射问题。
- 类向导建立问题
- 进程通信,高手进来谈谈。
- 下载了libpng和zlib,怎么使用它们,怎样才能把它们加到代码中
- 如何把工具栏的按钮分隔符去掉
- 智能指针创建COM实例,内存不能释放的问题
要嵌套使用视图的话最好用切分窗口。
直接嵌套带来的麻烦还不如去想其它办法,因为文档视图结构中,视图的父窗口只能是FrameWnd,其他窗口类型不认(切分窗口除外)。