求教如何在对话框中设置绘图区域,使之根据对话框中的变量绘制图形(结构力学等中的剪力图,弯矩图),并且可实现可将图复制、粘帖的功能。我曾试过用绘图设备CDC等实现了直线、曲线的绘制,只是图件不可编辑,还望各位大虾不吝指教。
   还有,我用单文档可用bitmap插入的方式设置背景颜色,在对话框中能否有途径可实现,使对话框的底(灰)色变为我想要的颜色?

解决方案 »

  1.   

    改背景颜色在OnInitialUpdate()里定义m_brush.CreateSolidBrush(RGB(58,110,165)); //生成一兰色刷子
    重载OnCtlColor函数加一句return m_brush;就可以了~~!
    在对话框中设置绘图区域
    RECT rect;
    GetDlgItem(IDC_*****)->GetClientRect(&rect);获得绘图区域大小;
    CDC* pDC =GetDlgItem(IDC_*****)->GetDC();获得绘图区域DC
    然后在里面 画图就可以了~~!!!!!!
      

  2.   

    要设置绘图区域,这很简单,按钮,标签,Picture控件,文本框等简单控件用来做绘图区都很方便。
    要实现图形编辑,就不是那么简单的事情了。首先你得记录这些图形的数据,不是画上去就完了。然后判断鼠标的点击位置,与这些图形比较,看看落在那个图形上或者图形中,你就可以认为该图形是被选中的图形,移动鼠标,判断鼠标的移动方向和距离,再修改选中图形的数据,然后刷新,就可以实现图形的移动。如果要修改图形的形状,比如多边形的某个顶点,则你要判断鼠标是否点中了那个顶点,将鼠标移动到的新位置作为该点的新的位置就可以了。
    对话框画背景,简单点就是在OnPaint中获得对话框大小,然后填充一个颜色就可以了。
      

  3.   

    先用CDC获取绘图设备,设置绘图区域,
    然后在绘图区内利用其相对位置关系定点绘图
      

  4.   

    拉上一个CStatic控件,改其ID ID_COORCWnd * pWnd = GetDlgItem(ID_COOR);
    CDC * pMyDC = pWnd->GetDC();之后pMyDC,就可以和pDC一样使用画图了,
    就像OnDraw中一样!!