{
CFormView::OnInitialUpdate()
/* 加入你要的初始化代码*/
GetParentFrame()->RecalcLayout()
ResizeParentToFit()
}
在CFormView中,通过跟踪可发现程序不会去调用CDialog::OnInitDialog(),在CFormView::Create(**)中有如下语句CreateDlg(m_lpszTemplateName, pParentWnd),既对话框通过非模态创建,创建期间会发送WM_CREATE消息,但初始化代码不能写在OnCreate函数里面,因为此时对话框还没创建完毕,在所有的创建工作结束后,既CFormView::Create(**)执行完毕后系统会调用OnInitialUpdate(),这时候就可以加入你的初始化代码了
另外,团IDC网上有许多产品团购,便宜有口碑
在对话框上添加视图关注
rxguoblp
rxguoblp
本版等级:
#5 得分:80回复于: 2014-08-13 19:36:30
简单问题:
1.向工程中添加一个MFC视图类:CMyView,派生自CView;
2.在对话框类CxxxDlg上定义一个视图类指针作为其类成员CMyView *m_pView(记着包含CMyView.h)
3.为了使得View视图创建在指定的区域,在对话框上放一个静态文本控件,资源ID手动改为IDC_STATIC_VIEW;
4.在对话框的OnInitDialog函数里添加如下代码:
BOOL CCreateViewDlg::OnInitDialog()
{
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
// TODO: 在此添加额外的初始化代码
UINT TargetCtrlID = IDC_STATIC_VIEW
CWnd *pWnd = this->GetDlgItem(TargetCtrlID)
CRect RectTargetCtrl
pWnd->GetWindowRect(RectTargetCtrl)
this->ScreenToClient(RectTargetCtrl)
m_pView = (CMyView*)RUNTIME_CLASS(CMyView)->CreateObject()
//在目标位置动态创建视图
if (NULL==m_pView)
{
return FALSE
}
m_pView->Create(NULL, NULL, AFX_WS_DEFAULT_VIEW, RectTargetCtrl, this, TargetCtrlID)
m_pView->ShowWindow(SW_SHOW)
return TRUE // 除非将焦点设置到控件,否则返回TRUE
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)