Proe6.0 MFC 代码实现 从本地文件加载d:\\a.asm模型到程序窗口
时间: 2023-07-25 09:06:43 浏览: 176
以下是用 MFC 实现从本地文件加载模型并在程序窗口中显示的代码:
1. 创建一个 MFC 应用程序项目。
2. 在资源视图中添加一个按钮控件,然后双击该按钮控件,打开 ClassWizard。
3. 在 ClassWizard 中,单击“Add Class”按钮,选择“MFC Class from TypeLib”选项,然后单击“Next”按钮。
4. 在“Select Type Library”对话框中,选择“ProE.Interop.ProE”类型库,然后单击“Finish”按钮。
5. 在“Add Class”对话框中,输入“ProE”作为类名,然后单击“Finish”按钮。
6. 在 ClassWizard 中,选择“ProE”类,然后单击“Add Variable”按钮,添加一个类型为“ProEInterop::IApplicationPtr”的变量,命名为“m_pApplication”。
7. 在“OnInitDialog”函数中,添加以下代码以初始化 Pro/E 应用程序对象:
```c++
m_pApplication.CreateInstance("ProE.Application");
```
8. 在“OnDestroy”函数中,添加以下代码以释放 Pro/E 应用程序对象:
```c++
if (m_pApplication != NULL)
{
m_pApplication.Release();
}
```
9. 在“OnBnClickedButtonLoad”函数中,添加以下代码以加载模型文件并显示在程序窗口中:
```c++
// 打开文件对话框
CFileDialog dlg(TRUE, "asm", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Pro/ENGINEER Files (*.prt;*.asm)|*.prt;*.asm||", this);
if (dlg.DoModal() == IDOK)
{
CString strFileName = dlg.GetPathName();
// 打开模型文件
ProEInterop::IModelDocPtr pModelDoc = m_pApplication->OpenModel(strFileName.AllocSysString());
if (pModelDoc != NULL)
{
// 获取模型窗口句柄
HWND hWnd = (HWND)pModelDoc->Window;
// 将模型窗口嵌入到程序窗口中
CWnd* pWnd = GetDlgItem(IDC_STATIC_VIEW);
if (pWnd != NULL)
{
CRect rect;
pWnd->GetClientRect(&rect);
::SetParent(hWnd, pWnd->m_hWnd);
::SetWindowPos(hWnd, NULL, rect.left, rect.top, rect.Width(), rect.Height(), SWP_NOZORDER | SWP_SHOWWINDOW);
}
}
}
```
10. 在“OnInitDialog”函数中,添加以下代码以设置模型窗口的父窗口为 IDC_STATIC_VIEW 控件:
```c++
// 设置模型窗口的父窗口
ProEInterop::IProEUIObjectPtr pUIObject = m_pApplication->GetUIObject();
if (pUIObject != NULL)
{
pUIObject->SetWindow((long)GetDlgItem(IDC_STATIC_VIEW)->m_hWnd);
}
```
11. 编译并运行应用程序,单击“Load”按钮,选择要加载的模型文件,然后在程序窗口中显示模型。
阅读全文
相关推荐













