窗体隐藏

      在MDI程序中假如有一非模式对话框,当鼠标点击主窗口,非模态对话框失去焦点,这时要

      求把对话框隐藏掉。

      网上大多说要用WM_KILLFOCUS消息,但是对话框上有其他控件时,失去焦点的不是对话框而是某个控件,这种方法不能使非模态对话框自动隐藏。

     而利用WM_ACTIVE消息可以很好的实现这一功能。在给非模态对话框添加消息时,要选择消息过滤类型为window,添加WM_ACTIVE消息

     示例如下:

                                            void CRelCtrlDlg::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized) { CDialog::OnActivate(nState, pWndOther, bMinimized); // TODO: Add your message handler code here this->ShowWindow(SW_HIDE);//隐藏非模态对话框 }

    详细内容请查MSDN :WM_ACTIVE消息

你可能感兴趣的:(窗体隐藏)