【发布时间】:2015-04-22 06:38:23
【问题描述】:
我是 C++ 编程的新手,我觉得学习起来很有趣。 任何人都可以给我一个想法,在 Windows 控制台中为特定像素设置颜色,而即使 Windows 控制台被刷新或移动,颜色也会保持不变。
我在最近的代码中使用了 Setpixel()。这里有一些代码 sn-ps,假设它在函数体内:
HWND myconsole = GetConsoleWindow();
HDC dc = GetDC(myconsole);
COLORREF color = RGB(255,120,120);
for(int count =0;count<100;count++)
{
SetPixel(dc,0,count,color);
}
任何想法和意见都会有很大帮助。谢谢!
【问题讨论】:
-
您当前的代码正在更改 屏幕 上的像素,这恰好位于控制台窗口上方。这显然不是你想要的。问题是,控制台不能以像素为单位,它以字符块为单位。毕竟,它是纯文本的。研究使用
WriteConsoleOutput函数输出彩色文本(除其他外)。 -
控制台只能按角色访问,无论您对其中一个角色进行何种修改,都无法清除控制台。
-
如果你真的需要这个,试试钩子:stackoverflow.com/questions/5432551/…
-
我明白你的评论...我会试试这个!!谢谢..也许我还有一些后续问题,所以请稍等..
-
@user 你确定这还能用吗?我认为控制台窗口不会收到 WM_PAINT 消息。它不像普通的窗户。彼得,如果你想要一个可以绘制的普通窗口,那么只需创建一个并自己处理 WM_PAINT 消息。
标签: c++