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控件
你也可以根据自己的需要自己修改,以获得你想要的现实方式。