MFC之在对话框里绘图



继续说说那狗血的计算机图形学实习,这次我想实现一个预览的效果,于是乎就涉及到了在对话框里面绘图,本来在view里面绘图都轻车熟路了,这次要在对话框里绘图还是头一回啊,这可是个小挑战!自己在msdn查了一下,然后加上google+百度,找出来一种方法,今晚时间有点紧,就直接放代码了,可以根据个人要求适当修改代码。

STEP 1:找到OnPaint函数

如果找不到,请自己添加,具体方法:

在类视图里找到C***View类,右击,选择属性,点击闪电样式的图标右边的图标,映射WM_Paint()函数即可。

STEP 2:在OnPaint()中添加以下代码

void CSetTing::OnPaint()

{

CPaintDC dc(this); // device context for painting

// TODO: 在此处添加消息处理程序代码

CPen pen(线型,宽度,颜色);

dc.SelectObject(&pen);

CRect rect;

GetDlgItem(IDC_STATIC_PREVIEW)->GetWindowRect(&rect);

//IDC_STATIC_PREVIEW为要绘图的静态框的ID

ScreenToClient(&rect); //将它们转化为相对于应用程序对话框的矩形

dc.MoveTo(rect.left+20,rect.top+rect.Height()/2);  //在示例框的中部画线

dc.LineTo(rect.right-20,rect.top+rect.Height()/2);

// 不为绘图消息调用CDialog::OnPaint()

}

效果如下:

ComboBox控件

你也可以根据自己的需要自己修改,以获得你想要的现实方式。

 标签: C++, 对话框绘图

作者  :  sailor

仅仅看明白了还不够,能把别人给讲明白了才算及格。


  1. xxxxxxx
    1#
    xxxxxxx

    为什么运行时提示0x00000020内存不能为读?

    March 9th, 2013 at 08:21 pm 回复


最新文章