📄 04.2.1 利用sdk全局函数实现画线功能.txt
字号:
4.2.1 利用 SDK全局函数实现画线功能
例4-9是利用PlatfortnSDK函数实现画线功能的代码。例4-9
void CDrawView: : OnLButtonUp(UINT nFlags , CPoint point)
{
11首先获得窗口的设备描述表
HDC hdc ;
hdc = : : GetDC (m_hWnd) ;
11移动到线条的起点
MoveToEx(hdc , m-ptOrigin .x, m-ptOrigin.y , NULL} ;
11画线
LineTo(hdc , point . x , point .y};
11释放设备描述表
: : ReleaseDC (m_hWnd, hdc) ;
CView: :OnLButtonUp(nFlags , pointl;
在第 1章中,我们己介绍过,为了进行绘图操作,必须藐得一个设备描述表 CDC)。因此,例4-9所示代码首先定义一个HDC类型的变量: hdc,接着调用全局函数GetDC获得当前窗口的设备描述表。在第3章中己经讲述过, CWnd类有一个成员变量Cm_hWnd)' 用于保存窗口句柄,而CDrawView类派生于CWnd类,因此该类也有这样的一个成员变量,这里的GetDC函数可以直接把这个成员变量作为参数来使用。
接下来进行画线操作,首先调用MoveToEx函数将当前位置移动到需绘制的线条的起点处。该函数有四个参数,其中第一个参数是设备描述表的句柄:第二个和第三个参数分别是新位置处的X坐标和 Y坐标:第四个参数是指向 POINT结构体的指针,用于保存移动操作前鼠标的位置坐标,在本例中不需要这个坐标值,将此参数设置为NULL。
接着调用LineTo函数绘制一条到指定点的线。该函数有三个参数,其中第一个参数是设备描述表的句柄,第二个和第三个参数分别是线条终点的X坐标和Y坐标。在前面已经讲述过,在绘图操作结束后,一定要释放设备描述表资源。因此,代码的最后调用ReleaseDC函数来完成这一功能。 Build并运行 Draw程序,拖动鼠标就可以在窗口中绘制线条了。程序运行结果如图
图 4.11在程序视类窗口中画线
" ‘ I 115
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -