首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 对话框绘图闪烁问题 [已结贴,结贴人:brave_h]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • brave_h
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-06-10 17:12:52 楼主
    我在对话框上绘制的图画,刷新时闪烁怎么解决?
    还有在内存中绘好图,到底可不可以用BitBlt贴到对话框上?
    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cnzdgs
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 5

      2

      13

    发表于:2008-06-10 17:17:441楼 得分:2
    响应WM_ERASEBKGND消息,直接返回TRUE。
    当然可以,不然“双缓冲”还有什么用。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fairyprince
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-11 17:15:322楼 得分:5
    使用双缓冲
    建立一个和当前DC 一栏的内存DC(保存住直到不用时在释放)
    然后在内存DC中画,刷新时直接帖上去
    拦截WM_ERASEBKGND不要让其擦除背景(什么也不做,直接返回就好了)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • CounterHack
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-11 17:32:543楼 得分:8
    HDC hMemDC = CreateCompatibleDC(GetDC());
    HBITMAP = CreateCompatibleBitmap(GetDC());
    SelectObject(hMemDC, hMemBmp);
    ...
    画到hMemDC;
    ...
    OnPaint()
    {
    ...
    BitBlt(hdc, ..., hMemDC, ..., SRCCOPY);
    ...
    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • trasin8848
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-11 18:19:224楼 得分:30
    BOOL  CTestDlg::OnEraseBkgnd(CDC  *pDC)


    CDCmemDC;
    CBitmap MPlayer;
    if(!MPlayer.LoadBitmap(IDB_BITMAPBACKGROUND)) //装载界面位图
    return FALSE;
    memDC.CreateCompatibleDC(pDC);//创建兼容的设备
    CBitmap *pOldBmp=memDC.SelectObject(&MPlayer);//将位图选进设备
    pDC->BitBlt(0,0,MPLAYERWIDTH,MPLAYEREXT,&memDC,1,1,SRCCOPY);//设备之间的拷贝
    memDC.SelectObject(pOldBmp);//恢复设备
    return  TRUE; 

    放在onpain中一样,小加修改就可以了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • bgp100
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-11 20:12:495楼 得分:5
    如果在OnDraw函数中重绘就会造成闪烁,如果在WM_ERASEBKGND消息中重绘应该会好点,如果还闪的厉害就不知道了。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved