诡异的MoveWindow!!!OnSize()无响应

l274516903 2013-06-21 04:31:02
现象是这样:

当主对话框的大小发生改变时,我在OnSize()里对子控件进行了重新排列。

调用 m_pChild->MoveWindow(&rcChild, TRUE); 调整子控件大小。

诡异的是:在子控件的OnSize()里怎么也不响应。

==================================================================

更诡异的是:我用了四台电脑进行测试,两台一切正常,两台不能正常响应

=================================================================

调试跟踪发现。正常的情况下:MoveWindow 顺次发了如下消息。

70 #define WM_WINDOWPOSCHANGING 0x0046
131 #define WM_NCCALCSIZE 0x0083
133 #define WM_NCPAINT 0x0085
20 #define WM_ERASEBKGND 0x0014
71 #define WM_WINDOWPOSCHANGED 0x0047
3 #define WM_MOVE 0x0003
5 #define WM_SIZE 0x0005

而不正常情况下。只发了一条
71 #define WM_WINDOWPOSCHANGED 0x0047

====================================================================
其余消息凭空失踪了??? 不知道微软MoveWindow如何实现的,有什么条件促使MoveWindow有些消息没发出来?

各位大大能提供个思路不?
...全文
295 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
l274516903 2013-06-21
  • 打赏
  • 举报
回复
引用 1 楼 CometNet 的回复:
有些时候MoveWindow指定的新宽度、高度和原来一致,也就是说没有调整宽度、高度,自然不会触发OnSize
MoveWindow时我加输出了显示前后的位置,大小肯定是有变化的。
邓学彬 2013-06-21
  • 打赏
  • 举报
回复
有些时候MoveWindow指定的新宽度、高度和原来一致,也就是说没有调整宽度、高度,自然不会触发OnSize

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧