mfc中创建分割视图怎么获取视图窗口句柄

mfc基于当文档:在OnCreateClient中:intrtn=m_splitterOne.CreateStatic(this,1,2);m_splitterTwo.C... mfc基于当文档:在OnCreateClient中:int rtn = m_splitterOne.CreateStatic(this, 1, 2); m_splitterTwo.CreateStatic(&m_splitterOne, 2, 1, WS_CHILD|WS_VISIBLE, m_splitterOne.IdFromRowCol(0, 0)); m_splitterTwo.CreateView(0, 0, RUNTIME_CLASS(CLeftView), CSize(450, 250), pContext); m_splitterTwo.CreateView(1, 0, RUNTIME_CLASS(CBottomView), CSize(450,250), pContext); m_splitterOne.CreateView(0, 1, RUNTIME_CLASS(CRightView), CSize(450, 250), pContext); m_splitterOne.SetColumnInfo(0, 450, 100);CLeftView,CBottomView,CRightView是基于对话框从CFormView派生的(就是添加一个对话框并生成类,CFormView做父类),现在我要让这几个视图作为另外3个模块界面的父窗口,但是我发现就上面的代码就已创建好了分割窗口,我要怎么才能获取这三个视图的窗口句柄呢,希望哪位大侠能详细说一下。谢谢。 展开
 我来答
玖风瑰枫
2015-11-06
知道答主
回答量:4
采纳率:0%
帮助的人:4621
展开全部
1 在多文档多视图的MFC架构中,要想获得当前选中的CView可重写CView::OnActivateView函数,如下:
void
OnActivateView(BOOL bActivate,
      CView * pActivateView,
      CView * pDeactiveView)
{
if(bActivate)
{
SetEnable(TRUE);
}
else
{
SetEnable(FALSE);
}
CView::OnActivateView(bActivate,
         pActivateView,
             pDeactiveView);
}

2 获得窗口或者视图句柄
2.1 获得窗口句柄

要找到某个CWnd对象的HWND,用GetSafeHwnd()。
在窗口类中,有句柄的成员变量,可以直接访问: m_hWnd
在窗口类外,可以用AfxGetMainWnd()->m_hWnd获得。
在MainFrame里直接用this;
其它地方用 CMainFrame* pMainFrame = (CMainFrame*)theApp.m_pMainWnd;
想得到一个控件的的句柄
GetDlgItem(ID…)->m_hWnd

2.2 获得视图的句柄
AfxGetMainWnd()->GetActiveView();
SDI: ((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView();
MDI: ((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveFrame()->GetActiveView();
ljt20061908
2013-07-11 · TA获得超过1033个赞
知道小有建树答主
回答量:527
采纳率:87%
帮助的人:198万
展开全部
查这个函数CSplitterWnd::GetPane

CWnd* GetPane(
int row,
int col
) const;

注意行和列是以0开始的
追问
谢谢,窗口句柄是能获取到,但是三个类的对象怎么获取呢?因为我要把这三个视图窗口的子窗口(另外创建的)保存起来,让子窗口大小与三个视图窗口大小一致,并且能随分割条移动而自动调整大小。我强转GetPane获取的窗口指针为相应的类型,但是发现并不能通过它调用我写的保存子窗口函数保存子窗口指针,保存的窗口指针始终为空,我想请问下具体该怎么做呢?谢谢。
追答
CSplitterWnd::GetPane这个函数是得到View对象的指针。确实没看懂你要表达的意思,
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式