|
我也是新手,进来跟你讨论讨论~~~9 O' I( H3 `; G3 Q4 i) r! s, r
还望多多指教!
y- Q1 }$ E* }' X# Y我最近做的一个小程序是要选定点的,我是用了UF_UI_select_with_single_dialog()函数,从界面上选择你需要的实体就可以了!
4 t0 I) t: y) n, L3 h) u同时,如果用这个函数的话,要先定义个初始化进进程函数init_proc(),在这个函数里设定你需要选择的实体,比如:直线。。。. k; H# {1 K2 Y5 @9 J
& }' U' _6 f& Q我程序中用来选择点的部分程序:
- H" Y3 E4 L, n8 f // 调用选择对话框 [1/4/2009 %CREATED BY AUDREY LEE%]1 ~+ Y0 D: J' e5 M+ Z2 @
char message[] = "请选择点作为放置点!";
1 T5 j$ D! U8 Q char title[] = "放置点选择";
# x0 c& `- l8 _* G: M tag_t m_point_object;
- u0 e. ]/ O1 f: K int scope = UF_UI_SEL_SCOPE_NO_CHANGE;
( r$ ^3 c: G- b8 A h/ ~5 d" f int response = 0;/ ^) {$ q5 d* X' H, R+ o0 `+ ^
double cursor[3] = {0.0};! d- E2 \9 h* s
tag_t view = NULL_TAG;
8 @2 ~6 L! C) Z! \* S$ r+ S 5 O; B$ A2 ~4 x i
//加锁2 T# A& E( q6 Z1 Z& z0 K# L- X
UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);
/ D, ~# e9 X2 |/ T4 F$ F* ^& P0 P+ p C1 }
UF_UI_select_with_single_dialog(message, title, scope, init_proc, NULL, &response, &m_point_object, cursor, &view);
9 i. D8 E1 w* A" h
! M8 a1 y5 }- }5 B8 @! t4 [ //解锁7 i2 v2 L+ }' n u D
UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);
# Y' ?( {8 W6 D
/ P/ D6 r3 O% N+ N6 d另外: 用来定义你需要选择的实体类型的那个函数如下。。。
) b+ r- C: a6 p//设置Selection
' [/ f; N/ q: Z3 @/ C9 istatic int init_proc( UF_UI_selection_p_t select, void *user_data )2 _5 I8 Q7 Q! D* _& I8 w1 a: e
{
$ O6 G6 S: E: l3 z8 ?0 O int errorCode = 0;6 J6 A7 y$ b' A
int num_triples = 1;
- c" D% A- y& O' y, B% T UF_UI_mask_t mask_triples[] = {UF_point_type, 0, 0};" Q) k; K" Z+ {
( G, S/ U* t% C% J3 N2 t //设置可选物体的类型. y( M* y3 U7 ?& n, R
errorCode = UF_UI_set_sel_mask(select, UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
' j/ r" \% ^4 R# a) a num_triples, mask_triples);
! h! j0 ?5 ?! j- y {$ d if( errorCode == 0)! w# e( u, Q1 o! s4 \
{
$ E# l, P1 `/ d8 k% W+ g. o return UF_UI_SEL_SUCCESS;% K1 Z4 \" S: C' I& Q
}7 `. Z& @, e# r- A* s" ~7 L3 w6 v
else% _. |) m6 a& j% x9 r# M6 y9 D% J
{2 L6 \, U* F4 B9 l
return UF_UI_SEL_FAILURE;" }8 @+ U; s f/ x
}/ ^+ n u5 S% _7 i3 u
}
7 n: N8 o/ [4 ~/ I1 H2 {; r9 C) N7 q K0 M2 B
希望有所帮助! |
|