vs建立mfc工程,使用CDC类绘制具有真实感的小球

本文详细描述了如何在MFCApplication1工程中实现画球效果,通过SetPixel函数创建动态圆,并在OnDraw函数中调用。同时介绍了如何添加类向导处理鼠标按下和释放事件,以及必要的变量声明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我创建的工程名字叫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;

四、效果展示

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值