|
我也是新手,进来跟你讨论讨论~~~! @0 Y: p- G8 |9 Q
还望多多指教!
" @; P; h7 n3 g1 W( L* Q) G* k) V我最近做的一个小程序是要选定点的,我是用了UF_UI_select_with_single_dialog()函数,从界面上选择你需要的实体就可以了!$ P5 D6 X$ r/ C+ m3 ~/ M* q0 ^
同时,如果用这个函数的话,要先定义个初始化进进程函数init_proc(),在这个函数里设定你需要选择的实体,比如:直线。。。, Y" T2 e' m5 J2 I! v
5 q p4 a; ~1 r0 B$ |' c
我程序中用来选择点的部分程序: B7 ]* N/ t) j; b
// 调用选择对话框 [1/4/2009 %CREATED BY AUDREY LEE%]; d% w" j, x3 B9 K |: m
char message[] = "请选择点作为放置点!";
& N- J( v. I3 [ char title[] = "放置点选择";
0 h* y7 Q4 o6 O" V tag_t m_point_object;
7 S/ H+ A' d) ~ int scope = UF_UI_SEL_SCOPE_NO_CHANGE;
. c% m" {1 \& I5 z2 r* s" G int response = 0;
3 r1 _# |: D1 W4 N3 h; _ double cursor[3] = {0.0};4 b* O! ~2 n4 v, h0 i5 r
tag_t view = NULL_TAG;7 n" I) u" _& a; U1 ^ e2 h$ V
5 u) _$ L& S6 ^1 E* z
//加锁 r1 b% |3 z: A9 t8 t6 M+ ?* |- Y
UF_UI_lock_ug_access (UF_UI_FROM_CUSTOM);+ R8 |" X3 o2 f. S/ ~
, Z _$ X8 ` y UF_UI_select_with_single_dialog(message, title, scope, init_proc, NULL, &response, &m_point_object, cursor, &view);
) j1 G4 `1 \5 F* B2 U/ W! L6 v
1 U& q. T1 f5 {& M6 A //解锁
0 k/ n* b" M) K N3 i# t UF_UI_unlock_ug_access (UF_UI_FROM_CUSTOM);
0 W1 C+ f2 M1 Q' I6 p; H& m7 g7 w+ B: Q
另外: 用来定义你需要选择的实体类型的那个函数如下。。。2 |$ l7 A% a- G; g& X
//设置Selection( r. Y# I' P* z) k+ R
static int init_proc( UF_UI_selection_p_t select, void *user_data )
+ b- P. `8 T) W% ^4 B{8 ?) T) S1 P- i# h0 K/ r. Y/ h3 Q
int errorCode = 0;" O7 i3 F5 B5 b0 p& U! v
int num_triples = 1;, l7 Y' h; J" \5 `
UF_UI_mask_t mask_triples[] = {UF_point_type, 0, 0};
% O; c% b% F( C* O) @
6 [& {. A# g9 H9 Y //设置可选物体的类型
& K) _3 f+ n& | errorCode = UF_UI_set_sel_mask(select, UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
; Q2 V- R( w# D4 h5 U8 [4 p num_triples, mask_triples);
( Z8 X! ]" Z2 q if( errorCode == 0)# s, ^% g* _. Y2 t" \' m6 h' o0 j
{
0 q4 z$ H; r2 _. ? return UF_UI_SEL_SUCCESS;; D' P7 w. W9 ?
}) R# S8 y: W" Q6 h D6 h) T
else
/ G" X2 w5 b4 D4 Z+ v {
4 {1 l9 ]. f% r0 v! m* O return UF_UI_SEL_FAILURE;9 x# e$ o8 S: `. T, q
}( X( p$ ~3 j4 g, k& S# z# B2 I7 j
}
8 }9 [2 P+ X. I& K7 F; g, v$ o) P& [
希望有所帮助! |
|