重繪ListCtrl中增加子控件Edit是,在父控件失去焦點時,子控件不進行隱藏

問題:現在有一個listctrl控件,需要在某一列上添加一個子控件edit。當點擊子控件(edit)時,子控件顯示出來,父控件(ListCtrl)已經失去焦點了。此時,要是鼠標點擊的位置不在該控件內,edit處於顯示狀態,父控件(ListCtrl)是失去焦點狀態。

需要解決的問題:

當鼠標點擊的位置不在該控件內時,子控件應該隱藏。

 

解決思路:

想要在鼠標點擊父窗口之外,使內部所有的子控件隱藏時,需要在父控件(ListCtrl)對edit控件做處理。

應該使用edit的KillFouces消息。因爲edit作爲子控件出現,不能使用WM_KILLFOUCES消息,應該使用edit內部的失去焦點消息

 

afx_msg  void OnEnKillfocusEditnormal();

ON_EN_KILLFOCUS(ListCtrl_Edit_ID, &CPublicListChildCtrl::OnEnKillfocusEditnormal)

void CMyChildCtrl::OnEnKillfocusEditnormal()
{
    if (m_Edit->IsWindowVisible() == TRUE)
    {
        m_Edit->ShowWindow(SW_HIDE);
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章