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

  • 相关阅读:
    L2-004. 这是二叉搜索树吗?
    CF934A A Compatible Pair
    CF937B Vile Grasshoppers
    CF940B Our Tanya is Crying Out Loud
    ZOJ 3182 Nine Interlinks
    ZOJ 3175 Number of Containers
    Codeforces Round #193 (Div. 2) B
    CodeForces 149D Coloring Brackets
    POJ 2653 Pick-up sticks(计算几何)
    UVA 12506 Shortest Names
  • 原文地址:https://www.cnblogs.com/lidabo/p/2568648.html
Copyright © 2011-2022 走看看