首頁>技術>

有些事說出來顯得我不大度,但我確實不開心,如果你不懂我,那錯的都是我。。。

---- 網易雲熱評

一、新建MFC應用程式

二、在選單欄新加畫圖項

三、類嚮導新增繪圖命令,專案---類嚮導

四、顯示aiyou程式碼

void CMFC繪圖View::OnHuahua(){             //建立物件,在檢視物件裡畫       CClientDC dc(this);       dc.TextOutA(100, 100, "aiyou");//::TextOut(dc.m_hDC, 100, 100, "hello client", strlen("aiyou"));}

五、執行結果

六、新增繪圖訊息

七、畫一個矩形

void CMFC繪圖View::OnPaint(){       CPaintDC dc(this); // device context for painting                                     // TODO: 在此處新增訊息處理程式程式碼                                     // 不為繪圖訊息呼叫 CView::OnPaint()       dc.Rectangle(100, 100, 300, 300);       //::Rectangle( dc.m_hDC, 100, 100, 300, 300 );}

八、CGDIObject類講解

1、新建選單項,畫筆、畫刷、字型、點陣圖、複合圖

2、類嚮導新增相關的命令

3、程式碼如下:

void CMFC繪圖View::OnHuabi(){       CClientDC dc(this);       //建立畫筆10畫素,紅色       CPen pen(PS_SOLID, 10, RGB(255, 0, 0));       /*CPen* oldpen = dc.SelectObject(&pen);       dc.Ellipse(100, 100, 200, 200);       //銷燬畫筆       dc.SelectObject(oldpen);       pen.DeleteObject();*/       HGDIOBJ nOldPen = ::SelectObject(dc.m_hDC, pen.m_hObject);       ::Ellipse(dc.m_hDC, 100, 100, 200, 200);       ::SelectObject(dc.m_hDC, nOldPen);       ::DeleteObject(pen.m_hObject);}void CMFC繪圖View::OnHuashau(){       CClientDC dc(this);       CBrush brush(RGB(0, 255, 0));       CBrush* oldbrush = dc.SelectObject(&brush);       dc.Ellipse(100, 100, 300, 300);       dc.SelectObject(oldbrush);       brush.DeleteObject();}void CMFC繪圖View::OnZiti(){       CClientDC dc(this);       CFont font;       font.CreatePointFont(100, "宋體");       CFont* oldfont = dc.SelectObject(&font);       dc.TextOut(200, 100, "哎呦");       dc.SelectObject(oldfont);       font.DeleteObject();}

4、從資源裡新增點陣圖

首先建立一個位圖

void CMFC繪圖View::OnWeitu(){       CClientDC dc(this);       //新增資源       CBitmap bmp;       bmp.LoadBitmap(IDB_BITMAP1);       CDC memdc;       memdc.CreateCompatibleDC(&dc);       CBitmap* oldbmp = memdc.SelectObject(&bmp);       dc.BitBlt(200, 200, 48, 48, &memdc, 0, 0, SRCCOPY);       memdc.SelectObject(oldbmp);       bmp.DeleteObject();       memdc.DeleteDC();}

5、複合圖實現

void CMFC繪圖View::OnFht(){       CClientDC dc(this);       CRgn rgn1, rgn2;       rgn1.CreateEllipticRgn(100, 100, 300, 300);       rgn2.CreateEllipticRgn(200, 200, 500, 500);       //將基本圖形進行或運算       rgn1.CombineRgn(&rgn1, &rgn2, RGN_OR);       //給複合圖形填充顏色       CBrush brush2(RGB(0, 255, 0));       dc.FillRgn(&rgn1, &brush2);       //給複合圖形描繪線條       CBrush brush(RGB(255, 0, 0));       dc.FrameRgn(&rgn1, &brush, 10, 1);}

9
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • HBase運維實踐-聊聊RIT狀態、Region狀態和變遷