在Dialog中嵌入View的方法

Posted 力为

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Dialog中嵌入View的方法相关的知识,希望对你有一定的参考价值。

 

在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();

以上是关于在Dialog中嵌入View的方法的主要内容,如果未能解决你的问题,请参考以下文章

mfc dialog中能嵌入另外一个dialog吗

el-dialog嵌入vue-baidu-map,怎么每次弹出地图执行一次@ready方法?

android自定义的dialog怎么设置view

Easyui dialog中嵌入iframe

android将activity设置成自定义的Dialog怎么调整大小

android自定义的dialog怎么设置view