【mfc/VS2022】计图实验:绘图工具设计知识笔记

绘制曲线(贝塞尔曲线):

转自:CDC 类 | Microsoft Learn

绘制一条或多条贝塞尔曲线。

BOOL PolyBezier(
    const POINT* lpPoints,
    int nCount);

参数

lpPoints
指向包含曲线端点和控制点的 POINT 数据结构数组。

nCount
指定 lpPoints 数组中的点数。 此值必须是要绘制的样条数的三倍以上,因为每个 Bzier 样条需要两个控制点和一个端点,而初始样条需要另一个起点。

返回值

如果该函数成功,则为非 0;否则为 0。

注解

此函数使用 lpPoints 参数指定的端点和控制点绘制三次方贝塞尔曲线。 使用第二和第三点作为控制点,从第一点到第四点绘制第一条曲线。 序列中的每个后续曲线都需要另外三个点:前一条曲线的终点用作起点,序列中接下来的两个点是控制点,第三个点是终点。

函数不使用或更新 PolyBezier 当前位置。 该图未填充。 此函数使用当前触笔绘制线条。

设置鼠标的相关函数

SetCursor(LoadCursor(NULL,IDC_ARROW)); //设定光标为箭头

LoadCursor第一个参数是要载入光标的程序的实例,当使用系统预定义光标的时候,要设置为空。当要使用自定义光标的时候,设置为AfxGetInstanceHandle(),使用自定义的光标。

OnSetCursor 消息

afx_msg BOOL CWnd::OnSetCursor(CWnd* pWnd,UINT nHitTest,UINT message);

参数一:当前鼠标位于哪个窗口(控件)上,可以通过pWnd->GetDlgCtrID()来判断设置鼠标形状

参数二:表示当前鼠标位于实现该函数的窗口的哪个位置(HTBORDER HTCLIENT等等,参考OnNcHitTest函数)

参数三:表示鼠标消息的值(WM_LBUTTONDOWN  WM——LBUTTONUP诸如此类)

参考链接:

OnSetCursor 及改变鼠标形状

MFC 设置光标 SetCursor(HCURSOR hCursor)用法

关于游标

 Windows 提供一组标准游标,可供任何应用程序随时使用。 SDK 头文件包含 标准游标 的标识符 - 标识符以 IDC_ 前缀开头:

【mfc/VS2022】计图实验:绘图工具设计知识笔记_第1张图片

详见: 

https://learn.microsoft.com/zh-cn/windows/win32/menurc/about-cursorsicon-default.png?t=N7T8http://xn--vrvn3n


 Visual Studio常用操作

快速操作和重构

编写类时,在头文件中创建函数声明后,可进行快速操作重构,以在cpp文件中创建函数定义。有三种方式:

  • 快捷键 Alt + Enter
  • 快捷键 Ctrl + .
  • 鼠标右键点击函数,选择“快速操作和重构

快速操作和重构有三部分内容:

  • 更改签名:可以修改函数的参数列表,完成后会自动更新函数的声明与定义
  • 创建声明/定义:如果.h与.cpp文件种没有声明或者定义,则会自动创建
  • 移动定义位置:将函数定义的代码实现移动到.h文件中或者.cpp文件

https://blog.csdn.net/zwhooo/article/details/108025560icon-default.png?t=N7T8http://xn--8nru34h

你可能感兴趣的:(计算机图形学实验/作业,mfc,c++)