假设自定义的一个编辑框控件,并且控件捕获了这些消息那么在下列事件下各触发什么事件,顺序怎么样的
1。移动对话框但控件未超出屏幕范围。
2。。。。。超出。。。
3对话框从最小状态下恢复。
这三个消息都是控件的外观需要重新表现触发的所以想问下它们所处理嘚事件能否交叉,比如在ON_WM_ERASEBKGND处理时把WM_PAINT的事情也一并处理(比如说画一条线)
望高手赐教,不胜感激
WM_PAINT 绘制前景,就是一般的绘图
WM_CTLCOLOR 确切的说对於edit 其实是 WM_CTLCOLOREDIT 反射消息,表示子控件绘制之前通知父窗口“我要绘制了告诉我要绘制什么颜色,否则我就用默认的”
补:窗口移动直接觸发消息是 WM_MOVE ,是在MoveWindow 或 SetWindowPos 里面决定是否触发WM_PAINT/WM_EREASEBKGND,如果窗口未被别的窗口覆盖且size没变化,可以不重绘而是由显卡内部移动当前窗口的显示数据,哃时向下层窗口发送重绘消息 如果超出屏幕再移回部分,那就有部分被遮盖需要重绘了当然触发重绘消息.
WM_CTLCOLOR 消息不用去管它,这个很多控件是在自绘模式下才支持的编辑控件也是在可编辑状态下才响应的。规律我也摸不准不过我从来不用它。属于鸡肋性质的消息如果要调整背景颜色等信息,可以直接使用控件函数来设置再不行就自绘完成了,工作量也不是太大