?? 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 + -