標籤:class blog http ext color com
在GDI裡面,你要想開始自己的繪圖工作,必須先擷取一個device context handle,然後把這個handle作為繪圖複方法的一個參數,才能完成任務。同時,device context handle是同一定的繪圖屬性綁定在一起的,諸如畫筆、話刷等等,你必須在畫線之前建立自己的畫筆,然後使用selectObject方法把這個畫筆同已經擷取的device context handle綁定,才能使用LineTo等方法開始畫線。不然,你畫出來的線使用的是預設的屬性:寬度(1),顏色(黑色)。
但是,在GDI+裡面,畫線方法DrawLine把畫筆Pen直接作為一個參數,這樣,一定的畫筆就不需要同device context handle 直接綁定了。
下面是GDI和GDI+兩者畫線代碼的示範:
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(hPen);EndPaint(hWnd, &ps);
GDI+:
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);
轉載地址:http://www.cppblog.com/dingding/archive/2008/06/27/54797.html