只改变了文本部分的颜色没有改变整个窗口的颜色
时间: 2023-12-04 14:02:23 浏览: 29
是的,您说得对。在控制台中,只能通过修改文本颜色来改变控制台窗口的颜色,无法直接改变控制台窗口的背景色。如果您需要修改控制台窗口的颜色,可以通过以下方法实现:
```c++
#include <windows.h>
int main() {
HWND hwnd = GetConsoleWindow(); // 获取控制台窗口句柄
HBRUSH hbr = CreateSolidBrush(RGB(0, 0, 255)); // 创建画刷
SetClassLongPtr(hwnd, GCLP_HBRBACKGROUND, (LONG_PTR)hbr); // 设置画刷为窗口背景
InvalidateRect(hwnd, NULL, TRUE); // 刷新窗口
MSG msg;
while (GetMessage(&msg, NULL, 0, 0)) { // 消息循环
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
```
在上面的代码中,我们使用了 `GetConsoleWindow` 函数获取了控制台窗口的句柄,然后使用 `CreateSolidBrush` 函数创建了一个实心画刷,将其作为窗口的背景画刷,并使用 `SetClassLongPtr` 函数将其设置为窗口的背景。最后,我们使用 `InvalidateRect` 函数刷新了控制台窗口,使其立即显示新的背景颜色。
需要注意的是,由于控制台窗口是由操作系统管理的,因此上述代码可能会与某些应用程序不兼容,或在某些操作系统上无法正常工作。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)