Так я пытался перекрасить растрового программно когда пользователь нажал кнопку с 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 заливка будет только заполнить область белым цветом, и в соответствии с доком
Заполняет площадь поверхности дисплея с текущей кистью.
Я попытался изменить текущий цвет кисти CDC с помощью цвета skyblue. Но это совсем не работает.
IDC_MAP_STATIC - обычный объект CStatic. Я не использую подклассу CStatic для этого.
Так что же я сделал неправильно, что он заставил ExtFloodFill сохранить Flood-наполнение моего растрового изображения белым не skyblue?
Вы либо протечек контекста устройства, или уничтожить его, пока еще есть ваша кисть выбрана в него. Ни один из них не служит хорошим предзнаменованием. Кроме того, ответ, который не объясняет, в чем проблема, и как он адресован, не совсем полезен. – IInspectable
Вы должны просто нарисовать на своем собственном окне DC, вместо того, чтобы делать то, что кажется взломом. –