怎么把view加载到对话框中去

怎么把view加载到对话框中去,第1张

对话框添加视图

关注

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

1、资源管理器中编辑要的对话框资源/属性设为child。

2、建立对话框类

3、在视中添加定义的对话框类为成员变量:m_YourDlg.

4、在视图的OnCreate中:

m_YourDlg.Create(IDD_YourDLG,this)

//设置显示位置和方式

m_YourDlg.setWindowPos(......)

有很多种方法可以 ,我介绍两种:

第一种:

CMainFrame *pFrameWnd = (CMainFrame*)AfxGetApp()->GetMainWnd

pFrameWnd->GetActiveView();

第二种是利用全局变量the App,在CMyAPP这个类里有一个申明的全局变量。:

theApp.GetMainWnd()->GetActiveView()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11943236.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存