gpt4 book ai didi

C++绘图像素问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:23:57 26 4
gpt4 key购买 nike


如何制作窗口,或者更像是剪辑区域,我可以在其中绘制像素?它可能使用 WinApi,但是我不希望我的项目看起来像 winapi,所以它会有

int main(){}

代替

int WINAPI WinMain(HINSTANCE ...

我找到了一个示例,我可以在其中在控制台窗口中绘图

int main()
{
COLORREF color = RGB(255,0,0); // COLORREF to hold the color info

SetConsoleTitle("Pixel In Console?"); // Set text of the console so you can find the window

HWND hwnd = FindWindow(NULL, "Pixel In Console?"); // Get the HWND
HDC hdc = GetDC(hwnd); // Get the DC from that HWND

for( int i = 0 ; i < 50 ; i++ )
{
SetPixel(hdc, 5+i, 12, color); // SetPixel(HDC hdc, int x, int y, COLORREF color)
}
ReleaseDC(hwnd, hdc); // Release the DC
DeleteDC(hdc); // Delete the DC
system("pause");
return(0);
}

但我想在我选择的区域上绘制而不是控制台,它将保持焦点(当用户点击它时,等等)。

能够为这个程序处理简单的键盘/鼠标事件也很棒,但这不是我的主要目标,也许其他一些第三方库会帮助它。

我希望我已经清楚地解释了我想做什么,但英语不是我的母语,所以对于任何误解,我深表歉意。

如有任何帮助,我将不胜感激。


因为我是第一次使用这个网站,我很抱歉在错误的地方出现了一些垃圾邮件或消息,因为我不确定在哪里发布我的下一条消息:-)所以我想写的是:

"否则,Allegro/SDL 如何创建窗口?他们使用汇编程序调用还是 shell 调用?当我能够从头开始创建窗口时,无论需要多少工作,我都会更开心:)"

最佳答案

你不会喜欢这个 - 在 Windows 中,你必须创建一个窗口,然后覆盖 WM_PAINT 消息,然后在系统调用时绘制你必须绘制的内容。这是老式的做事方式,而且还不错。

一些有趣且相关的链接:

http://www.winprog.org/tutorial/bitmaps.html

http://www.codeproject.com/Articles/66250/BeginPaint-EndPaint-or-GetDC-ReleaseDC.aspx

如果你真的想避免这一切,试试popcap .那里涉及的学习曲线可能更陡峭,因此您可能真的想坚持使用 GDI 和 HWND,无论一开始看起来多么困难和困惑。

关于C++绘图像素问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4576019/

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