SDK 重绘时WM_ERASEBKGND怎么用?

SDK中,如何让下一次运行输出的内容覆盖第一次输出的内容?
(比如:第一次输出了当前时间“12:10:54”,第二次运行程序时(这是一个循环输出的程序),输出的时间“12:10:55”能覆盖在第一次的时间上。
看起来就像一个电子时钟的效果。)

第1个回答  2012-03-19
WM_ERASEBKGND是擦除背景时发送的消息,输出的内容不属于背景,
应该用WM_PAINT
case WM_PAINT:
TextOut()
break;本回答被网友采纳
第2个回答  2012-03-18
貌似孙鑫视频的第9讲有讲用CTime在应用程序框架上实现过,先是设置一个定时器 设置为一秒 然后调用一个定时响应消息函数,然后用获取时间函数来重新获取时间就行,和你那个要达到的效果一样 你可以去看看本回答被提问者采纳

SDK 重绘时WM_ERASEBKGND怎么用?
WM_ERASEBKGND是擦除背景时发送的消息,输出的内容不属于背景,应该用WM_PAINT case WM_PAINT:TextOut()break;

window消息中的ON_WM_ERASEBKGND,WM_PAINT,ON_WM_CTLCOLOR_REFLECT怎么用...
1.2.3 没分别,都要调用 这3个消息。因为这3个消息是关联的默认的 MoveWindow,RedrawWindow 都会触发 WM_ERASEBKGND,WM_PAINT,消息,而WM_PAINT又触发了WM_CTLCOLOR消息。补:窗口移动直接触发消息是 WM_MOVE ,是在MoveWindow 或 SetWindowPos 里面决定是否触发WM_PAINT\/WM_EREASEBKGND,如果窗口未被...

请教WM_ERASEBKGND
WM_ERASEBKGND消息是在指示HWND的整个背景窗体需要被擦除的时候才发送的。游戏编程中,一般来说总是全屏刷新重绘的,所以WM_ERASEBKGND的时候直接返回一个1即return 1,以告诉Windows你已经自己处理过了重绘了,所以接下来Windows不不会再做处理。否则,Windows会自己去重绘整个背景的。

WM_ERASEBKGND的备注
DefWindowProc函数通过使用WNDCLASS结构中指定的hbrBackground背景画笔擦除背景。如果hbrBackground是空的,应用程序应该处理WM_ERASEBKGND消息擦除背景。如果应用程序响应处理WM_ERASEBKGND消息并擦除背景,应返回非零值 ;告诉Windows没有必要再擦除。如果应用程序返回零,Windows仍将标记为删除。(通常情况下,...

WM_ERASEBKGND是什么的缩写,代表什么意思?
WM_ERASEBKGND是erase background的意思,一般当窗口移动或者改变的时候,需要重绘背景的时候,windows会抛出这个事件

WM_ERASEBKGND的简介
当窗口背景必须被擦除时 (例如,窗口的移动,窗口的大小的改变)才发送。当窗口的一部分无效需要重绘时发送此消息。C + +副本#define WM_ERASEBKGND 0x0014

C#读一张图做窗口背景,怎么做(采纳给高分)
另外一种是响应Windows的WM_ERASEBKGND消息,Windows向窗口发送一个WM_ERASEBKGND消息通知该窗口擦除背景,可以使用VC++的ClassWizard重载该消息的缺省处理程序来擦除背景(实际是用刷子画),并返回TRUE以防止Windows擦除窗口。2.改变窗口外形 通过使用新的SDK函数SetWindowRgn(),可以将绘画和鼠标消息限定在...

MFC中重绘checkbox,怎么画那个前面的框框
BeginPaint时若区域有擦除标记会触发WM_NCPAINT and WM_ERASEBKGND重绘无效区的窗口背景(在OnDraw调用之前)。如要手动触发重绘,调用Invalidate可把整个窗口客户区设置为无效区域并触发WM_PAINT,若Invalidate参数为TRUE则会把无效区的擦除标志设置上(这样才会触发WM_ERASEBKGND)。所以,楼主要窗口刷白,...

我的程序怎么会不停地发出WM_ERASEBKGND消息?
CDialog::OnPaint(); 这个执行内部向窗口发送了 WM_ERASEBKGND消息来刷新背景。估计在你的 OnEraseBkgnd 函数处理过程中 产生了需要刷新的无效区,导致系统产生wm_paint消息,这样就产生了死循环。onereasebkgnd函数内部不要使用 UpdateWindow MoveWindow SetWindowPos RedrawWindow等引起调用wm_paint的函数。

请问 用钩子 定制 对话框 的问题
用钩子拦截 WM_PAINT?厉害,这个消息你都敢拦截,电脑没卡死啊。WM_ERASEBKGND 的响应函数,返回1;双缓存,你要定义一个内存DC,每次重绘的时候先在内存DC里面绘图,绘制好以后InvalidateRect(),在wm_paint里面使用 BitBlt切换。还闪烁的话,就注意InvalidateRect(),控制好刷新区域就行了 ...

相似回答