用GDI画线
HDC hdc;
PAINTSTRUCT ps;
HPEN hPen;
HPEN hPenOld;
hdc = BeginPaint(hWnd, &ps);
hPen = CreatePen(PS_SOLID, 3, RGB(255, 0, 0));
hPenOld = (HPEN)SelectObject(hdc, hPen);
MoveToEx(hdc, 20, 10, NULL);
LineTo(hdc, 200, 100);
SelectObject(hdc, hPenOld);
DeleteObject(hdc);
EndPaint(hWnd, &ps);
采用GDI画线,您需要2个对象:设备场景和画笔。您通过调用CreatePen获取一个句柄。紧接着,您调用SelectObject将画笔选入设备场景。然后调用MoveToEx将画笔位置设为(20,10),然后调用绘制一条直线到位置(200,100)。注意MoveToEx和LineTo均需要一个hdc作为参数。
用GDI+和C++类接口画线
HDC hdc;
PAINTSTRUCT ps;
Pen* myPen;
Graphics* myGraphics;
hdc = BeginPaint(hWnd, &ps);
myPen = new Pen(Color(255, 255, 0, 0), 3);
myGraphics = new Graphics(hdc);
myGraphics->DrawLine(myPen, 20, 10, 200, 100);
delete myGraphics;
delete myPen;
EndPaint(hWnd, &ps);
通过GDI+和C++类接口画线,您需要一个Graphics对象和一个Pen对象。注意您不需要向这些对象提供窗体句柄。相反,您只需要构造一个Graphics类(一个Graphics对象)和一个Pen类(一个Pen对象)即可。画线涉及Graphics类的Graphics::DrawLine方法。Graphics::DrawLine方法的第一个参数是一个Pen对象的指针。较之前面将Pen选入设备场景的GDI例子,这种方案更加更加简单灵活。