找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 18002|回复: 10
打印 上一主题 下一主题

UIStyler对话框调用UIStyler对话框

[复制链接]
跳转到指定楼层
1
发表于 2005-8-10 13:32:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

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

x
在UG中用UIStyler生成了两个对话框文件.dlg: 1.dlg  和2.dlg
我想实现的是在1.dlg中调用2。dlg
可以吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2005-8-10 21:32:10 | 只看该作者
楼上 调用是可以实现的 就是我们这些菜鸟不会啊!
我的问题也是对话框调用:
希望在UIStyler对话框中:
1 用按钮控件 调用类选框UF_UI_select_with_class_dialog
2 用阵列按钮(layout button) 调用UC1616
  
就是实现不了,请高手指教!
3
发表于 2005-8-10 21:37:04 | 只看该作者
1 用按钮控件 调用类选框UF_UI_select_with_class_dialog的部分代码:
int MY_point_cb ( int dialog_id,
             void * client_data,
             UF_STYLER_item_value_type_p_t callback_data)
{
    char cue[] = "Select Objects";
    char title[] = "User Title";
    int response, count;
    tag_p_t objects;
  
   /* Make sure User Function is available. */   
     if ( UF_initialize() != 0)  
          return ( UF_UI_CB_CONTINUE_DIALOG );
  
     /* ---- Enter your callback code here ----- */
  
  UF_UI_select_with_class_dialog(
          cue, title, UF_UI_SEL_SCOPE_WORK_PART,
          NULL, NULL, [$response, &count, &objects)]
  
  UF_terminate ();
  
    /* Callback acknowledged, do not terminate dialog */
    return (UF_UI_CB_CONTINUE_DIALOG);  
    
    /* or Callback acknowledged, terminate dialog.    */
    /* return ( UF_UI_CB_EXIT_DIALOG );               */
  
}
4
发表于 2005-8-10 21:38:47 | 只看该作者
2 用阵列按钮(layout button) 调用UC1616部分代码:
int MY_bt_cb ( int dialog_id,
             void * client_data,
             UF_STYLER_item_value_type_p_t callback_data)
{
   UF_STYLER_item_value_type_t value;
  int ir6;  
  char *cp1="point construct";  
  double rr4[3],rr5[3];  
  char buffer[UF_UI_MAX_STRING_LEN];  
  int ia2=0;  
  
     /* Make sure User Function is available. */   
     if ( UF_initialize() != 0)  
          return ( UF_UI_CB_CONTINUE_DIALOG );
   
        /* ---- Enter your callback code here ----- */
  value.item_id=MY_BT;
  value.item_attr=UF_STYLER_VALUE;
  if(value.value.integer)
  {
    ir6=uc1616(cp1,[$ia2,0,rr4)]
    UF_UI_open_listing_window();
    sprintf(buffer,"point(x,y,z) is: %f, %f, %f\n", rr4[0],rr4[1],rr4[2]);
    UF_UI_write_listing_window(buffer);
  }
  else
  {
    ir6=uc1616(cp1,[$ia2,0,rr5)]
    UF_UI_open_listing_window();
    sprintf(buffer,"point(x,y,z) is: %f, %f, %f\n", rr5[0],rr5[1],rr5[2]);
    UF_UI_write_listing_window(buffer);
  }
     UF_terminate ();
  
    /* Callback acknowledged, do not terminate dialog */
    return (UF_UI_CB_CONTINUE_DIALOG);  
    
    /* or Callback acknowledged, terminate dialog.    */
    /* return ( UF_UI_CB_EXIT_DIALOG );               */
  
}
5
发表于 2005-8-10 21:41:47 | 只看该作者
以上代码编译 连接 都没问题  
就是运行时弹不出类选框和选点框! 不知道怎么解决
借楼主宝地,问一问各位斑竹和高手!
6
发表于 2005-8-11 10:17:14 | 只看该作者
加这个看看:
UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);
....
...  
UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);
7
发表于 2005-8-15 15:22:10 | 只看该作者
首先在创建UIStyler对话框1.dlg时,对触发2.dlg的button的Callback项中点选Creates dialog,然后保存,生成代码。
8
发表于 2005-8-15 15:24:33 | 只看该作者
在1.dlg中加入2.dlg中程序生成的如下类似的代码:
#define EDIT_CB_COUNT ( 7 + 1 )
static UF_STYLER_callback_info_t EDIT_cbs[EDIT_CB_COUNT] =  
{
  {UF_STYLER_DIALOG_INDEX, UF_STYLER_CONSTRUCTOR_CB  , 0, EDIT_cons},
  {UF_STYLER_DIALOG_INDEX, UF_STYLER_DESTRUCTOR_CB   , 0, EDIT_dest},
  {UF_STYLER_DIALOG_INDEX, UF_STYLER_OK_CB           , 0, EDIT_ok},
  {UF_STYLER_DIALOG_INDEX, UF_STYLER_APPLY_CB        , 0, EDIT_apply_cb},
  {UF_STYLER_DIALOG_INDEX, UF_STYLER_CANCEL_CB       , 0, EDIT_cancel},
  {UF_STYLER_DIALOG_INDEX, UF_STYLER_FILEOP_CB       , 0, EDIT_open},
  {EDIT_BLO_4            , UF_STYLER_ACTIVATE_CB     , 0, EDIT_edit_view},
  {UF_STYLER_NULL_OBJECT, UF_STYLER_NO_CB, 0, 0 }
};
9
发表于 2005-8-15 15:27:23 | 只看该作者
在1.dlg对话框的代码中,button的回调函数callback中写如下的实现代码:
int response;
  
     UF_STYLER_create_dialog ( "2.dlg",
           EDIT_cbs,      /* Callbacks from dialog */
           EDIT_CB_COUNT, /* number of callbacks*/
           client_data,        /* This is your client data */
           [$response )]
当然,这两个文件应该在VC 的同一个工程下,我想应该就可以了!
10
发表于 2005-8-18 19:37:45 | 只看该作者
我按照前辈说得去作了,但出现了E:\UCDCS\FileNew\code2\pd.c(81) : fatal error C1083: Cannot open include file: 'pd.h': No such file or directory
错误,请问什么原因?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-27 02:42 , Processed in 0.034902 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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