0
所以我一直在想,當用戶按下一個按鈕ExtFloodFill
與下面的代碼ExtFloodFill套牢顏色白色
CDC* cdc = GetDlgItem(IDC_MAP_STATIC)->GetDC(); // Get the CStatic that contains the bitmap
cdc->SetDCBrushColor(COLOR_SKYBLUE); // constant for #00EEEE
SetDCBrushColor((HDC)cdc, COLOR_SKYBLUE); // Trying to change the cdc brush color
// Just for debugging, i have inspected it and the value is the same with the COLOR_SKYBLUE value
COLORREF cr = cdc->GetDCBrushColor();
cdc->ExtFloodFill(x,cdc->GetCurrentPosition().y+y, RGB(0, 0, 0), FLOODFILLBORDER);
但每次我打電話ExtFloodFill此時,floodFill將只填充的區域以編程方式重新繪製位圖與白色和根據文檔
用當前畫筆填充顯示錶面的一個區域。
我試圖用顏色skyblue更改當前的CDC筆刷顏色。但它根本不起作用。
IDC_MAP_STATIC是一個通常的CStatic對象。我沒有爲它使用子類CStatic。
那麼我在哪裏做錯了,它導致ExtFloodFill保持洪水填充我的位圖與白色不skyblue?
您可能是泄漏的設備上下文,或銷燬它,而仍然有選擇的把它你的畫筆。兩人都沒有好兆頭。另外,答案並不能解釋問題是什麼,它如何解決並不完全有幫助。 – IInspectable
你應該畫在你自己的窗口的DC上,而不是做一個看似黑客的東西。 –