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上,而不是做一个看似黑客的东西。 –