注册 登录
编程论坛 C++教室

用什么方法刷新不闪屏??

huazhao 发布于 2010-11-05 11:10, 1992 次点击
   我用 设置时钟来刷新窗口 屏幕老是闪 哪位高手指点下
5 回复
#2
hahayezhe2010-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
huazhao2010-11-06 20:41
InvalidateRect(HWND hWnd  ,CONST RECT *lpRect, BOOL bErase);
第二个参数 CONST RECT *lpRect  是不是用来定义刷新区域的??
#5
huazhao2010-11-06 21:21
回复 2楼 hahayezhe
只刷新一小块区域也闪 ,我做的是个旋转地物体 没用控件去做
#6
lscalin2010-11-07 10:18
学习3楼,3楼的好,
1