zoukankan      html  css  js  c++  java
  • 在MFC中获取窗口\视图句柄 &获取当前活动的CView .

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

  • 相关阅读:
    两层和三层的讨论(C/S)
    FF IE 编码 转换
    MySql数据库 字符编码问题解决办法
    JDO的persistence by reachability
    技术贴
    Eclipse 快捷键总结
    记录一下: 火狐 IE 实现图片本地预览 demo
    一般jsp 翻页 选择 保留 代码
    复习下几个排序
    Eclipse 插件开发 资料贡献
  • 原文地址:https://www.cnblogs.com/lidabo/p/2568648.html
Copyright © 2011-2022 走看看