在windows编程中,可以进行绘图的方法有很多种,基本上可以分为两大类,一类是直接使用windows API,另一类是利用MFC封装好的框架类。尽管两种方法在编写代码上不尽相同,但它们的解决思路是一样的,都是通过一个类似设备描述表的类进行操作,并且,在绘图前,需要先得到有关设备描述表资源,在使用后要释放设备描述表资源。好,既然如此,我们就分别讨论一下这两种方法的使用吧。
首先,是利用windows API,此方法需要使用GetDC方法得到窗口的设备描述表,得到设备描述表之后,利用windows提供的方法进行绘图,最后需要ReleaseDC方法释放设备描述表,具体操作,如下:
HDC hdc = ::GetDC(m_hWnd);
MoveToEx(hdc, m_ptOrgin.x, m_ptOrgin.y, NULL);
LineTo(hdc, point.x, point.y);
::ReleaseDC(m_hWnd, hdc);
该段函数一般放在CView子类中的某个消息响应函数里,代码中的双冒号代表使用windows API中的函数,而非MFC框架类中的成员函数,m_hWnd为窗口的句柄,是所属CView子类的数据成员,MoveToEx和LineTo函数为windows API提供的画线方法。