一个程序初始正常运行的时候,针对各个消息的响应顺序是什么呢?如果响应了多个消息,哪个消息响应在前,哪个在后?
Mfc自动生成的SDI程序,只在其中加入对视图类WM_SIZE消息的响应:void CMessageSeqenceView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
AfxMessageBox("尺寸改变消息的响应");
}
发现会弹出3次提示窗口,其中2次再窗口显示前,一次在窗口显示之后。
继续在其中加入对视图类WM_MOVE消息的响应:
void CMessageSeqenceView::OnMove(int x, int y)
{
CView::OnMove(x, y);
// TODO: Add your message handler code here
AfxMessageBox("移动消息的响应");
}
这样一共出现6次窗口提示,尺寸改变与移动分别导致3次,次序为:
尺寸改变-移动-移动-尺寸改变-移动(显示窗口)-尺寸改变
另外如果只针对MainFrame响应WM_SIZE消息,则会弹出2次窗口,一次在窗口显示前,一次在显示后!
我想问下深层次的原因……………………
另外就是一个程序初始正常运行的时候,针对各个消息的响应顺序是什么呢?如果响应了多个消息,哪个消息响应在前,哪个在后?