重绘ListCtrl中增加子控件Edit是,在父控件失去焦点时,子控件不进行隐藏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32716885/article/details/83008630

问题:现在有一个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);
    }
}

猜你喜欢

转载自blog.csdn.net/qq_32716885/article/details/83008630
今日推荐