有没有窗口改变大小之前的消息
我有一个窗口是从CWnd继承的,它是作为主窗口的子窗口,当改变主窗口的大小时的,主窗口的OnSize事件里面会调整这个子窗口的大小。
这个子窗口有水平和垂直的滚动条,我希望当窗口的大小小于某个数值时才将滚动条显示出来,所以就在子窗口的OnSize事件里面ModifyStyle,
结果遇到一个问题:
子窗口OnSize事件时的窗口大小已经被计算过了,这个时候ModifyStyle加上或者去掉滚动条,都不会对GetClientRect所取得的窗口RECT有影响,
当然也可以在ModifyStyle之后再次设置大小,来使自己的ClientRect发生变化,不过这样肯定不如在窗口大小改变之前预先变更风格要好。
(拖动的时候会有很多个OnSize所以可以刷过来,但最大化、还原只有一次OnSize所以刷不过来)
下面几个消息已经试过了,无效:
1、WM_GETMINMAXINFO,确实是在改变之前,不过不知道将要变成多少。
2、WM_SIZING,因为拖动的是主窗口,而子窗口是通过语句设置大小的,所以没能触发此消息。(其实也不知道有没有用)
3、WM_WINDOWPOSCHANGED、WM_WINDOWPOSCHANGING,与写在OnSize里面是一个效果。
另外,个人认为WH_CBT钩子估计应该是可以在改变之前率先截获消息的,不过这个代价就比较大了,还不如OnSize之后再Size一次。
请问有这样的消息存在么?如果没有我就用笨方法算了……
[解决办法]
good
[解决办法]
jf^^
[解决办法]
貌似对我有提示作用.
[解决办法]
接分