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

  • 相关阅读:
    Visual SVN1.5以上版本下载及破解过程
    C#线程系列讲座(2):Thread类的应用
    a标签的href 和onclick
    Windows 服务快捷启动命令
    iframe 跨域自动适应高度
    修正认知:string、Empty和null三者的正确区别

    线索二叉树
    最大连续子序列
    寻找最近点对
  • 原文地址:https://www.cnblogs.com/lidabo/p/2568648.html
Copyright © 2011-2022 走看看