首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

MFC 使用透明畫刷繪製空心矩形

     編輯:關於VC++

透明畫刷取得與使用

MFC 無直接建構透明畫刷的建構子,需透過系統庫物件取得:

CClientDC dc(this);

// 從系統取得 NULL_BRUSH(空心畫刷)句柄
CBrush* pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));

// 選入 DC,保存舊畫刷
CBrush* pOldBrush = dc.SelectObject(pBrush);

// 繪製空心矩形(僅框線)
dc.Rectangle(CRect(m_ptOrigin, point));

// 還原舊畫刷
dc.SelectObject(pOldBrush);

關鍵點

  • GetStockObject(NULL_BRUSH) 回傳 HBRUSH,不可直接建構 CBrush
  • 必須用 CBrush::FromHandle() 包裝為 CBrush*
  • 繪製後務必 SelectObject(pOldBrush) 還原,避免 GDI 物件洩漏

應用場景

橡皮筋選框、拖曳預覽框、遊戲選取區域等需僅顯示邊框不填滿內部的場合。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved