版权声明:本文为博主原创文章,未经博主允许不得转载。 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);
}
}