点击出星

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,打开Visual Studio并创建一个新的MFC对话框应用程序项目。 接下来,向对话框中添加一个绘图区域。在资源视图中,双该对话框以打开对话框编辑器。在编辑器中,单“绘图区域”控件并将其拖放到对话框上。 然后,打开该对话框的类文件,并添加一个成员变量以保存鼠标的当前位置: ``` CPoint m_lastPoint; ``` 在类的头文件中添加以下代码以声明五角绘制函数: ``` void DrawStar(CDC* pDC, int x, int y, int r); ``` 在类的cpp文件中,实现DrawStar()函数: ``` void CMyDialog::DrawStar(CDC* pDC, int x, int y, int r) { const double PI = 3.14159265358979323846; const double alpha = PI / 5.0; CPoint pt[5]; for (int i = 0; i < 5; i++) { pt[i].x = static_cast<int>(x + r * cos(alpha * (2 * i + 1))); pt[i].y = static_cast<int>(y + r * sin(alpha * (2 * i + 1))); } pDC->Polygon(pt, 5); } ``` 最后,在响应WM_LBUTTONDOWN和WM_MOUSEMOVE消息的函数中添加以下代码: ``` void CMyDialog::OnLButtonDown(UINT nFlags, CPoint point) { // 保存鼠标的当前位置 m_lastPoint = point; CDialogEx::OnLButtonDown(nFlags, point); } void CMyDialog::OnMouseMove(UINT nFlags, CPoint point) { if (nFlags & MK_LBUTTON) { CDC* pDC = GetDlgItem(IDC_DRAW_AREA)->GetDC(); pDC->SetROP2(R2_NOTXORPEN); // 擦除上一次绘制的五角 DrawStar(pDC, m_lastPoint.x, m_lastPoint.y, 50); // 绘制当前位置的五角 DrawStar(pDC, point.x, point.y, 50); m_lastPoint = point; } CDialogEx::OnMouseMove(nFlags, point); } ``` 现在,您可以编译并运行该程序,并在绘图区域内使用鼠标拖动以绘制五角了!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值