Win32開發入門(10) 繪圖(C)

來源:互聯網
上載者:User

今天我們來欣賞一下用於填充圖形的函數,當然我不會逐個去介紹,因為我們參考MSDN直接套參數 就可以了。

SetDCBrushColor函數有必要扯一下,它的聲明如下:

COLORREF SetDCBrushColor(       __in  HDC hdc,       __in  COLORREF crColor     );

第二個參數,通過RGB宏產生COLORREF傳進去就可以了,比如這樣:

SetDCBrushColor(ps.hdc,RGB(211,254,41));

但是,如果只是調用這個函數,你會發現 在繪圖的時候,畫刷的顏色還是沒有變化,因為我們還沒有將HBRUSH的預設畫刷DC_BRUSH選到DC中去。 所以,在調用SetDCBrushColor之前,要把預設的畫刷先放到裝置上下文,預設畫刷可以通過 GetStockObject(DC_BRUSH)獲得。

SelectObject(ps.hdc,GetStockObject(DC_BRUSH));

接下來我們可以嘗試填充幾個圖形試試,如矩形、橢圓、餅圖等。

case WM_PAINT:         {             BeginPaint(hwnd,&ps);             SelectObject(ps.hdc,GetStockObject(DC_BRUSH));             SetDCBrushColor(ps.hdc,RGB(0,0,255));             Rectangle(ps.hdc,20,18,68,50);             SetDCBrushColor(ps.hdc,RGB(220,32,70));             Rectangle(ps.hdc,125,100,230,300);             SetDCBrushColor(ps.hdc,RGB(30,235,12));             Ellipse(ps.hdc,270,80,390,223);             SetDCBrushColor(ps.hdc,RGB(35,160,242));             Chord(ps.hdc,185,260,420,480,190,260,405,479);             SetDCBrushColor(ps.hdc,RGB(211,254,41));             Pie(ps.hdc,35,320,300,600,56,470,60,360);             EndPaint(hwnd,&ps);         }         return 0;

每一次調用SetDCBrushColor都會改變畫刷的顏色,所以,比如你希望繪製藍 色的矩形,在調用Rectangle之前就要調用SetDCBrushColor修改畫刷顏色,然後再畫矩形。我們可以看 看上面代碼的最終效果。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.