社区
C#
帖子详情
双缓冲与透明位图的问题
shibill
2008-06-12 08:16:06
本人正在设计一个组件,为了避免闪烁启用了双缓冲功能,同时控件设置为透明。
问题是双缓冲的原理很简单,内存中建立一个位图,在位图上绘图,绘完后用DrawImage拷贝即可,问题是位图是有背景色的,拷贝上去,控件就不透明了,各位大虾有没有解决之道。
...全文
162
2
打赏
收藏
双缓冲与透明位图的问题
本人正在设计一个组件,为了避免闪烁启用了双缓冲功能,同时控件设置为透明。 问题是双缓冲的原理很简单,内存中建立一个位图,在位图上绘图,绘完后用DrawImage拷贝即可,问题是位图是有背景色的,拷贝上去,控件就不透明了,各位大虾有没有解决之道。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liyinlei
2008-06-12
打赏
举报
回复
在winform里,双缓冲可以通过设置进行 SetStyle(
ControlStyles.UserPaint |
ControlStyles.AllPaintingInWmPaint
|ControlStyles.DoubleBuffer,
true
);
GentleCat
2008-06-12
打赏
举报
回复
可以重载控件的onpain函数里将父容器的背景画上,这样就可以"透明"了~
vc
双缓冲
方法实现
透明
位图
覆盖效果
vc环境,采用
双缓冲
方法,在缓冲区
位图
上画一个白色背景下的
位图
,利用vc自带函数TransparentBlt,然后再用该
位图
透明
覆盖已经在对话框上存在的图形。
双缓冲
显示
位图
解决刷新时的闪烁
问题
利用
双缓冲
技术显示
位图
解决图像刷新时的屏幕闪烁
问题
双缓冲
的应用
双缓冲
在VC的画图编程中很重要,可以克服闪烁等现象,同时编程更容易.
双缓冲
的关键点在于创建一个兼容性的设备描述表(CompatibleDC)及一个相对应Compatible兼容性的的CBitmap,不同的CompatibleDC如果指向同一个Compatible兼容性的的CBitmap,则其中任何一个CompatibleDC的画布内容改变都会导至其它的CompatibleDC的画布内容改变. 运用
双缓冲
更以很容易实现画图的撤销动作,可以很容易实现橡皮功能,及橡皮擦的功能。 例如撤销动作,你需要记录每次的画的线的图像,当点击撤销时,你只要将前一幅图像显示出来,同时删除当前的图象即可。而擦除操作,要有二个DC,一个保存最初的图像,一个是你自定义的画布,在自定义的画布中你可以随便怎么画,当显示时,要将原始画布显示,同时加上你自画的画布,由于自画的画布有背景色,所以要求当两幅图画叠加时,要屏蔽掉自定义画布的背景色,此时要用到一个函数ransparentBlt,函数TransparentBlt在2008中是CDC的函数,而在6.0中并没有此函数,但有一个全局API函数,不能直接用,要在project-->setting-->link-->object/library中添加Msimg32.lib库函数,这样才能编辑得过。
范例
双缓冲
之超级打酱油
范例
双缓冲
之超级打酱油 是用CImageList 和显示等方式制作动画 有FLASH的效果,很有参考意义
MFC
双缓冲
DC类
MFC自定义的
双缓冲
DC封装类,简洁易用,自己编写的,大型项目中提取
C#
111,112
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章