iCAx开思工具箱

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 25509|回复: 7
打印 上一主题 下一主题

严重谢谢键盘兄之UG中创建非模态对话框

[复制链接]
跳转到指定楼层
楼主
发表于 2004-9-1 21:11:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
键盘兄一句 “用非模态对话框” 惊醒了我。
长期以来一直使用模态的也就是大家说的Domodall()的方式,居然忘记了还有
非模态对话框。。汗颜阿。
说说具体创建过程吧。
1由于我打算用create的方式创建非模态对话框,所以需要把非模态对话框的属性设成Visible风格。(如果用CWnd::ShowWindow(SW_SHOW)的话则不需要)
2通过调用CDialog::Create函数来启动对话框,而不是CDialog:oModal。由于Create在显示了对话框后就立即返回,而DoModal是在对话框被关闭后才返回的。因此这样便可以实现UG可以正常操作但能够和对话框进行交互。
3)由于在Create返回后,不能确定对话框是否已关闭,也就无法确定对话框对象的生存期,因此只好在堆中构建对话框对象,而不能以局部变量的形式来构建之。所以需要CMyDialog * dlg =new CMyDialog();
4)由于使用new,一定要记得delete.窗口被删除后,架会调用CWnd:ostNcDestroy,程序可以在该函数中完成删除窗口对象的工作,具体代码如下用ClassWizard添加代码)
void CMyDialog:ostNcDestroy
{
delete this; //删除对象本身
}
这样就不必显式的调用delete来删除对话框对象了
5关闭对话框请用CWnd:estroyWindow(),不要用模态对话框里面的CDialog::EndDialog.在CMyDialog::OnOK()和OnCancel()里面调用DestroyWindow()即可。
  
具体点CMyDialog里面要添加的东西按上面操作即可)
void DisplayDialog()
  
{
  
       AFX_MANAGE_STATE(AfxGetStaticModuleState());
  
       CMyDialog * dlg = new CMyDialog();
       dlg->Create(IDD_DIALOG);
  
}
  
extern "C" DllExport void ufsta( char *param, int *returnCode, int rlen )
{
    /* Initialize the API environment */
    int errorCode = UF_initialize();
  
  DisplayDialog();
    if ( 0 == errorCode )
    {
        /* TODO: Add your application code here */
  
        /* Terminate the API environment */
        errorCode = UF_terminate();
    }
  
    /* Print out any error messages */
   &nbsprintErrorMessage( errorCode );
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 支持支持
沙发
发表于 2004-12-4 12:52:08 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
板凳
发表于 2004-12-4 17:13:27 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
地板
发表于 2004-12-5 09:47:07 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
5
发表于 2004-12-5 11:25:34 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
6
发表于 2004-12-5 11:27:14 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
7
发表于 2004-12-5 18:56:36 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
8
发表于 2004-12-7 10:26:33 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手板模型制作,在线3D打印服务

QQ|小黑屋|手机版|开思工具箱 CAD工具箱_CAM工具箱  

GMT+8, 2024-11-27 05:45 , Processed in 0.018641 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表