gpt4 book ai didi

c++ - 如何在 Windows 控制台中为特定像素着色

转载 作者:行者123 更新时间:2023-11-28 06:18:24 27 4
gpt4 key购买 nike

我是 c++ 编程的新手,我觉得学习它很有趣也很有趣。谁能给我一个在 Windows 控制台中为特定像素设置颜色的想法,而即使刷新或移动 Windows 控制台,颜色也会保持不变。

我在最近的代码中使用了 Setpixel()。这里有一些代码片段,假设它在函数体内:

    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);
}

任何想法和意见都会有很大的帮助。谢谢!

最佳答案

要么您的问题不清楚,要么您后来改变主意并决定要在 Win32 窗口而不是 Win32 控制台窗口上绘图。无论如何,这两个问题都有答案。

  1. 绘制到 Win32 窗口(不是控制台)

您可以通过多种方式绘制到 Win32 项目(包括图形 API,如 OpenGL 和 DirectX)。最简单的方法是使用 Windows GDI(图形设备接口(interface)),它只是一些函数,是 Windows.h 的一部分。

SetPixel() 将绘制到您为其提供句柄(第一个参数)的任何设备上下文。如果你想在窗口上绘图,这个句柄必须是你主窗口的设备上下文(你也可以给它一个离屏表面的句柄,比如后台缓冲区)。

因此,要获取主窗口设备上下文的句柄,请使用:GetDC(hWnd) 其中 hWnd 是主窗口的句柄。返回的设备上下文句柄可以在 SetPixel() 中用于绘制到窗口。

HDC _hWindowDC = GetDC(_hWnd);
SetPixel(_hWindowDC, _iXpos, _iYpos, _myColorRef);

如果你想像你正在尝试的那样绘制到设备上下文,你需要创建一个 Win32 项目,而不是 Win32 控制台项目。

  1. 绘制到 Win32 控制台项目

如评论中所述,对于控制台项目,您只能“绘制”字符,而不能“绘制”像素。例如,您可以选择一个屏幕坐标并像这样算出一些字符:

COORD point; 

point.X = _iX;
point.Y = _iY;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), point);
cout << "Whatever";

关于c++ - 如何在 Windows 控制台中为特定像素着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29789612/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com