重绘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);
    }
}

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