none
求助,我的MFC应用程序有三个MDIChildWnd子窗口,程序内部如何捕获当前激活的MDIChildWnd窗口(当鼠标点击主窗口客户区的相应窗口或者选择[窗口]菜单点击相应子窗口时) RRS feed

  • 问题

  • 我的应用创建了三个MDIChildWnd子窗口,三个MDIChildWnd窗口共用一个接收线程,接收线程需要根据当前不同的活动MDIChildWnd窗口来做不同的数据处理,但三个MDIChildWnd窗口的选择有两种方式,即鼠标点击MDIChildWnd窗口来激活,或者用鼠标选择【窗口】菜单,点击相应的MDIChildWnd窗口l来切换,但问题的焦点是切换窗口时我如何在MFC程序里捕获当前激活的MDIChildWnd窗口。多谢!
    2014年2月25日 2:38

答案

  • 你好:

    在MFC里,有一个窗口成员函数OnActivate

    afx_msg void OnActivate(
       UINT nState,
       CWnd* pWndOther,
       BOOL bMinimized 
    );
    

    nState : CWnd 激活或停用。</sentencetext><sentencetext xmlns="http://www.w3.org/1999/xhtml">它可以是下列值之一:</sentencetext> 

    • WA_INACTIVE。</sentencetext>                                       

    • WA_ACTIVE 窗口通过某种方法激活除了鼠标单击外部(例如,利用选择窗口的键盘界面)。</sentencetext>                                       

    • WA_CLICKACTIVE。</sentencetext>                                       

    pWndOther :CWnd 的指针激活或停用的。</sentencetext>NULL,因此,它可以是临时文件。</sentencetext> 

    bMinimized : <sentencetext xmlns="http://www.w3.org/1999/xhtml">指定激活或停用的 CWnd 的最小化状态。</sentencetext>TRUE 的值指示窗口最小化。</sentencetext>CWnd 被激活 ;否则不被激活。</sentencetext> 

    详细信息可以参照:http://msdn.microsoft.com/zh-cn/library/1f31c334.aspx

    还有WM_MDIACTIVATE这个消息。

          
    2014年2月26日 4:07
    版主