【问题标题】:initialize directX using HDC使用 HDC 初始化 directX
【发布时间】:2011-08-30 21:45:22
【问题描述】:

有谁知道如何使用 hdc 初始化 DirectX?问题是我想在窗口内的组件中绘制我的东西,这些东西通常只有 HDC,但 DX 获得分配给窗口的 HWND。

【问题讨论】:

  • 你现在使用什么 GUI 库?
  • sry 我正在使用 windows sdk,我正在使用 c++ 进行编码
  • 嗯?您正在编写 C++ 并使用 GDC 进行编译?
  • 我的意思是 HDC(设备上下文句柄)
  • 哦,好吧,那是非常不同,谢谢。 :)

标签: directx window gdi


【解决方案1】:

您可以使用 0 宽度和 0 高度的 CreateWindow 创建一个不可见的窗口,并使用该 hwnd 来创建设备。然后,您可以将图像渲染到纹理,从中检索原始缓冲区并将其传递给应用程序,将图像复制到窗口。您也不需要 HDC。

【讨论】:

  • 虽然我可能不会使用这个建议,但既然这是最好的,你会接受的!
【解决方案2】:

HDC 代表您的渲染设备,而HWND 代表您的窗口。

您可以使用GetDC 获得代表窗口渲染目标的HDC(完成后不要忘记ReleaseDC)。

希望有帮助吗?

【讨论】:

  • 问题与你所说的相反,在这种情况下我有 HDC,我需要一个 HWND 来传递它以进行 directX 初始化
  • @Gajet:你不能那样做。你从哪里得到HDC?您需要从同一个地方获取HWND
  • HDC 是调用 GetDC(NULL) 的结果,我可以使用 windows Windows GDI 在其上绘制,但 DirectX 不接受 NULL 作为 HWND
  • @Gajet:你应该使用GetDC(NULL)!创建一个窗口并使用它;你不应该在整个屏幕上执行 DirectX。
猜你喜欢
  • 2019-12-16
  • 1970-01-01
  • 2013-12-09
  • 2015-12-01
  • 2020-10-17
  • 1970-01-01
  • 2013-06-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多