• MDI中通过GetActiveView获得VIEW


    CMDIFrameWnd *pFrame = (CMDIFrameWnd *)AfxGetApp()->m_pMainWnd;
    // Get the active MDI child window.
    CMDIChildWnd *pChild = (CMDIChildWnd *) pFrame->GetActiveFrame();
    /* or CMDIChildWnd *pChild = pFrame->MDIGetActive(); */ 
    // Get the active view attached to the active MDI child window.
    CBusCadView *pView = (CBusCadView *) pChild->GetActiveView();

    MDI 框架窗口的工作区被称为 MDICLIENT,也称为工作区中的客户端窗口覆盖。此客户端窗口中又包含零个或更多的子窗口,其中每个可显示的视图,如本图中所示:

                        ---------------------------
                       |      Frame Window         |  ---> CMDIFrameWnd
                       | (main application window) |
                        ---------------------------
                                 |
                        --------------------
                       |   Client Window    |  ---> MDICLIENT window class
                       | (no view attached) |
                        --------------------
                                 |
             -----------------------------------------------------------
             |                            |
     ---------------------      --------------------
    |   Child Window 1    |    |   Child Window 2   |  ---> CMDIChildWnd
    | (one or more views) |    | (one or more views |

     ---------------------      -------------------- 

    在此图中所示,MDI 框架窗口没有直接与之相关联的视图。视图实际上与程序关联的 MDI 子窗口。


    因此,为 MDI 主框架窗口调用 GetActiveView() 函数将返回 NULL,意味着没有直接与 MDICLIENT 相关视图。通过先查找活动的 MDI 子窗口,在本文的解决方案一节中所述,为的子窗口查找活动视图,可以获取 MDI 应用程序中的活动视图。
  • 相关阅读:
    [LiDAR数据模拟]系列(2) HELIOS的TLS点云模拟流程
    [LiDAR数据模拟]系列(1) HELIOS模拟平台介绍
    [漫谈科研]系列(1) 分享才能进步
    python消息队列snakemq使用总结
    关于modbus rtu一个主站与多个从站通信的一点总结
    关于使用ffmpeg的一些牢骚
    Pyqt5 实时图像滚动
    pyqt5 窗体布局
    PyQt5创建第一个窗体(正规套路)
    pyqt中使用matplotlib绘制动态曲线
  • 原文地址:https://www.cnblogs.com/burellow/p/2737409.html
Copyright © 2020-2023  润新知