c# - C++ C# 包装器相关。如何从 C# 窗口获取 hwnd 并将其传递给 C++?

标签 c# c++ wpf game-engine directx-11

我现在正在开发游戏引擎。我打算使用 WPF 作为我的关卡编辑器 UI。

我将像下面的视频教程一样包装基本引擎功能。

https://www.youtube.com/watch?v=cqsj__ZVm-c

或使用 swig

http://www.swig.org/

我想知道,如何将窗口处理程序从 WPF 传递到非托管 C++?我正在使用 DirectX11。

类似于: 图形系统类 { .... void Initialize(hwnd 窗口);

“绘制实现”

void Initialize(hwnd window)
{
    // Create the Direct3D object.
    m_D3D = new D3DClass;

    // Initialize the Direct3D object.
    result = m_D3D->Initialize(screenWidth, screenHeight, VSYNC_ENABLED, hwnd,                   
                               FULL_SCREEN, SCREEN_DEPTH, SCREEN_NEAR);
}

因此我可以管理视口(viewport)(“窗口”)属性,例如来自 wpf 的大小。

最佳答案

检查此链接以获取 WPF 应用程序的 HWND: How to get the hWnd of Window instance?

我想您可以使用 Interop 将值传递给 C++ 代码。

关于c# - C++ C# 包装器相关。如何从 C# 窗口获取 hwnd 并将其传递给 C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29821019/

相关文章:

c# - 使用 Kinect SDK 进行联合跟踪

c# - 关于 System.Linq.Lookup 类

wpf - 结合 MahApps.Metro 和 Caliburn.Micro

c# - 如何在.NET 6中添加wpf组件到win应用程序

c# - 通过强制转换或鸭式输入不同的对象类型来重用相同的功能

c# - 将窗口样式设置为无后,如何删除 wpf 窗口顶部的白色 strip

c++ - 如何使用断言函数

c++ - 如何为这个派生类编写 move 赋值函数?

android - OpenGL ES 有不同的 UV 坐标?

wpf - 如何获取用户控件的位置?