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()
}
效果如下:
你也可以根据自己的需要自己修改,以获得你想要的现实方式。