//*******************************************************
//捕捉鼠标左键按下消息,获得两个起始控制点的坐标
//*******************************************************
void CDrawCurvesView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
oldPoint = point;
newPoint = point;
CurveCtrlPoints[count++] = point;
SetCapture();
isLButtonDown = true;
CRect rect;
GetClientRect(&rect);
ClientToScreen(&rect); //用用户区坐标重新计算屏幕坐标
ClipCursor(&rect); //限制光标在用户区内
//默认处理,调用基类消息处理函数
CView::OnLButtonDown(nFlags, point);
}
//******************************************
//按下键盘清除客户区的内容,为下次绘制作准备
//******************************************
void CDrawCurvesView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message
MFC下实现图形学之Hermite、Bezier曲线的绘制
最新推荐文章于 2024-04-01 00:00:00 发布
本文介绍了如何在MFC环境下实现Hermite和Bezier曲线的绘制。通过捕捉鼠标事件获取控制点,利用矩阵乘法计算曲线坐标,并根据用户在菜单中的选择绘制不同类型的曲线。当鼠标左键按下时,记录起点并限制光标移动;键盘按下清空画布;鼠标移动时显示临时连线;左键释放后根据选择绘制曲线。
摘要由CSDN通过智能技术生成