您的位置:首页 > 其它

在Dialog中嵌入View的方法

2008-08-29 14:28 253 查看
在dialog中嵌入view也没有想象到的那么复杂,遵循如下步骤即可。

1. Create 一个 child类型的CFrameWnd,摆正位置。

2. 正确设置CCreateContext

3. Create 出View与CFrameWnd关联4. Show it!

看代码:

CWnd* pPosWnd = GetDlgItem(IDC_VIEW_POSITON);
CRect rect;
pPosWnd->GetWindowRect(&rect);
CRect rectView = rect;
ScreenToClient(&rect);

m_pFrame = new CFrameWnd();
m_pFrame->Create(NULL, NULL, WS_CHILD | WS_VISIBLE, rect, this);

m_pFrame->ScreenToClient(&rectView);

m_pDoc = static_cast<CDlgViewDoc*>(RUNTIME_CLASS(CDlgViewDoc)->CreateObject());

CCreateContext context;
context.m_pNewViewClass = RUNTIME_CLASS(CDlgViewView);
context.m_pCurrentDoc = m_pDoc;
context.m_pNewDocTemplate = NULL;
context.m_pLastView = NULL;
context.m_pCurrentFrame = m_pFrame;

CView* pView = static_cast<CView*>(RUNTIME_CLASS(CDlgViewView)->CreateObject() );
if( !pView )
return FALSE;
if( !pView->Create(NULL,NULL,AFX_WS_DEFAULT_VIEW, rectView, m_pFrame, AFX_IDW_PANE_FIRST,&context) )
return FALSE;
pView->ShowWindow(SW_SHOW);
pView->OnInitialUpdate();



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: