AFEACTLON中文ON是什么意思中文

让控件自身处理 不让父窗口处悝, 这样的话封装了一个控件类, 用户可以直接用,

我有些糊涂了。。。

第二个问题:对话框中添加WM_CTLCOLOR消息使 对话框有能去处理控件的背景、颜色什么的修改,

但是我昨天下了个代码发现作者: 封装的按钮类, 可以自绘但同时也添加了 WM_PAINT

// TODO: 在此添加专用代码和/或調用基类
// TODO: 添加您的代码以绘制指定项
// TODO: 在此处添加消息处理程序代码
自定义一个编辑框控件被这些消息搞晕了,看MSDN无果有几个问题想问一下,希望大家指教假设自定义的一个编辑框控件,并且控件捕获了这些消息那么在下列事件丅各触发什么事件,... 自定义一个编辑框控件被这些消息搞晕了,看MSDN无果有几个问题想问一下,希望大家指教
假设自定义的一个编辑框控件,并且控件捕获了这些消息那么在下列事件下各触发什么事件,顺序怎么样的
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 消息不用去管它,这个很多控件是在自绘模式下才支持的编辑控件也是在可编辑状态下才响应的。规律我也摸不准不过我从来不用它。属于鸡肋性质的消息如果要调整背景颜色等信息,可以直接使用控件函数来设置再不行就自绘完成了,工作量也不是太大

因为主程序使用了一个外部的lib文件用于绘制标题栏这个Lib文件中有hook捕获了程序的消息并且,对程序的消息进行了处理其中

// 不让禁用或者只读状态的编辑框也重画背景

 这個消息导致了我的主程序中无法改变static text 控件无法改变字体大小和颜色,如果删除这段代码又会出问题;然后我在主程序的

参考资料

 

随机推荐