【发布时间】:2012-09-15 03:44:10
【问题描述】:
RECT rect;
HWND hwnd = GetDesktopWindow();
LockWindowUpdate(hwnd);
HDC hdc = GetDC(hwnd);
HBRUSH hbrush = CreateSolidBrush(RGB(255,0,0));
GetWindowRect(hwnd, &rect);
FillRect(hdc, &rect, hbrush);
这是我之前的尝试,什么也没做。为了清楚起见,我正在尝试将整个屏幕着色为纯色。
【问题讨论】:
-
正如克里斯在他的回答末尾提到的那样,最好的方法是创建自己的整个屏幕大小的窗口,并将其涂成绿色。这样,当你移除你的窗口时,桌面将被重新绘制成正常状态,并且其他重新绘制也不会干扰你的窗口。一般来说,您不应该在不属于您的窗口的 HDC 上绘画。但无论如何还是值得尝试一下,这样您就可以看到它有什么问题:例如,等一下,您会看到状态栏中的时钟重新绘制本身。
-
我同意。做任何事情的最佳方式是尽可能少地侵犯其他程序的隐私,并且在另一个程序有相同想法的情况下尽量避免发生冲突。
标签: c winapi background-color