编程论坛
注册
登录
编程论坛
→
C++教室
用什么方法刷新不闪屏??
huazhao
发布于 2010-11-05 11:10, 1992 次点击
我用 设置时钟来刷新窗口 屏幕老是闪 哪位高手指点下
5 回复
#2
hahayezhe
2010-11-05 11:52
只刷新相关的控件 或有效区域
不要刷新整个窗口
#3
最近不在
2010-11-05 21:04
程序代码:
方法是先将要绘制的东西保存到bitmap,再将bitmap贴到窗口上,原理是bitmap贴上去的速度很快
从以前代码中截取的相关部分
//
将图形读入内存
HDC hdcTemp = GetDC(g_hWnd);
HDC hdc1 = CreateCompatibleDC(hdcTemp);
HBITMAP hbitmap = CreateCompatibleBitmap(hdcTemp, rect.right-rect.left, rect.bottom-rect.top);
SelectObject(hdc1, hbitmap);
FillRect(hdc1, &rect, NULL);
//
显示到窗口
BitBlt(hdc,
0
,
0
, rect.right-rect.left, rect.bottom-rect.top, hdc1,
0
,
0
, SRCCOPY);
//
不要忘记处理这个消息
case
WM_ERASEBKGND:
break
;
#4
huazhao
2010-11-06 20:41
InvalidateRect(HWND hWnd ,CONST RECT *lpRect, BOOL bErase);
第二个参数 CONST RECT *lpRect 是不是用来定义刷新区域的??
#5
huazhao
2010-11-06 21:21
回复 2楼 hahayezhe
只刷新一小块区域也闪 ,我做的是个旋转地物体 没用控件去做
#6
lscalin
2010-11-07 10:18
学习3楼,3楼的好,
1