....................
if (pMsg->message == WM_LBUTTONDOWN || pMsg->message == WM_NCLBUTTONDOWN)
{HWND hWndEdit = m_list_ctrl.m_editCtrl.GetSafeHwnd();
if (::IsWindow(hWndEdit))
{
if (pMsg->hwnd != hWndEdit) // 注意:消息不一定都是属于窗口的,也可能是属于其上控件的
{// 没有点击在Edit上
CPoint pt(LOWORD(pMsg->lParam), HIWORD(pMsg->lParam));
ClientToScreen(&pt); // 此时pt是CDataClearDlg窗口的客户区坐标
CRect rect;
m_list_ctrl.m_editCtrl.GetWindowRect(rect);
// m_list_ctrl.m_editCtrl.GetClientRect(rect);
// m_list_ctrl.m_editCtrl.ClientToScreen(&rect);
// 不能直接ClientToScreen(&rect);
if (!rect.PtInRect(pt))
{
m_list_ctrl.DestroyEditCtrl();
return FALSE;
}
}
}
}