| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1990 人关注过本帖
标题:用什么方法刷新不闪屏??
只看楼主 加入收藏
huazhao
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2010-10-15
结帖率:0
收藏
 问题点数:0 回复次数:5 
用什么方法刷新不闪屏??
   我用 设置时钟来刷新窗口 屏幕老是闪 哪位高手指点下
2010-11-05 11:10
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
只刷新相关的控件 或有效区域

不要刷新整个窗口
2010-11-05 11:52
最近不在
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:204
专家分:842
注 册:2010-2-28
收藏
得分:0 
程序代码:
方法是先将要绘制的东西保存到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;
2010-11-05 21:04
huazhao
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2010-10-15
收藏
得分:0 
InvalidateRect(HWND hWnd  ,CONST RECT *lpRect, BOOL bErase);
第二个参数 CONST RECT *lpRect  是不是用来定义刷新区域的??
2010-11-06 20:41
huazhao
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2010-10-15
收藏
得分:0 
回复 2楼 hahayezhe
只刷新一小块区域也闪 ,我做的是个旋转地物体 没用控件去做
2010-11-06 21:21
lscalin
Rank: 6Rank: 6
来 自:周总理故乡
等 级:侠之大者
威 望:1
帖 子:91
专家分:405
注 册:2010-5-10
收藏
得分:0 
学习3楼,3楼的好,

灵感不是曹操,说来就来。
2010-11-07 10:18
快速回复:用什么方法刷新不闪屏??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034828 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved