求教如何在对话框中设置绘图区域,使之根据对话框中的变量绘制图形(结构力学等中的剪力图,弯矩图),并且可实现可将图复制、粘帖的功能。我曾试过用绘图设备CDC等实现了直线、曲线的绘制,只是图件不可编辑,还望各位大虾不吝指教。
还有,我用单文档可用bitmap插入的方式设置背景颜色,在对话框中能否有途径可实现,使对话框的底(灰)色变为我想要的颜色?
还有,我用单文档可用bitmap插入的方式设置背景颜色,在对话框中能否有途径可实现,使对话框的底(灰)色变为我想要的颜色?
解决方案 »
- 显示工具栏提示的问题 【基础】
- 还是关于闪烁,mousemove事件
- DataGrid,ADO Data和SQL2000一起使用的问题
- 小弟不才,问一个局域内如何发送单个和接收单个字符的小问题,100分相送,谢谢您!
- vc里怎么实现定时器的功能?
- 用VC 做的IP 组播程序。。出现了问题,高手请进,谢绝UP。。马上给分绝不失言
- 向高手求助!如何还原单独.mdf的mssql2000文件,或者读取其中的内容??
- 如何将拖拉的激活键从左键改成右键
- 我的VC编辑器不提示了!
- 点击CScrollView中的滚动条左移右移按钮,调用的是哪个函数
- 最简单的问题:如何得到static控件的内容,然后赋给变量var1?
- 请问,我的OnPrepareDC出了什么问题?
重载OnCtlColor函数加一句return m_brush;就可以了~~!
在对话框中设置绘图区域
RECT rect;
GetDlgItem(IDC_*****)->GetClientRect(&rect);获得绘图区域大小;
CDC* pDC =GetDlgItem(IDC_*****)->GetDC();获得绘图区域DC
然后在里面 画图就可以了~~!!!!!!
要实现图形编辑,就不是那么简单的事情了。首先你得记录这些图形的数据,不是画上去就完了。然后判断鼠标的点击位置,与这些图形比较,看看落在那个图形上或者图形中,你就可以认为该图形是被选中的图形,移动鼠标,判断鼠标的移动方向和距离,再修改选中图形的数据,然后刷新,就可以实现图形的移动。如果要修改图形的形状,比如多边形的某个顶点,则你要判断鼠标是否点中了那个顶点,将鼠标移动到的新位置作为该点的新的位置就可以了。
对话框画背景,简单点就是在OnPaint中获得对话框大小,然后填充一个颜色就可以了。
然后在绘图区内利用其相对位置关系定点绘图
CDC * pMyDC = pWnd->GetDC();之后pMyDC,就可以和pDC一样使用画图了,
就像OnDraw中一样!!