1. 程式人生 > >MFC中CDC畫線總結

MFC中CDC畫線總結

MFC畫線需要起點座標和終點座標,利用通過MoveTo函式和的LineTo函式來連線起點和終點形成線.MFC提供了一個繪圖的封裝類CDC,CDC類的派生類如下圖所示,所以MFC的畫線就有5種:CDC,CDlinetDC,CMeatFileDC(未驗證),CPaintDC,CWindowDC本文對上述四種方法進行演示。

 畫圖就是得到當前畫圖視窗的裝置描述表,一般使用的GetDC()函式獲得;然後將其與CDC裝置描述表相關聯。

m_ptOrigin畫線起點,點畫線終點。

1.CDC 

    CDC * pDC = GetDC();     了pdc->通過MoveTo(m_ptOrigin);

    了pdc->的LineTo(點);     ReleaseDC(PDC);

2. CClientDC是CDC的派生類,在建構函式時呼叫DetDC,在分構時呼叫ReleaseDC,所以在使用時不需要顯示的呼叫GetDC函式.CClientDC     dc(this);     dc.MoveTo(m_ptOrigin);     dc.LineTo(點);

3.一個CPaintDC物件只在響應一個WM_PAINT訊息的時候被使用,通常是在你的OnPaint訊息處理成員函式中。

void CDrawView :: OnPaint(){     CPaintDC dc(this);

//繪製    dc.MoveTo(10,10)的裝置上下文;     dc.LineTo(500500); }

也可以定義將繪製(DC)函式,並把繪製函式寫在Opaint函式裡,在繪製利用寫繪圖函式。

4.CWindowDC是CDC的派生類,在建構函式時呼叫DetDC,在分構時呼叫ReleaseDC,所以在使用時不需要顯式的呼叫GetDC函式。

    CWindowDC dc(GetDesktopWindow());     dc.MoveTo(m_ptOrigin);     dc.LineTo(點);

5.可以利用SDK函式來畫圖。

    HDC hdc;     hdc = :: GetDC(m_hWnd);

// SDK函式    MoveToEx(HDC,m_ptOrigin.x,m_ptOrigin.y,NULL);     的LineTo(HDC,point.x,point.y);     :: ReleaseDC(m_hWnd,HDC);

CDC 是MFC的DC的一個類,HDC是DC的控制代碼 API中的一個類似指標的資料型別.CDC等裝置上下文類,含有都類一個的成員變數:m_hDc,用來儲存與該類相關的控制代碼。其道理與CWnd的類提供m_Wnd成員變數儲存與視窗相關的控制代碼。通過SDK函式的GetDC(m_hWnd)得到當前裝置控制代碼。