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

iCAx开思网

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

UG二次开发对话框控件问题,请ZZZ帮忙

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

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

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

x
        如图示,我要实现选择框"偏置型“ 和e数值栏的组合,  也就是说只有当我勾选"偏置型“小方框后, e数值栏的输入状态才有效,否则无效   
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2003-8-22 10:55:58 | 只看该作者
图太小了,再来
3
发表于 2003-8-22 10:56:29 | 只看该作者
要实现的结果:
4
发表于 2003-8-22 10:57:56 | 只看该作者
勾选后,第一个框状态有效
5
发表于 2003-8-22 10:59:46 | 只看该作者
各位朋友,请赐教,谢谢!
6
发表于 2003-8-22 11:03:28 | 只看该作者
UF_STYLER_set_sensitive()
7
发表于 2003-8-22 14:25:59 | 只看该作者
  谢谢ZZZ斑竹,我查了TOGGLE的属性,是有sensitive .但我在document中找不到UF_STYLER_set_sensitive() 的定义,对其用法不清楚
  
本来我是这样想的:int CHANGE_active ( int dialog_id,
             void * client_data,
             UF_STYLER_item_value_type_p_t callback_data)
{      
  
   UF_STYLER_item_value_type_t data;
     /* Make sure User Function is available. */   
     if ( UF_initialize() != 0)  
          return ( UF_UI_CB_CONTINUE_DIALOG );
  
     /* ---- Enter your callback code here ----- */
  
          data.item_id = CHANGE_E;  
         data.sensitive.integer=TRUE;
  
     UF_terminate ();
}
  
但提示说sensitive不是UF_STYLER_item_value_type_t  的成员属性,查其定义确实没有给成员,斑竹能否讲详细点,最好给一段示例程序,十分感谢!
8
发表于 2003-8-22 15:27:40 | 只看该作者
对不起,好久没有做程序,有些东西一下子忘了。
就是UF_STYLER_set_value()
  
思路应该是这样的:
  
用UF_STYLER_ask_value()读TOGGLE的值,
如果为0, 则用UF_STYLER_set_value()把REAL INPUT设为insensitive,如果为1,则设为sensitive。
  
data.item_attr = UF_STYLER_VALUE;
data.item_id = TOGGLE ID;
  
UF_STYLER_ask_value(dialog_id, [$data)]
  
ret = data.value.integer;
  
if(ret == 0)
{
     data1.item_attr = UF_STYLER_SENSITIVITY;
     data1.item_id = REAL INPUT ID;
     data1.value.integer = FALSE;
  
     UF_STYLER_set_value(dialog_id, data1);
  
}
if(ret == 1)
{
......
}
9
发表于 2003-8-22 15:35:07 | 只看该作者
可以直接设置:
  
data1.item_attr = UF_STYLER_SENSITIVITY;
data1.item_id = ...
data1.value.integer = ret;
  
UF_STYLER_set_value(......);
10
发表于 2003-8-22 21:06:20 | 只看该作者
谢谢ZZZ斑竹的热心帮助!!!!!
  
这个功能实现了,还有遗留一点小问题就是调出对话框时的初始状态还是激活的,如果让初始是非击活状态,应在哪里设呢
  
是在ufusr那个函数里吗,我在那里试了一下:
extern void ufusr (char *param, int *retcode, int rlen)
{
    int  response   = 0;
    int  error_code = 0;
     UF_STYLER_item_value_type_t data;//添加的
   
    if ( ( UF_initialize() ) != 0 )  
           return;
  
    if ( ( error_code = UF_STYLER_create_dialog ( "test.dlg",
           CHANGE_cbs,      /* Callbacks from dialog */
           CHANGE_CB_COUNT, /* number of callbacks*/
           NULL,        /* This is your client data */
           &response ) ) != 0 )
    {
          char fail_message[133];
  
          /* Get the user function fail message based on the fail code.*/
          UF_get_fail_message(error_code, fail_message);
          UF_UI_set_status (fail_message);
          printf ( "%s\n", fail_message );  
    }
        
       data.item_attr = UF_STYLER_VALUE;        //添加这四句
        data.item_id =CHANGE_E;
        UF_STYLER_ask_value(dialog_id, [$data)]
       data.value.integer =FALSE;
   
    UF_terminate();                              
    return;
}
  
编译后提示说”dialog_id“是undeclared identifier,   是不是放错地方了,我记得以前看过帮助说可以在对话框调出来之前就可以设定其控件状态的,请问斑竹该怎么做,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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