c - 如何开始编写图形 Windows 程序?

标签 c wpf windows winapi user-interface

<分区>

经过几分钟的搜索,我了解到 Win32 API 是编写图形 Windows 程序的最低级方法。这是真的?有没有办法直接将东西绘制到视频缓冲区?演示编码员如何编写演示?

反正我懂一点C,这似乎是编写Win32程序的首选方式,我有兴趣坚持使用最低级和最灵活的方式来编写Windows程序。

我从 Microsoft 自己那里听说过许多不同的框架,.NET、Windows Forms、WPF、MFC、WTL、CLR、ATL。 (有人可以澄清其中哪些实际上取决于另一个吗?)

当然还有跨平台工具包,WxWidgets、GTK、Qt、Mono、tk等。

如果我只想用 OpenGL 编写整个界面怎么办? 真的一切都取决于 Win32 API 吗? 我是否必须编写一些使用 Win32 API 调用的代码来至少创建一个供 OpenGL 使用的窗口?

最佳答案

你基本上在一个问题中问了很多问题,我不确定你想要什么。但是,我会尽力做出合理的假设并简要回答您的所有问题。

Win32 API 不仅是图形程序的最低级 API,而且是任何窗口程序的 API。最接近内核,但是没必要写进去。

我假设您想要制作一个图形精美的应用程序。

Win32 API 有一个称为 GDI 的组件,即图形设备接口(interface),您可以使用它与图形缓冲区进行交互,但它的速度非常慢。那么您就可以使用 OpenGL 或 DirectX。 MFC 也早于 .NET,您可以使用它来创建标准的 Windows GUI 程序。然后是 .NET,速度更慢但设计更好一些。

是的,有很多跨平台选项,正如您提到的,您也可以使用它们,但这一切都取决于您尝试做什么。

现在如果你想写一个纯图形应用程序,比如游戏或带有 Shiny 图形的花哨演示,你真的不应该关心 Win32、MFC、.NET 等,因为当你想创建这样的应用程序时,你只需要使用 bare最少的 Win32 来创建骨架窗口,然后您的 OpenGL 或 DirectX 接管控制。 但是,当然,如果它是一个窗口应用程序,它肯定会在下面的某个地方使用 Win32 API,不过你不必关心它:)

关于c - 如何开始编写图形 Windows 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7156405/

相关文章:

c - 倒回文件指针

c - fork() 执行不同的进程

c - 如何从命令行使所有(数据)缓存失效?

c# - 异步 MVVM - 如何更改 NotifyTaskCompletion.Result

c++ - 编译器警告使 int8_t 的复合赋值提升为 int 感到困惑

c# - 如何将多个ViewModel嵌套在顶级ViewModel中,并以一种可以分散在整个View中的层次结构进行嵌套?

c# - 如何检查 WPF TextBox TextChange 事件中添加文本的长度?

c# - 将信息传回控制台应用程序窗口的批处理

windows - Windows 上的安全命名共享内存,因此只有特定进程可以打开

c++ - 检索要通过网络发送的 ID3D11Texture2D 数据