入门指南
快速集成-MFC
在 Visual Studio 里从零创建一个多文档 MFC 程序,把 TSE 三维视口嵌入到 CView 中, 并完成引擎启动、视口缩放与运行时 DLL 部署。
创建一个默认的多文档 MFC 程序
按照 VS 默认配置生成一个多个文档的 MFC 程序
尝试运行一下这个项目,效果如下
编辑库目录填入 sdk 库目录
编辑头文件目录填入 sdk 头文件目录
编辑附加依赖项增加 sdk lib 库
- 增加
flow_bridge_platform.dll.lib - 增加
flow_bridge_adaptor_hwnd.lib
在 MFC 代码中引入 tse.hpp 文件
- 定义
ENABLE_ENGINE_HWND_ADAPTOR以开启 HWND UI 适配器 - 包含
hpp/tse.hpp文件以获取 SDK 功能接口
在成员函数中放置一个 m_hwnd 成员变量标识引擎窗口
在 CView 中添加 OnInitialUpdate 方法
在 OnInitialUpdate 函数中填入以下代码以启动引擎,创建窗口句柄
simple_mfcView.cpp
void CsimplemfcView::OnInitialUpdate()
{
CView::OnInitialUpdate();
// 设置许可证,在这里写入许可证
tse::EngineSingleton::instance().set_license_key("00-A1111111-G2222222-K3333333-B4444444");
// 启动引擎
tse::EngineSingleton::instance().startup_sync();
// 创建 UI 句柄
m_hwnd = tse::EngineSingleton::instance().create_hwnd_widget();
// 绑定父窗口
::SetParent(m_hwnd, GetSafeHwnd());
// 显示引擎视图
::ShowWindow(m_hwnd, SW_SHOW);
}
在 CView 中绑定 WM_SIZE 消息
在 CView 中添加一个 OnSize 函数处理引擎视口缩放
在 OnSize 函数中填入如下代码以处理引擎视口缩放
simple_mfcView.cpp
void CsimplemfcView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy); // 先调用基类
// 安全过滤:最小化或尺寸无效时直接返回
if (nType == SIZE_MINIMIZED || cx <= 0 || cy <= 0)
return;
m_hwnd; // 引擎窗口句柄
// 检查目标子窗口是否有效)
if (m_hwnd && ::IsWindow(m_hwnd))
{
// 使用新的 cx, cy 调整子窗口大小,使其填满客户区
::SetWindowPos(m_hwnd, nullptr, 0, 0, cx, cy,
SWP_NOZORDER | SWP_NOACTIVATE);
}
}
将 SDK 对应的 DLL 复制到 mfc 可执行文件的目录下
运行程序即可出现 3D 界面