iCAx开思工具箱

标题: UIStyler对话框调用UIStyler对话框 [打印本页]

作者: endiaons    时间: 2005-8-10 13:32
标题: UIStyler对话框调用UIStyler对话框
在UG中用UIStyler生成了两个对话框文件.dlg: 1.dlg  和2.dlg
我想实现的是在1.dlg中调用2。dlg
可以吗?
作者: yuwan    时间: 2005-8-10 21:32
楼上 调用是可以实现的 就是我们这些菜鸟不会啊!
我的问题也是对话框调用:
希望在UIStyler对话框中:
1 用按钮控件 调用类选框UF_UI_select_with_class_dialog
2 用阵列按钮(layout button) 调用UC1616
  
就是实现不了,请高手指教!
作者: yuwan    时间: 2005-8-10 21:37
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 );               */
  
}
作者: yuwan    时间: 2005-8-10 21:38
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 );               */
  
}
作者: yuwan    时间: 2005-8-10 21:41
以上代码编译 连接 都没问题  
就是运行时弹不出类选框和选点框! 不知道怎么解决
借楼主宝地,问一问各位斑竹和高手!
作者: endiaons    时间: 2005-8-11 10:17
加这个看看:
UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);
....
...  
UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);
作者: pifujian    时间: 2005-8-15 15:22
首先在创建UIStyler对话框1.dlg时,对触发2.dlg的button的Callback项中点选Creates dialog,然后保存,生成代码。
作者: pifujian    时间: 2005-8-15 15:24
在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 }
};
作者: pifujian    时间: 2005-8-15 15:27
在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 的同一个工程下,我想应该就可以了!
作者: darren81672    时间: 2005-8-18 19:37
我按照前辈说得去作了,但出现了E:\UCDCS\FileNew\code2\pd.c(81) : fatal error C1083: Cannot open include file: 'pd.h': No such file or directory
错误,请问什么原因?
作者: 789zenghong    时间: 2011-9-12 14:04
路过的,顶你一下:yan::yan:




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