如何让某指定子窗口在被显示或遮挡的时候让主窗口上的某按钮被屏蔽或激活?主要是子窗口的显示屏蔽状态如何通知主窗口?

解决方案 »

  1.   

    在窗口得到焦点的时候收到一个WM_SETFOCUS消息
    失去焦点的时候收到一个WM_KILLFOCUS消息
    在这两个消息里就可以通知主窗口
      

  2.   

    void CXXXWnd::OnWindowPosChanged(WINDOWPOS FAR* lpwndpos) 
    {
           lpwndpos->hwndInsertAfter是在你上面的窗口
    }
      

  3.   

    GetActiveWindow()獲得活動的窗體.
    GetParent()獲得父窗口
    BringWindowToTop把指定的窗口顯示到最前面.
      

  4.   

    现在又有个新问题.
    在主窗体收到子窗体的不是激活状态消息的时候我在OnIeKillFocus()方法中:
    void CMainWnd::OnIeKillFocus()
    {
    CCmdUI* pItem = wndToolBar.GetID(ID_TAB_HOME);
    pItem->Enable(FALSE);
    }
    但是这个按钮的屏蔽效果一闪又回到激活状态了.
    我在按钮的消息中设置:
    void CMainWnd::OnUpdateTabHome(CCmdUI* pCmdUI) 
    {
    pCmdUI->Enable(FALSE);
    }
    却可以一直实现按钮被屏蔽.这是为什么啊?