MFC 用gdi繪制填充多邊形區域


MFC 用gdi繪制填充多邊形區域

這里的代碼是實現一個三角形的繪制,並用刷子填充顏色 在OnPaint()函數里面

運用的是給定的三角形的三個點,很多個點可以繪制多邊形

[cpp]  view plain copy
 
  1. CBrush br(RGB(40,130,170));  
  2. CRgn rgn;  
  3. CPoint arrpt[3];  
  4. arrpt[0].x = m_rcAT.right-8;  
  5. arrpt[0].y = m_rcAT.top+m_rcAT.Height()*2/5;  
  6. arrpt[1].x = arrpt[0].x - 12;  
  7. arrpt[1].y = arrpt[0].y;  
  8. arrpt[2].x = arrpt[0].x - 6;  
  9. arrpt[2].y = arrpt[0].y + 6;  
  10.   
  11. if( rgn.CreatePolygonRgn(arrpt, 3, ALTERNATE) && arrpt[0].x > 0)  
  12. {  
  13.     dc.FillRgn(&rgn, &br);  
  14.     dc.MoveTo(arrpt[0]);  
  15.     dc.LineTo(arrpt[1]);  
  16.     dc.MoveTo(arrpt[1]);  
  17.     dc.LineTo(arrpt[2]);  
  18.     dc.MoveTo(arrpt[2]);  
  19.     dc.LineTo(arrpt[0]);  
  20. }  
  21.   
  22. br.DeleteObject();  
  23. rgn.DeleteObject();  


此外可以用相關函數繪制圓角矩形區域,橢圓等等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM