1. MFC CDC與CClientDC 的textout 用法
用CDC也不會出錯,但不是自己創建一個,而是關聯到OnMouseMove()的窗口DC上。
如
void CTestDlg:OnMouseMove(UINT nFlags, CPoint point)
{
CDC* pDC=GetDC();
CString str;
str.Format("%d %d",point.x,point.y);
pDC->TextOut(100,0,str);
ReleaseDC(pDC);
}
可能還會存在的問題:
在OnMouseMove中繪制,可能會導致閃爍。
pDC->TextOut(100,0,str);中的(100,0)這個坐標要在你這個窗口的可繪制區域內(超出部分會被裁減掉)。可以用pDC->SelectClipRgn(...)函數或SelectClipPath(...)函數設置這個區域。
2. MFC,怎麼在自己定義的類里使用CDC類
VOID Draw( CWnd *pWnd, TYPF typf )
{
CClientDC dc(pWnd);
switch( typf.DrawType )
{
case ...//這里判斷是畫什麼,我個人覺得你參數應該是個結構,其中包含需要繪制的類型,坐標和顏色等信息,利用CDC來繪圖就可以了
}
}
3. MFC中關於CDC和FillRgn();
不是因為你使用對象(而不是指針)的原因出錯。
而是因為,你的cd根本沒有創建,只是聲明了,沒有產生實際的設備關聯DC,這時候在cd上的物理操作都會報錯。
你在使用之前,用任何一種方法創建或者獲取了dc,都可以,比如:
cd.CreateCompatiableDC(p);
4. MFC中數據類型轉換,一個CDC類型的變數如何復制給一個CDC*類型的變數
這樣又何必呢,直接操作pDC不更省事?或者再定義一個CDC類型的指針。
CDC *pPRINT = pDC;
如果要內存繪圖,可以CreateCompatibleDC
ctrl+f,選定文本批量查找替換即可(pPrint.用pDC->代替)。
5. MFC里CDC的一個問題
CDC
*pMyDC
=
GetDC();是獲得當前窗口客戶區的DC,由系統來管理,你只需要使用。你說的局部變數應該是pMyDC這個指針,它是局部的,就像你
int
a;一樣,a也是局部,會自動銷毀。
CDC
*pAnotherDC
=
new
CDC;是你自己構造的DC對象,常用來做內存dc,你首先應該創建它,然後才能使用,當然,用完了要刪除;可以參考MSDN的CDC類和CreateCompatibleDC函數。
6. MFC中,怎樣用CDC類畫彩色線條
CPen pen(PS_SOLID, 1, RGB(255, 0, 0)); //紅色畫筆
CClientDC dc(this); //如果View類,直接OnDraw裡面使用pDC
CPen* pOldPen=dc.SelectObject(&pen);//保存原始的CPen,即黑色的CPen
dc.MoveTo(m_ptBegin);
dc.LineTo(point); //畫出紅色線
dc.SelectObject(pOldPen);//恢復原始的CPen
7. 求C++ MFC用CDC繪圖的示例代碼
自己寫一個吧,主要是用到的是CDC中的,moveto,lineto,還有滑鼠捕捉等。。。
8. 怎樣才能使用MFC中的CDC類
將TextOut(P,0,0,L"ABC",3);
修改為P->TextOut(0,
0,
L"ABC",
3);
就可以了..
這個函數是CDC類的一個成員函數,直接調用.
9. 學習MFC的CDC類
將TextOut(P,0,0,L"ABC",3); 修改為P->TextOut(0, 0, L"ABC", 3); 就可以了.. 這個函數是CDC類的一個成員函數,直接調用.
10. MFC中的CDC是什麼
Windows使用與設備無關的圖形設備環境(DC :Device Context) 進行顯示 。MFC基礎類庫定義了設備環境對象類----CDC類。
CDC與CGdiObject的關系
說道CDC類就不能不提一下GdiObject---圖形對象類。 在Windows應用程序中,設備環境與圖形對象共同工作,協同完成繪圖顯示工作。就像畫家繪畫一樣,設備環境好比是畫家的畫布,圖形對象好比是畫家的畫筆。用畫筆在畫布上繪畫,不同的畫筆將畫出不同的畫來。選擇合適的圖形對象和繪圖對象,才能按照要求完成繪圖任務。
有關CDC類的繼承
父類:從 CObject 直接繼承而來。繼承了CObject類的各種特性,如動態創建等等。
子類:CClientDC-------代表操作窗口的DC ,是比較常用的一個子類
CMetaFileDC ------響應Meta File的DC ,Meta File是一些GDI消息。
CPaintDC-------響應WM_PAINT消息的DC。
CWindowDC ------代表整個屏幕的DC
CDC類的數據成員
數據成員只有兩個:
HDC m_hDC : CDC對象使用的輸出設備上下文
HDC m_hAttribDC : CDC對象使用的屬性設備上下文
二者在CDC對象創建時指向相同的設備上下文。