iCAx开思工具箱

标题: 调用MFC模态对话框时,怎么样才能旋转移动NX的视图 [打印本页]

作者: ftftftftft    时间: 2009-4-29 22:15
标题: 调用MFC模态对话框时,怎么样才能旋转移动NX的视图
我调用了MFC模态对话框,我调用后,需要旋转 移动 NX视图 方便观察模型的变化。

请问怎么办?
作者: paladinrick    时间: 2009-4-30 17:14
一般来说,如果需要交互操作,最好使用非模态对话框,如果使用模态对话框的话,可以在需要操作的时候暂时隐藏对话框,可采用如下的步骤
HideDialog();
//此处添加你的操作触发动作,比如对话框上的一个按钮,点击后进入nx交互操作
ShowDialog();

HideDialog()和ShowDialog()是对话框成员函数,可以参照如下方式编写 :
void MyDialog::HideDialog()
{
        this->EndModalState();
        NXwindow->EnableWindow (true);
        NXwindow->SetFocus();
        NXwindow->ShowWindow(SW_SHOW);
        this->ShowWindow(SW_HIDE);
        NXwindow->RedrawWindow();
}

void MyDialog::ShowDialog()
{
          NXwindow->EnableWindow (false);
          this->ShowWindow(SW_SHOW);
          this->BeginModalState();
              this->EnableWindow (true);
          this->RedrawWindow();
         this->SetFocus();
}

其中NXwindow是指向ug窗口的CWnd指针变量,可以在对话框创建之前用
HWND UGHwnd = (HWND) UF_UI_get_default_parent();
        CWnd *NXwindow= CWnd::FromHandle(UGHwnd);
得到,然后作为父窗口传给对话框。

怎么样,说得够清楚吧
作者: ftftftftft    时间: 2009-4-30 20:56
我要这个对话框点击OK后才能接着出现下一个对话框的。所以只能用模态

用非模态的话 会直接出现下一个对话框的
作者: XUSIR98    时间: 2009-4-30 21:09
不行的,用模态的话不能移动视图的,只能用非模态
作者: paladinrick    时间: 2009-4-30 21:20
如果不隐藏模态对话框,不可能同步操作nx的,除非按照我的方法先隐藏对话框,再操作然后再显示
作者: tangxu12    时间: 2009-5-1 12:18
可以的

我是这么做的:
弄一个按钮,点击后触发调用一个UGOPEN中的一个非模态对话框 就可以了

我也不知道为什么,反正这样就可以了。




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3