如何让CDialog类多次调用它的OnSize()函数?

THINK511 2005-02-24 12:58:16
我单步跟踪发现CDialog只是在初始的时候调用一次OnSize()函数,以后就不会再进入,请问如何能让CDialog在运行的时候多次调用OnSize()?
...全文
391 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
carbon107 2005-02-24
  • 打赏
  • 举报
回复
当对话框尺寸改变时才可以调用OnSize的,所以你改变了对话框的尺寸就会调用这个函数,如果想调用,就写个函数呀
fengqinggao 2005-02-24
  • 打赏
  • 举报
回复
学VC,要充分利用英文意思,OnSize,就是On+Size,On,就是在…的时候,Size,是尺寸,这里合起来就是“当尺寸发生变化了的时候”,对话框,如果它的属性设为大小不能变化,则它只有在生成的时候尺寸会发生变化,也就只有在生成的时候调用该函数,而View,它的大小时岁Frame的变化而变化的,只要Frame的大小变化,它就调用OnSize函数。

还有,如OnSizing,就表示“当尺寸正在发生变化的时候”,这样根据英文理解,你对消息理解起来也就容易多了
THINK511 2005-02-24
  • 打赏
  • 举报
回复
这确实是个好方法,但是我就是想知道为什么在CView中OnSize是频繁调用的,而在CDialog中却不是?
快乐鹦鹉 2005-02-24
  • 打赏
  • 举报
回复
你设置对话框的属性为可放缩,然后放缩对话框就会调用了。
  • 打赏
  • 举报
回复
用MoveWindow改变以下大小,再该回原始大小

MoveWindow sends the WM_WINDOWPOSCHANGING, WM_WINDOWPOSCHANGED, WM_MOVE, WM_SIZE, and WM_NCCALCSIZE messages to the window.
蒋晟 2005-02-24
  • 打赏
  • 举报
回复
把OnSize()里面的代码拿出来写成函数,想什么时候调就什么时候调

15,980

社区成员

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

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