我创建的工程名字叫MFCApplication1
一、真实感画球
画点函数:pDC->SetPixel(i,j,RGB(0,0,0))
使用SetPixel函数进行画圆,在循环外部逐渐进行R,G,B加一,厚重感增强。将以下代码写入“工程名View.cpp”文件中,我这里写入的是“MFCApplication1View.cpp”文件。
void paintBall(int x,int y,int r, CDC *pDC)
{
double w, u,d;
int R=0, G=0, B=0;
w=r;d=w/255;
while(w>=0)
{
for(u=0;u<628;u=u+1)
{
pDC->SetPixel((int)(x+w*cos(u/100)),(int)(y+w*sin(u/100)),RGB(R,G,B));
}
R++;G++;B++;
w=w-d;
}
}
二、在 OnDraw() 函数中绘图函数
void CMFCApplication1View::OnDraw(CDC *pDC)
{
CMFCApplication1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
paintBall(200,300,200, pDC);
}
三、添加类向导
依次点击:项目---->类向导---->确定,将打开的窗口中,类名选择“C+工程名+View”,然后选择消息类型“WM_MBUTTONDOWN”,点击添加处理程序,再选择消息类型“WM_MBUTTONUP”,点击添加事件处理程序。最后点击右下角确定即可。如下图:
在OnMButtonUp()函数中添加代码:
void CMFCApplication1View::OnMButtonUp(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CClientDC dc(this); //由CDC类派生出来的
dc.MoveTo(m_StartPoint);
dc.LineTo(point);
CView::OnLButtonUp(nFlags, point);
}
在OnMButtonDown()函数中添加代码:
void CMFCApplication1View::OnMButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
m_StartPoint = point;
CView::OnMButtonDown(nFlags, point);
}
此时m_StartPoint会爆红,不要惊慌,在文件头部进行一个声明
CPoint m_lastEndPoint;
CPoint m_StartPoint;