c++ - 在 C++ 上的 Win32 控制台中绘图?

标签 c++ api winapi console

使用 C++ 在 Win 32 平台的控制台窗口中绘制内容的最佳方法是什么?

我知道您可以使用符号绘制简单的艺术作品,但有没有一种方法可以绘制更复杂的东西,例如圆圈甚至位图?

最佳答案

是的,这是可能的。

使用GetConsoleWindow 获取控制台窗口的HWND然后画进去。

#define _WIN32_WINNT 0x601
#include <windows.h>
#include <stdio.h>

int main() {
    // Get window handle to console, and device context
    HWND console_handle = GetConsoleWindow();
    HDC device_context = GetDC(console_handle);

    //Here's a 5 pixels wide RED line [from initial 0,0] to 300,300
    HPEN pen = CreatePen(PS_SOLID, 5, RGB(255, 0, 0));
    SelectObject(device_context, pen);
    LineTo(device_context, 300, 300);

    ReleaseDC(console_handle, device_context);

    getchar();

    return 0;
}

注意:GetConsoleWindow 是在 Windows 2000 中引入的。它在 _WIN32_WINNT 设置为 0x500 或更大时可用。

关于c++ - 在 C++ 上的 Win32 控制台中绘图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1937163/

相关文章:

c++ - epoll异常句柄

c++ - 有人能解释一下这段代码是如何执行的吗?

c++ - 与 MSVC++10 兼容的预处理器可变参数 FOR_EACH 宏

java - 大括号使得 for 循环只运行一次?

api - Flutter-我正在尝试根据API响应来打印文本框

c++ - 如何在 GDI+ 中使用库存对象

python - 将 URL 参数传递给嵌套序列化器

android - 未收到使用 API v3 的 Android 应用内购买结果

c++ - 如何在组合框中发送这些项目

linux - Linux pthread 中 SetThreadIdealProcessor 的替换