|
我也是新手,进来跟你讨论讨论~~~% c' p, L; B p! V3 s' s
还望多多指教!" s) L: `( P2 c2 X
我最近做的一个小程序是要选定点的,我是用了UF_UI_select_with_single_dialog()函数,从界面上选择你需要的实体就可以了!; S) H% e8 k7 i9 ~
同时,如果用这个函数的话,要先定义个初始化进进程函数init_proc(),在这个函数里设定你需要选择的实体,比如:直线。。。
" W. v9 I5 o1 L( F) t7 }( C; k' j! I: j# ~# {9 {4 F( [
我程序中用来选择点的部分程序:
8 S8 F9 R1 n* b3 Q // 调用选择对话框 [1/4/2009 %CREATED BY AUDREY LEE%]
8 \' ^: i4 g& R! H& v char message[] = "请选择点作为放置点!";: W! z# A& j* ~7 c% L
char title[] = "放置点选择";
( e7 {% M, q6 x5 M1 m4 D9 V tag_t m_point_object;
; F. ^: y& C/ i int scope = UF_UI_SEL_SCOPE_NO_CHANGE;. C) v% r' E1 k; @/ k
int response = 0;- C! G5 }' h. t9 g" K0 t, v
double cursor[3] = {0.0};+ t/ O1 t @9 ^5 s
tag_t view = NULL_TAG;
i+ W" {/ V6 q, ~ 8 X6 x" A) m3 ?3 H ~6 W$ N1 v3 U
//加锁
: S& k# [( L4 R, e UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);8 _; h3 N0 I4 x
% s7 }# E- \& H8 L5 I
UF_UI_select_with_single_dialog(message, title, scope, init_proc, NULL, &response, &m_point_object, cursor, &view);
6 H! \: w) |+ \* E
' W$ M1 D+ c9 ? //解锁7 x5 K8 v- E t+ J
UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);
9 P& j4 [+ ?( A9 s
; s: H1 [* w0 A8 P6 O另外: 用来定义你需要选择的实体类型的那个函数如下。。。
( v" ]) v, z* k" [/ w//设置Selection
* m" ?* L3 b$ d7 X( D! estatic int init_proc( UF_UI_selection_p_t select, void *user_data ). O G# o' Y, u; m; { G
{
4 m: J! z5 F; \- v0 ~ int errorCode = 0;
# @5 e" X5 R: c- K+ C# u int num_triples = 1;' {# e& Y0 W+ ]/ k3 Z
UF_UI_mask_t mask_triples[] = {UF_point_type, 0, 0};9 X0 U- v: b! E' K! r: i# U
6 K4 O, \5 b F: V3 g //设置可选物体的类型- m- n/ T" v! k+ [$ k' _
errorCode = UF_UI_set_sel_mask(select, UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
( x7 n1 r5 e' X6 u( ~1 C num_triples, mask_triples);
! }! M* \" F& g K3 r if( errorCode == 0)
* Y3 x3 g+ X i" b8 [( M+ z {6 ~ j- y# i2 H, B3 G
return UF_UI_SEL_SUCCESS;( [ Z; y% ]$ h; w6 ?5 K. y
}
9 Q1 J; }, B+ b& [' q else
# p$ ~5 j! j1 m0 [- W; E {
3 O0 E: P! G+ p7 Z& K( ] return UF_UI_SEL_FAILURE;7 e2 d+ }/ H; v, L
}0 L2 ~6 |* Z3 q* t5 ]
}
! j. Y9 T! u1 O2 V f! V; H
0 C! v4 U, b* G' [/ Z希望有所帮助! |
|