社区
界面
帖子详情
一个MFC绘制图形的问题
bird1982
2005-08-04 02:25:04
在一个对话框窗体中放一个PICTURE控件,ONPAINT事件里给控件着了色,现在在空间上面用PEN绘图,绘制出的图形一切屏或者一碰屏幕就没了,这个问题该怎么处理阿?最好不要告诉我重画,实时显示,重画会很麻烦
...全文
517
33
打赏
收藏
一个MFC绘制图形的问题
在一个对话框窗体中放一个PICTURE控件,ONPAINT事件里给控件着了色,现在在空间上面用PEN绘图,绘制出的图形一切屏或者一碰屏幕就没了,这个问题该怎么处理阿?最好不要告诉我重画,实时显示,重画会很麻烦
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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)
mfc
绘制
任意
图形
,实现
图形
按比例缩小放大
总之,
MFC
绘图和
图形
缩放是
一个
涉及多个层面的
问题
,包括
图形
绘制
、位图操作以及用户交互处理。通过理解和运用这些概念,我们可以创建出功能丰富的
图形
用户界面,满足用户对
图形
编辑和查看的需求。
基于
MFC
的简单
图形
绘制
系统
在实现简单
图形
绘制
系统时,我们首先需要创建
一个
MFC
项目,然后使用CDC类和CPen类来实现基本的
图形
绘制
功能。下面是
一个
简单的示例代码: ```cpp #include class CMyView : public CView { public: void OnDraw...
MFC
动态
绘制
直线
动态
绘制
可以实现在屏幕上实时
绘制
图形
,并且可以响应用户的交互操作。
MFC
动态
绘制
直线技术是基于
MFC
库的
绘制
技术,提供了许多类和函数来实现
图形
绘制
,可以广泛应用于 CAD 设计、地图
绘制
、
图形
编辑等领域。
MFC
鼠标按下释放移动
绘制
图形
及键盘操作
这是
MFC
鼠标按下释放移动
绘制
图形
及键盘操作,通过这些事件让学生实现
一个
类似画图的简单软件,同时充分发挥学生想象,自己创作东西。 鼠标操作可以
绘制
图形
按键操作WASD方向进行
绘制
椭圆
MFC
使用VC++ 6.0进行编写...
MFC
图形
绘制
编程教程
MFC
图形
绘制
编程教程 不记得是在哪里下载得了,拿出来共享
界面
15,980
社区成员
115,867
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章