关于CFormView创建窗口的问题
我用VS2010创建了一个没有文档视图结构的应用程序,只有CMainFrame,C***App和CChildView(派生于CWnd)三个类,我想用它调用DLL。
就是在DLL里面有一个CGridView(派生于CFormView),我想在CMainFrame创建窗口后,销毁CChildView窗口,然后创建CGridView窗口,但是CGridView窗口却无法创建成功,这是为什么?
以下是创建窗口代码
void CMainFrame::OnEqlTransformer()
{
if (m_wndView.GetSafeHwnd())
{
m_wndView.DestroyWindow();
}
if (!m_pGridView->GetSafeHwnd())
{
m_pGridView->Create(this,AFX_IDW_PANE_FIRST);
}
}
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
BOOL CGridView::Create( CWnd* pParent,UINT nID )
{
if(!CFormView::Create(NULL, NULL, WS_CHILD | WS_VISIBLE, CRect(0, 0, 0, 0), pParent, nID, NULL))
{
AfxMessageBox("创建工作区失败!");
return FALSE;
}
return TRUE;
}
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
我跟踪进去发现在CreateDlg函数出发生了错误
暂时我只能把问题说得这么清楚了,求教
就是在DLL里面有一个CGridView(派生于CFormView),我想在CMainFrame创建窗口后,销毁CChildView窗口,然后创建CGridView窗口,但是CGridView窗口却无法创建成功,这是为什么?
以下是创建窗口代码
void CMainFrame::OnEqlTransformer()
{
if (m_wndView.GetSafeHwnd())
{
m_wndView.DestroyWindow();
}
if (!m_pGridView->GetSafeHwnd())
{
m_pGridView->Create(this,AFX_IDW_PANE_FIRST);
}
}
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
BOOL CGridView::Create( CWnd* pParent,UINT nID )
{
if(!CFormView::Create(NULL, NULL, WS_CHILD | WS_VISIBLE, CRect(0, 0, 0, 0), pParent, nID, NULL))
{
AfxMessageBox("创建工作区失败!");
return FALSE;
}
return TRUE;
}
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
我跟踪进去发现在CreateDlg函数出发生了错误
暂时我只能把问题说得这么清楚了,求教
...全文
相关推荐
VS2019中没有CFormView的解决办法.docx
解决VS2019中没有CFormView的问题需要手动创建类并手写继承,新建资源 Dialog,并将其 ID 设置为 IDD_DISPLAYVIEW。
单文档程序窗口最大化问题汇总
这样,窗口创建时就会填充整个屏幕。3.
窗体分割与CFormView
SplitterWindow允许将一个大的父窗口划分为两个或多个可调整大小的子窗口。在MFC中,可以使用CSplitterWnd类来创建和管理这样的窗体分割。
CDockablePane类的使用.doc
三、CDockablePane 同 CFormView 类的联合使用方法CDockablePane 也可以与 CFormView 类联合使用,以便在表单视图中创建 dockable 窗口。
MFC 控件自动布局
开发者只需要在创建控件时指定其相对于其他控件或窗口边缘的位置关系,如居中、靠左、靠上等,CLayoutView就能自动处理这些布局问题。2.


