在内存dc上划线的问题

TaiJi1985 2006-02-19 10:55:57
在内存dc上划出线,然后向dc上拷贝
发现看不到效果

CDC* dc=GetDC();

CDC memDC;
memDC.CreateCompatibleDC(dc);
memDC.MoveTo(0,0);
memDC.LineTo(100,100);

dc->BitBlt(0,0,200,200,&memDC,0,0,SRCCOPY);
memDC.DeleteDC();
...全文
187 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜牛 2006-02-20
  • 打赏
  • 举报
回复
默认画笔颜色是黑色,默认内存DC中的是黑白位图,黑色背景。
TaiJi1985 2006-02-20
  • 打赏
  • 举报
回复
谢谢,我试一试
TaiJi1985 2006-02-20
  • 打赏
  • 举报
回复
显示 贴子回复次数大于跟给分次数
给不了分阿
TaiJi1985 2006-02-20
  • 打赏
  • 举报
回复
wlwlxj(wlwlxj) 的回复,我试过了,是正确的。
我创建了一个空白位图,然后,选入memDC
最后,画图成功。

回wangyu_2004520(不适用武力)
这种在内存中画图,然后拷贝到窗口dc上的方法,
是防止刷新闪动的一般方法。
写2d游戏的都这么写。

谢谢各位的帮忙,给分

teli_eurydice 2006-02-20
  • 打赏
  • 举报
回复
http://www.codeguru.com/Cpp/misc/misc/flickerfreedrawing/article.php/c389/

用这个算了
bobob 2006-02-20
  • 打赏
  • 举报
回复
http://blog.csdn.net/bobob/archive/2005/12/29/565188.aspx
teli_eurydice 2006-02-20
  • 打赏
  • 举报
回复
没看明白
wangyu_2004520 2006-02-20
  • 打赏
  • 举报
回复
楼主的要求有点奇怪
CDC memDC;
memDC.CreateCompatibleDC(dc);
创建了内存的DC
但是没有将其选到设备的dc里面去

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

15,977

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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