想了很久没想通。。。WM_MOUSEACTIVATE的问题
一个窗口我在WM_MOUSEACTIVATE消息中这么处理
int OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message)
{
return MA_NOACTIVATE;
}
这样是正常的,点击到它的client区域没问题,它不会获得焦点。
如果它包含一个按钮,那么点击按钮,这个窗口还是获得焦点了。
用spy++看,它走了WM_MOUSEACTIVATE消息并返回MA_NOACTIVATE以后紧接着就WM_ACTIVE了。
用spy++跟踪那个按钮,也走了WM_MOUSEACTIVATE并且返回MA_NOACTIVATE。
1.按钮如何响应WM_MOUSEACTIVATE的?
2.点了按钮以后这个窗口为什么还会获得焦点?
3.它获得焦点的整个过程(消息的收发)是怎样的?