社区
界面
帖子详情
一个MFC绘制图形的问题
bird1982
2005-08-04 02:25:04
在一个对话框窗体中放一个PICTURE控件,ONPAINT事件里给控件着了色,现在在空间上面用PEN绘图,绘制出的图形一切屏或者一碰屏幕就没了,这个问题该怎么处理阿?最好不要告诉我重画,实时显示,重画会很麻烦
...全文
616
33
打赏
收藏
一个MFC绘制图形的问题
在一个对话框窗体中放一个PICTURE控件,ONPAINT事件里给控件着了色,现在在空间上面用PEN绘图,绘制出的图形一切屏或者一碰屏幕就没了,这个问题该怎么处理阿?最好不要告诉我重画,实时显示,重画会很麻烦
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
33 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bird1982
2005-08-05
打赏
举报
回复
是不是我可以把所有的东西都画到一个MEMDC里去?
future-coming
2005-08-05
打赏
举报
回复
用memDC;
全黑的很正常,自己画一个想要的背景色。
bird1982
2005-08-05
打赏
举报
回复
搞明白了,那个,有个问题,我要换工具,即SelectObject是用pDC还是用memDC换?
另外就是,我的程序中出了个比较麻烦的事情,因为我的背景色是用pDC画的,现在要用BitBlt处理的话,马上就挂掉了,背景改全黑的了~~~~~-_-!真不知道该怎么办了~~~
future-coming
2005-08-05
打赏
举报
回复
http://www.vckbase.com/code/downcode.asp?id=2360,下下来看看
bird1982
2005-08-05
打赏
举报
回复
为啥我用就是不好使呢?
我整半天了,没啥错误为啥我就看不到图呢?
future-coming
2005-08-05
打赏
举报
回复
定义 CDC *pDC;
CDC MemDC;
CBitmap MemBitmap;
初始化里面
pDC = m_ctrlWave.GetDC();
MemDC.CreateCompatibleDC(pDC);
MemBitmap.CreateCompatibleBitmap(pDC,1024,768);
CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);
MemDC.FillSolidRect(0,0,1024,768,RGB(255,255,255));
弄个按钮触发画图事件
MemDC.MoveTo(0,0);
MemDC.LineTo(100,100);
pDC->BitBlt(0,0,1024,768,&MemDC,0,0,SRCCOPY);
我是用一个PictureBOX作绘图区域
bird1982
2005-08-05
打赏
举报
回复
定义 CDC *pDC;
CDC MemDC;
CBitmap MemBitmap;
初始化里面
pDC = m_ctrlWave.GetDC();
MemDC.CreateCompatibleDC(NULL);
MemBitmap.CreateCompatibleBitmap(pDC,0,0);
CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);
MemDC.FillSolidRect(0,0,100,100,RGB(255,255,255));
弄个按钮触发画图事件
MemDC.MoveTo(0,0);
MemDC.LineTo(100,100);
pDC->BitBlt(0,0,100,100,&MemDC,0,0,SRCCOPY);
我是用一个PictureBOX作绘图区域
bird1982
2005-08-05
打赏
举报
回复
偶的邮箱 163superstar@163.com
哪位高人做个最基本的让偶瞧瞧,偶这里把代码都添加了,可还是没看出效果来
future-coming
2005-08-05
打赏
举报
回复
你把你的代码贴出来,让大家看看
bird1982
2005-08-05
打赏
举报
回复
谁做个简单点的例子,就是ONINITDIALOG()里初始化,弄个BUTTON事件画出个图来就成,我按上面的方法做,什么地方都不报错,就是出不来图形。
future-coming
2005-08-05
打赏
举报
回复
好用,楼主的代码可能不很完善
bird1982
2005-08-05
打赏
举报
回复
各位,明白的大虾,帮帮忙,YanDong_8212(谢科)的方法我用了,就是不好用,怎么也画不出来
future-coming
2005-08-05
打赏
举报
回复
关于这个问题:
hyamw(林锋)你的意思我明白了,但是有个比较大的问题,我每次画的是图形中的一段,就是来一段数据我计算一段,然后调用画图函数画一段,这样的话我m_MemDC里备份的总是我最后一次画的一段图形,等重画时就只重画最后一段了
这还不好解决,把以前的数据存到文档中,像队列一样先进先出,周而复始,这样便可以了;而且这样,你就可以不用创建一个CDC拷贝了(其实这个也不难嘛),而且这些数据你还可以经过处理后输出到文件或数据库中,以供历史数据显示或趋势显示。
利用内存画图然后复制到屏幕上,可以有效地解决闪烁问题。
hyamw
2005-08-05
打赏
举报
回复
那你每次画新图象的时候不清除m_MemDC里的内容。这样,上次的图像还会保存在MemDC里面
bird1982
2005-08-05
打赏
举报
回复
有个问题,YanDong_8212(谢科)帖子中的pDC是不是就是那个memDC?
bird1982
2005-08-05
打赏
举报
回复
becool3000(蓝色冰点),我下面的帖子里有解释,在那里面画不了,我不能调用ONPAINT()画图形,因为里面有计算处理过程,在ONPAINT()里处理有时会出错。
bird1982
2005-08-05
打赏
举报
回复
hyamw(林锋)你的意思我明白了,但是有个比较大的问题,我每次画的是图形中的一段,就是来一段数据我计算一段,然后调用画图函数画一段,这样的话我m_MemDC里备份的总是我最后一次画的一段图形,等重画时就只重画最后一段了
becool3000
2005-08-05
打赏
举报
回复
这个问题一直有啊
在OnPaint()里面画就可以了
hyamw
2005-08-05
打赏
举报
回复
为啥不在OnPaint()里面画?
如果你要用YanDong_8212(谢科) 的方法,你应该添加一个类成员:
CDC m_MemDC;
在OnInitDialog()的时候,对m_MemDC初始化。
每次绘制新的图像的时候,先对m_MemDC作图,然后复制到屏幕上。(要记得清除上次的图像)
在OnPaint()里面添加:把m_MemDC的内容复制到屏幕上
sun1126
2005-08-05
打赏
举报
回复
在onpaint函数里实现绘图操作,当需要实时刷新时发消息SendMessage(WM_PAINT)
程序会自动调用OnPaint函数重绘
加载更多回复(13)
Visual C++
MFC
的
图形
绘制
——常见
问题
汇总
Visual C++
MFC
的
图形
绘制
——常见
问题
汇总 目录 一.常见
问题
1. 菜单界面制作 2.命令响应函数 3.添加私有变量 4.消息响应函数 二.后记 三.补充代码 一.常见
问题
1. 菜单界面制作 题目描述:新建
一个
单文档类型的
MFC
AppWizard (exe)工程,工程取名为:Graphic。为此程序添加
一个
子菜单,...
图形
绘制
刷新闪烁
问题
今天下午,在开发
一个
图形
绘制
程序,将Matlab中
绘制
好的
图形
加入到
mfc
程序中时,出现
图形
绘制
闪烁
问题
。试过几种办法:1、将背景设置为与
图形
绘制
部分相同;2、强制刷新;3、双通道缓冲。以上这三种办法都不能很好的解决,后来
一个
同事说起,可以试试在窗口背景擦除WM_ERASEBKGND这个消息的实现中,直接返回true。后来,一试,果然很好的解决了这个
问题
。多谢同事啊,嘿嘿。记录下,以便以后查阅。
OpenGL与
MFC
编程思想
from http://hi.baidu.com/xdwu/blog/item/a7f466dfcb385c1b4954038a.html 花了两天时间终于把
MFC
与OpenGL的相关技术学会了,现在可以方便的
绘制
三维
图形
了,小结一下。 一、资料的选取 网上的资料多如牛毛,但精华较少,错误百出,误人子弟。经过精心挑选选择以下几项足以。 1、 MSDN上的CUBE示例:说
MFC
双缓冲
在使用
MFC
进行
图形
绘制
时,如果是频繁的刷新
绘制
会导致屏幕出现明显的闪烁,这是因为
绘制
时的刷新其实是不断地在进行新帧与旧帧的覆盖工作,我们一般使用的是屏幕DC来进行直接
绘制
,其速度是比较慢的,double-buffering(双缓冲技术)主要用于解决这种因单缓冲擦除图像时所带来的屏幕闪烁
问题
,它使用内存dc,先将待
绘制
的像素以位图(bmp)的形式存在内存里,再将位图
绘制
于屏幕上,其速度要快很多,可...
MFC
图形
绘制
——
绘制
直尺和坐标系
MFC
图形
绘制
——
绘制
直尺和坐标系 一、实验目的 1.掌握建立
MFC
应用程序的方法; 2.掌握映射模式。 二、实验内容 1.在
MFC
中
绘制
直尺,直尺需要有刻度,类似于日常学生使用的透明塑料直尺,需要建立四个直尺,分别分布在屏幕客户区的上、下、左、右四个边界。尺子需要有刻度,那客户区上端的尺子距...
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章