请大家帮我设计个自动绘图的方案

mxxslh 2009-06-10 05:33:46
请大家帮我设计个自动绘图的方案:
我学VC才刚刚起步,最近有一个小工程请大家帮我想个方案;
要求在VIEW自动生成一个铁路线路图(根据线路信息.xls),数据表格已经放在CStringArray的数组中了;
1、设置背景颜色为灰色,作图区域为黑底白色线路图;
2、因为绘制的图形有固定的宽度,长度过长时可用左右拖动显示;
3、可以像很多绘图软件一样,增大或者减小显示的图形;
4、可以将动态绘制的图形以BMP格式保存。
...全文
41 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mxxslh 2009-06-11
  • 打赏
  • 举报
回复
多谢各位,这点信息对我有很大帮助!
fengrx 2009-06-10
  • 打赏
  • 举报
回复
楼主所有的需求通过GDI都是可以实现的。
基本的GDI操作,找点资料学习下吧。
fengrx 2009-06-10
  • 打赏
  • 举报
回复
neohope 2009-06-10
  • 打赏
  • 举报
回复
呵呵,除了上面的,将你的绘图内容都存为对象,然后维护一个对象的链表
这样,你可以前进,后退,及重头演示绘图内容,还可以保存,呵呵
tkminigame 2009-06-10
  • 打赏
  • 举报
回复
首先,在程序初始部分
1.先获得窗口客户图形区设备HDC hdc = ::GetDC(hWnd);

2.利用HDC bdc = ::CreateCompatibleGC(hdc)获得绘图区域的缓存区设备。

3.计算整个图形需要多大长,宽,再生成相应的ddb位图HBITMAP hbmbuff = ::CreateCompatibleBitmap(hdc,宽度,长度);

4.将两者绑定::SelectObject(bdc,hbmbuff);

5.用gdi方法在bdc上绘图。


画好后在WM_PAINT或者draw()方法里面用Bitblt方法将bdc往hdc拷贝,要放大缩小就用StretchBlt,参数设置随意。窗口大小滚动条设置都是很基本的,应该不难,保存成bmp文件主要就是将hbmbuff的内容转成DIB往磁盘上写,代码网上都有。

19,464

社区成员

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

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