社区
图形处理/算法
帖子详情
双缓冲绘图能在对话框中使用吗?
zxd_001
2008-04-01 06:53:56
找了一些关于防治画面闪烁的双缓冲方法,但是都是在单文档中的使用,我在对话框里试了一下,没有成功。
想问一下双缓冲绘图能不能在对话框中使用,怎么使用? (我是在对话框的Picture控件上绘图)。
多谢!
...全文
84
8
打赏
收藏
双缓冲绘图能在对话框中使用吗?
找了一些关于防治画面闪烁的双缓冲方法,但是都是在单文档中的使用,我在对话框里试了一下,没有成功。 想问一下双缓冲绘图能不能在对话框中使用,怎么使用? (我是在对话框的Picture控件上绘图)。 多谢!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
txk1452
2008-04-02
打赏
举报
回复
可以,可以处理OnEraseBkgnd和OnPaint
智能卡_Snooper
2008-04-02
打赏
举报
回复
跟什么界面无关。
cnzdgs
2008-04-02
打赏
举报
回复
OnEraseBkgnd就是把对话框整个用背景色填充,如果不填充就等于是对话框没有背景,那么控件之外(以及透明背景控件)因为没有画任何东西,所以就看到对话框后面的东西了。
zxd_001
2008-04-02
打赏
举报
回复
baidu: 重载OnEraseBkgnd()函数,让其直接返回TRUE。可以禁止系统擦除你的窗口。为什么对话框变成透明的呢
cnzdgs
2008-04-02
打赏
举报
回复
OnEraseBkgnd是刷新背景,直接返回非0值就表示不执行刷新背景操作。
你应该处理Picture控件的WM_PAINT消息,或者将其设置为OwnerDraw然后响应对话框的WM_DRAWITEM消息。
zxd_001
2008-04-02
打赏
举报
回复
出现一个问题
我添加OnEraseBkgnd重载函数后,整个对话框全部变成透明(或是白色的)的了,这是怎么回事〉
OnEraseBkgnd函数的作用是什么?
我只需要对对话框上的Pictur区域绘图,并防止闪烁。
zxd_001
2008-04-01
打赏
举报
回复
刚刚baidu了一下
知道问题所在了
明天上班试试。
在对话框下,最主要的是找不到ON_WM_ERASEBKGND()消息的映射。所以这个需要手动加入。
在.h文件中加入:afx_msg BOOL OnEraseBkgnd(CDC* pDC);
在.cpp文件消息映射中加入: ON_WM_ERASEBKGND()
再添上函数:
BOOL CPaintPicture::OnEraseBkgnd(CDC* pDC)
{
return TRUE;
}
cnzdgs
2008-04-01
打赏
举报
回复
当然可以用了,你没成功具体是什么情况?
相关推荐
对话框
双缓冲
绘图
---图放大缩小功能
对话框
双缓冲
绘图
---不超越PICTUE控件范围 在
对话框
中
建立PICTURE控件 具有放大缩小图片功能
绘图
不超越PICTURE控件范围
VC
双缓冲
绘图
,无闪烁
该程序在VC6.0的
对话框
中
利用
双缓冲
技术实现了无闪烁绘制图像,其
中
实现部分在OnPaint函数
中
。
MiniDraw.rar_MFC
双缓冲
_MFC
双缓冲
绘图
_mfc
绘图
双_minidraw_
双缓冲
使用
MFC文档视图结构,采用
双缓冲
绘图
技术写的gdi
绘图
程序
C#
使用
双缓冲
绘图
C#
使用
双缓冲
绘图
VC
使用
双缓冲
避免
绘图
闪烁的正确
使用
方法【转】
使用
内存DC
绘图
,然后实现
双缓冲
,避免
绘图
闪烁,这个小技术简单但很有效。但是仍然有很多人说
使用
了
双缓冲
,图片却仍然有闪烁,分析了几个这样的例子,发现 其实不是
双缓冲
的技术问题,而是
使用
者没有正确理解和
使用
双缓冲
的方法。
使用
双缓冲
要点如下: 1. 保证
绘图
过程
中
的所有CDC及其继承类指向内存DC。 在窗口或者视图
中
绘图
,一般都是在OnDraw或者OnPaint事件
中
,但是有时根据需要
绘图
是通过...
发帖
图形处理/算法
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
1.9w+
社区成员
5.0w+
社区内容
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
帖子事件
创建了帖子
2008-04-01 06:53
社区公告
暂无公告