⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 04.2.2 利用mfc的cdc类实现画线功能.txt

📁 网上第一本以TXT格式的VC++深入详解孙鑫的书.全文全以TXT格式,并每一章节都分了目录,清晰易读
💻 TXT
字号:
4.2.2 利用 MFC的 CDC类实现画线功能 
MFC为我们提供一个设备描述表的封装类 CDC,该类封装了所有与绘图相关的操作。该类提供一个数据成员 m hDC,用来保存与 CDC类相关的 DC句柄。其道理与 CWnd类提供m hWnd成员变量保存与窗口相关的窗口旬柄是一样的。如例 4-10所示就是利用 MFC的 CDC类实现画线功能的代码。
例 4-10 

void CDrawView: : OnLButtonUp(UINT nFlags , CPoint point) 
/* //首先获得窗口的设备描述表 
HDC hdc; 
hdc = :: GetDC (m_hWnd) ; 

//移动到线条的起点 
MoveToEx(hdc , m-ptOrigin.x, m-ptOrigin .y , NULL) ; 
//画线 
LineTo(hdc , point.x, point.y); 
//释放设备描述表 
: : ReleaseDC(m_hWnd , hdc); 
*/ 
CDC* pDC = GetDC() ; . 
pDC一 >MoveTo(m-p tOrigin) ; 
pDC->LineTo(point); 
ReleaseDC(pDC); 

CView: : OnLButtonUp(nFlags , point); 
为了能够让读者更好地理解使用 CDC类和使用 Platform SDK函数实现画线功能的异同,笔者并未删除先前利用 SDK函数编写的画线代码,只是将其注释起来,这样可以直观地比较这两种实现方式。
从例 4-10所示的代码可以看出,利用 MFC类实现画线功能时,首先需要定义一个 CDC类型的指针,井利用 CWnd类的成员函数 GetDC获得当前窗口的设备描述表对象的指针:接着利用 CDC类的成员函数 MoveTo和 LineTo完成画线操作:最后调用 CWnd类的成员函数 ReleaseDC释放设备描述表资源。 
Build并运行 Draw程序,拖动鼠标同样可以在窗口中绘制线条。
国际z因为 CWnd类提供了成员函数 GetDC ;f:p Rele脱DC,因此先前利
用 Platfonll SDK函数实现画线功能时,这两个函数前面都加上了两个冒号,表明它们是全局 SDK函数。否则, VC I I编译器将认为它们是 CWnd类的成员函数。 
m

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -