|
void value_exp2dlgitem (int dialog_id, char* exp_name, char* dlgitem_name)9 P! D$ }6 g% X& m) ~
{. W. h7 I7 L& _- G$ T( a
double exp_value;
9 {# a, L% Q0 o- I char exp_defn[133];
- @1 U0 B" d- v2 ]# R9 v5 h# {; ?- b char att_string1[100]="不存在名字为";3 t1 g8 {% r' c% f7 V
char att_string2[]="的表达式!"; , c3 w& k$ b# h' t- E
UF_STYLER_item_value_type_t data;/ y7 k* u6 c2 H$ e
/* 查看是否存在某表达式. */2 G3 `3 r% Y {# U
if(UF_MODL_ask_exp(exp_name,exp_defn)!=0)7 i' k4 ~- X [, q0 `
{
8 B# B' A# x" P( q& r1 E4 ] strcat(att_string1,exp_name);
9 T7 Q5 F+ T2 @. n8 R strcat(att_string1,att_string2);( g# p7 B. K5 r8 ^1 A( `' ?, d
uc1601(att_string1,1);/ {; g) q) o* T' e
}
e7 _. [. f$ n: E. {2 b else
3 t# l- Q+ Z' n% n4 \1 t! D {
& l2 T! j" t: Q/ m; P UF_MODL_eval_exp(exp_name,&exp_value);+ R1 ~9 k5 Y6 { n9 K
data.item_attr=UF_STYLER_VALUE;- C- _6 n7 J9 {8 m
data.item_id=dlgitem_name;
. L( ?' q3 K& K& f! p U4 R data.value.real=exp_value;; ^3 L& B; |. V6 R3 P; H
UF_STYLER_set_value(dialog_id,&data);
/ K, x2 M, H S' ~2 b }
; e' F! N' O P% c2 ?4 X& i} x6 [+ m3 o0 I1 A. N' F/ ^
int BLOCK_construct_cb ( int dialog_id,void * client_data, UF_STYLER_item_value_type_p_t callback_data)9 O7 o. ^: c9 R0 v
{8 f7 s4 G. ], h; ~- K: d
.......% a$ J9 k8 \/ O' @6 {! e" j
char exp_name_1[]="length"; ]+ B/ _6 l- v2 X; F
char dlgitem_name_1[]="BLOCK_LENGTH";
. f* d( n8 b4 X. j9 hvalue_exp2dlgitem (dialog_id, exp_name_1, dlgitem_name_1);( e4 p: H1 j5 A
....
2 u8 Q z+ u; Y- {9 N& j}0 g3 W1 \0 d* i& A: d- [" O* O
以上代码中的自定义函数void value_exp2dlgitem()期望实现将ug窗口中模型的表达式的值传递给对应的dialog控件,整个代码编译无误,但运行后发现并没有实现该功能,测试后发现是自定义函数中的红色语句没起作用,跪求高手解答。
" Z8 G+ t, \' Y6 f3 Y/ ] |
|