如何在内存DC中画 透明图,再将透明图贴到屏幕DC

xxfxiazai 2009-08-25 03:47:18
RT...
谢谢
...全文
145 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxfxiazai 2009-08-26
  • 打赏
  • 举报
回复
没有实现
大家帮我看看该怎么改,
xxfxiazai 2009-08-26
  • 打赏
  • 举报
回复
坐标解决了,我想实现移动效果.
以下是代码.
for(long i=m_recttracker.m_rect .left;i<m_recttracker .m_rect .right ;i++)
{
//dc.BitBlt (i,m_recttracker .m_rect .top ,m_recttracker .m_rect .Width() ,m_recttracker .m_rect .Height(),&memdc,0,0,SRCCOPY);
dc.TransparentBlt (i,m_recttracker .m_rect .top,m_recttracker.m_rect .Width (),m_recttracker .m_rect .Height (),&memdc,0,0,20,20,RGB(0,0,0));
::Sleep(30);
dc.SetROP2 (R2_NOT);
dc.TransparentBlt (i,m_recttracker .m_rect .top ,m_recttracker.m_rect .Width (),m_recttracker .m_rect .Height (),&memdc,0,0,20,20,RGB(0,0,0));
}
我是苦力 2009-08-26
  • 打赏
  • 举报
回复
如果使用gdi+那就很简单了.
codeyell-com 2009-08-26
  • 打赏
  • 举报
回复
http://www.vckbase.com/document/viewdoc/?id=1612
有源码
雪影 2009-08-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xxfxiazai 的回复:]
前两个参数是贴到目标DC中的坐标吧?
[/Quote]
对,获取桌面句柄就可以了,使用桌面DC作为目标DC
xxfxiazai 2009-08-26
  • 打赏
  • 举报
回复
前两个参数是贴到目标DC中的坐标吧?
xxfxiazai 2009-08-26
  • 打赏
  • 举报
回复
顶哦,很郁闷
雪影 2009-08-25
  • 打赏
  • 举报
回复
TransparentBlt最后一个参数设置透明颜色
雪影 2009-08-25
  • 打赏
  • 举报
回复
这和普通的双缓冲代码没什么区别啊.
楼主有什么困难?

使用TransparentBlt函数就可以了
liangxd09 2009-08-25
  • 打赏
  • 举报
回复
内存DC 选择透明图对象
屏幕DC 拷贝内存DC
根据原作 https://pan.quark.cn/s/8dc48dbc5192 的源码改编 在Windows操作系统环境下的图形编程领域,为了确保图形用户界面展现出的流畅性与无视觉闪烁现象,编程人员通常会运用内存设备上下文(Memory Device Context, 缩写为内存DC)以及画刷(Brush)等多种技术手段。 本文将系统性地阐述如何运用这些技术手段来达成橡皮筋效果,这是一种在用户操作界面上模拟橡皮擦功能的实现方式,用户可以通过鼠标拖拽在绘图区域中描绘出矩形或线条形状,类似于橡皮筋的拉伸与收缩动作。 现在让我们深入探讨“内存DC”的概念。 内存DC是一种在系统内存中构建的虚拟绘图平台,它使得开发者能够在非屏幕内存空间内执行图形绘制任务,而非直接在显示设备上下文中进行操作。 这样的设计能够有效防止每一次绘图动作都触发屏幕的完整刷新,进而减少视觉上的闪烁现象。 当内存DC中的图形绘制工作完成后,再将其内容整体复制到屏幕设备上下文中,这种技术称作双缓冲机制,能够大幅优化用户的视觉感受。 接下来是“画刷”的说明。 在Windows图形设备接口(GDI)的框架内,画刷主要用于对图形轮廓进行色彩填充或图案渲染。 我们可以构建一个具有透明属性的画刷,使得在内存DC上绘制的图形不会遮盖掉原有的显示内容,从而达成橡皮筋效果的视觉表现。 当用户松开鼠标按钮之后,我们再采用具有实心色彩的画刷来擦除用户选定的区域,以此模拟出橡皮擦的功能特性。 实现橡皮筋功能的技术流程大致包括以下几个环节:1. **初始化阶段**: 首先需要构建内存DC对象,该对象应与窗口的显示设备上下文保持相同的分辨率,并确保两者之间的兼容性。 同时,创建一个透明画刷资源,该画刷将用于在内存DC上进行橡皮筋的绘制操作。 2. **启...

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧