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,不可直接建構 CBrushCBrush::FromHandle() 包裝為 CBrush*SelectObject(pOldBrush) 還原,避免 GDI 物件洩漏橡皮筋選框、拖曳預覽框、遊戲選取區域等需僅顯示邊框不填滿內部的場合。