|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
- 花键轴设计的主程序 Database_main.cpp : implementation file
( A: N+ a. p" ~# v1 T1 y! S - 8 O/ J R9 m1 T1 J
- f" e9 d, J6 Y
3 t8 V6 E0 M* v& F& i- #include "stdafx.h"
3 w2 W5 u! R. \" @8 t3 }( V - 8 ]9 s/ x$ F3 P+ v( }6 M9 h
- #include "app_data.h"% y9 F1 B7 r& w
3 t: d1 @4 f( q ~% W0 [- #include "Database_main.h"3 ^# e8 | `) @' ]9 l: ?
. i! e/ q% r$ S* K) z4 ]0 o-
0 h9 b1 q0 q; N5 u" a4 `
5 Y3 ^( G8 k0 e$ z* i' v; a- #ifdef _DEBUG
9 t' d& Q0 V0 ]/ a - & B+ M. {8 K+ c
- #define new DEBUG_NEW
4 S( S: {& t$ ~/ c- f" g# l+ u - ) h; {' \" ^/ ?" O
- #undef THIS_FILE8 Y2 S" L- k a) w4 I( w3 B' U
- " L! h% G$ O# M# ~- p* R& H- `5 R, |( V
- static char THIS_FILE[] = __FILE__;
- g0 a4 ^$ v- V( T5 g1 u - * I& T7 J+ p% h# R. }' |7 D
- #endif/ k- o% g3 _" X# x3 g+ ?
: O3 \! R7 d5 S# k- * a$ E3 W1 M0 l
- " B$ _+ T: r3 C: m$ @6 x4 \2 j
- CDatabase_main::CDatabase_main(CWnd* pParent /*=NULL*/)
2 v- O) n6 t H$ Y8 c, Y
3 J- i5 q% z1 [3 }5 X, g* Y0 Y& U9 _- : CDialog(CDatabase_main::IDD, pParent)
8 [* d0 M- _0 U9 l9 j6 }+ p7 F+ s( d
5 d9 D. g' c4 d8 H) n0 D- {, e! F% U* \* N+ R
- ! V9 m6 i7 u& N
- //{{AFX_DATA_INIT(CDatabase_main)' c% Y7 j- C8 ~: H* T
- 9 O+ S4 b$ Q# D) D- t- H
- // NOTE: the ClassWizard will add member initialization here1 Q- H- A) s2 x
# d' w/ b% o" E. m- //}}AFX_DATA_INIT
! v# _. h% E4 N0 L; n& \ - . J& { M! f' s. \
- }
& G' e( p; D& v' i( g3 v3 p/ _4 s - 5 O, Q4 n' G- Q! J3 j0 ?0 E, z2 c, d
- ; j3 \0 X% T2 U" j2 ~
- . `4 O% b" S7 |0 y. X$ z6 ~5 K
- ( \5 Q; M# r0 }7 Z; E( a
. v. W! q' h0 V) T1 l, g6 c- void CDatabase_main::DoDataExchange(CDataExchange* pDX)
% @7 b+ m$ d. o- G
4 r; P( L8 R0 ^1 q- {; u; J) V; L. c5 F% W s' t
, Q9 i1 a+ c. e/ X0 P) r- CDialog::DoDataExchange(pDX);$ C4 N8 s! n5 ?; U1 r' N% n: C- z
$ K9 Y1 j6 ^6 g' G- p, S( [6 g9 g- //{{AFX_DATA_MAP(CDatabase_main)
; k" r& t6 E& E, S9 S4 r - 0 k& Q1 _2 b7 s+ L; r
- DDX_Control(pDX, IDC_LIST_PARA, m_list_control);. E* M6 s* F; D$ _
- : [8 j% [8 [3 V. O
- //}}AFX_DATA_MAP
3 ~6 U' u, g. T3 } - C4 s2 {5 P2 g- A5 y3 u
- }3 |+ {% s m# x" P. O* f$ E. O8 q# _
" }" L8 w0 Z) b1 q, S* J) `- BEGIN_MESSAGE_MAP(CDatabase_main, CDialog)
1 l* J: {$ x- K$ T) ~
. A! W" Q$ `0 C! v% [+ w- q) s- //{{AFX_MSG_MAP(CDatabase_main)
( I1 |3 k1 m* r' @
5 q: Z4 ?+ ?9 D/ _# k: A- ON_WM_DESTROY()* v+ |- p4 Z: [
1 [9 E' Z; b) i2 f8 _- //}}AFX_MSG_MAP
) \. V/ v9 ~% L: X$ S9 L
2 x( l0 O5 M& K9 k" e- f5 T- END_MESSAGE_MAP()8 S2 c- `3 r$ y% e. V2 ]
- / G% |, E: w+ ~: b; M
-
1 S. D! V' ^! I2 V
) s) @7 m% j0 @0 l- T' A$ i- BOOL CDatabase_main::OnInitDialog()
; I4 p' Q% e7 a" U& f9 _" }
6 ~$ ?- w m5 [5 D; F1 |0 i- {0 [% [( p6 Y" f) i. X6 Z& s8 f0 g
& ~+ a/ l, r( E, r3 ^, W- CDialog::OnInitDialog();! C( Z5 U6 H5 {+ E9 \
- 7 c) E; A& u! o; y$ {1 D$ g& R, M' v
- ?. B, i& f5 B8 R$ {4 j7 u
' v! r* p! G- {- // TODO: Add extra initialization here3 A. P0 Y2 M+ p% Y. v/ Q# K0 E- @
- * _) o$ h5 O3 n6 F9 Q$ E V
- try{
7 s4 i* I% ~; m0 O0 q - , W5 V' S1 H8 a$ W' v6 I
- m_pdatabase=new CDatabase();& R: n5 x3 H) |, _
/ o4 M' Y# v8 R: X1 J7 X- m_pset=new CRecordset();
M1 O) s8 a& L4 W - 1 r! v7 s. z" W7 ?! a [1 {
- m_pdatabase->Open(_T("data"),FALSE,FALSE,_T("ODBC;DSN=data"),FALSE);3 [: L2 l/ u+ a
- 5 r4 d, X" F% _! Z _/ Z! ?
- m_pset->m_pDatabase=m_pdatabase; ( `+ e, X C+ E$ e
- t$ C9 {" T2 b; `. F- }/ ^1 i# o6 O' a: g
1 D* i! H8 u* \5 e6 O! V5 Y' J- caTCh(CDBException* e){
& z+ P: l1 o; n- L
7 M$ z; |6 V+ M2 h7 `- e->ReportError();
/ o' X% T) F, {: B `8 f7 X
4 u+ b# n0 k: Y6 h- e->Delete();
0 o$ R/ B/ E$ Z t3 B - 3 Z' V v0 X4 s( K) ^
- delete m_pset;& r% F a% u9 F' J
$ Y3 A4 A; N: ]' }; |- delete m_pdatabase;
) @9 b9 _7 e- I) X$ Z! I* E* V
]% R* u" b w3 E. u0 c- return TRUE;}3 R0 Q8 e! a W' e0 P
- , C) v h" q% u
- DataShow("data");! |; ?8 }% a& d* Z: U
6 r, Q& H3 Q' c( ~8 D& d) l. @- return TRUE; // return TRUE unless you set the focus to a control8 a5 j; Q2 P7 I! V) X
F x' K2 m p8 t" {/ H- // EXCEPTION: OCX Property Pages should return FALSE' N$ j$ ], W8 q) I$ ]# K( j
- ! e/ y9 t- H- C6 ?7 V" o3 i( T
- }" Z9 E' F6 Q& g9 }. o6 K0 z
- 6 J( N) D, S u
- void CDatabase_main::ClearList()
6 z* Y# \! S1 Q - 8 P6 i% B+ `. J% @% a+ [$ ]
- {
2 R. j2 H( z+ @/ {/ x1 ` - 6 _ o: Z5 L& W# P) D! D& Q
- //m_list_control.SetExtendedStyle(LVS_EX_FULLROWSELECT); w) q& |. \6 {7 u+ x
' \& F0 s0 m, M: n: ?- //m_list_control.SetExtendedStyle(LVS_EX_GRIDLINES);
) V% ?9 y* _, C" e1 R$ d
* e0 ^6 ]9 c# P- m_list_control.DeleteAllItems();
' b# n! G+ k3 i& G9 {) ^* W g# [' t
$ k7 v1 O7 I9 l7 a' J. ]- while(m_list_control.DeleteColumn(0));+ B/ a! f% j5 ~% Z
; Y8 @6 x5 O5 m/ i# v Z- UpdateWindow();
B }6 e. s" V3 Y# B/ ^
# L% R! d7 w+ |/ D! L- }" X0 s t7 u/ {$ G6 C1 ^
" C9 S! e: s0 C& M% Y4 m6 }( Z- void CDatabase_main::DataShow(CString table_name)- G! w1 \- R2 A
- 0 {7 L; U" x( y/ _# ?& L e
- {2 H) r$ [) L2 \8 R
- , s/ g/ n, h6 J1 O
- ClearList();9 X* G2 F* d: Q3 o& {/ Z
- - D0 S) e4 j- o8 b
- CString strSQL;
r, }: ^7 x( i5 R$ l' i K8 l - & U2 b' x3 j. T4 a+ R
- strSQL="select * from "+table_name;* J; G/ ~ K/ O/ l: {
: o* Y" U/ l* F2 c: L( m9 b- ShowInformation(strSQL);! m- s2 ^- F2 Q3 I, F- l( J$ Z# x5 t% C
9 R& B, X* f3 s' a: f3 S- N7 j- }- C$ y/ s+ d) n7 _' A0 N0 M
- " I, X( W4 K2 Q* s* l6 h C/ }$ C8 n
- : \( [, i+ [* A8 S+ s# Z
- 9 H2 Z0 u# D' k5 U) L5 Q
- BOOL CDatabase_main::ShowInformation(CString strSQL)
1 h: N* |4 ? S. b, H
: D3 w: \8 C$ ~. Z8 n- {
) u+ `) m6 m% ]) q" J4 R
% O9 B; m: s' i9 B; |; C- if(!m_pdatabase->IsOpen()) return FALSE;
/ i( r3 J# k+ _2 Y+ ^0 d9 W, R u
' S! M- B+ x& N4 z) H- if(!m_pset) return FALSE;8 \% }5 P' w7 N+ Q3 G9 N
3 g) d% G% Z1 a' \: F; [& \- try{! n1 a; ]! z, G
4 T6 h8 `" v5 A4 s9 ^- BeginWaitCursor();
7 C; V' h5 B% c; u* y
: D0 I% F% P) A9 L1 H* o$ c! y+ Z# A- if(m_pset->IsOpen()) m_pset->Close();3 _ }0 e5 q6 O. b5 a
8 Y s p4 W2 |! y" k, t- Q- m_pset->Open(CRecordset::dynaset,strSQL);
7 N) o4 Y5 G* H! o3 Z5 e9 [
+ i3 q5 T, A# v+ W- if(!m_pset->IsEOF())* B5 d1 Q1 p3 q/ B% m3 A% Q
7 v! ?0 v: J% `' J- {m_pset->MoveLast();
& y _9 F* ]9 d- v
3 N! F9 N a* J4 Z& G- m_pset->MoveFirst();}6 W3 A4 o( i3 w7 q
- . D5 y! w- O2 b
- nFieldCount=m_pset->GetODBCFieldCount();
: u7 S. X5 q0 a1 r% n' v) `
F+ s9 P. [( g, @ {8 S9 G4 A- CODBCFieldInfo fieldinfo;1 X: H* L6 g; p E) Q. R1 Y$ A
- * [" h- @0 f0 P( g h9 S, e
- for(int n=0;n<nFieldCount;n++){" F1 {2 Z" O& @) g- E, _2 m+ V
- V0 X. V: y& {; h2 H2 ^) Z9 Y
- m_pset->GetODBCFieldInfo(n,fieldinfo);
! ~& U+ B. h, S6 C! [ - ) C1 x$ M: l0 P4 o% W0 b5 E! L1 }
- int nWidth=m_list_control.GetStringWidth(fieldinfo.m_strName)+35;6 J2 n' q! A0 E9 V( D
( T5 N/ P: _8 {( Q- }2 w$ E0 p- m_list_control.InsertColumn(n,fieldinfo.m_strName,LVCFMT_RIGHT,nWidth);
+ I9 K# r& |" |6 w: Z7 k
5 ?* ^3 b/ a) X5 M' O- }* I& `; @0 [1 k5 z! _. d
- & J% B' b2 n; X9 |/ D% x
- CString strValue;, \5 G0 h% h& H: b2 j0 S2 y' y
9 t9 Z* p ]: h- g+ L, U- m_pset->MoveFirst(); g) S {7 P% u8 k% X u6 i* O
; w$ D8 ~, K1 |+ Q9 P# g) q- int nCount=0;3 _# n6 }8 ^3 ]( y+ {
- h5 z5 d# `) Q- F/ `& D- while(!m_pset->IsEOF()){: t; c1 S/ W3 {* ^0 C
- , B. |: R+ t; u3 G2 H& a( @4 U
- m_list_control.InsertItem(nCount,strValue);* S; [, D E' ?% }& i! r8 r
- % t2 O, V5 G Z' Y
- for(int j=0;j<nFieldCount;j++){; g. B. J A# F# J
- ( v* J2 N2 B+ A3 V X! A
- m_pset->GetFieldValue(j,strValue);
1 a5 l }8 x' h3 M; A: h6 L5 z
; s) r2 U% X0 j4 F- m_list_control.SetItemText(nCount,j,strValue);
& _8 g, R; ^, Y7 Q6 Z9 | - 3 R& r3 v4 |# u$ A. c
- }4 j, s& w+ y3 Q0 \' q, u
- / T6 v o2 `+ f
- m_pset->MoveNext();: F& Q" w) A( B2 Z* B( W! i
) e* c. J, o5 b/ i: d' Y z- nCount++;$ t5 `( Z; M) B( u5 p, q4 ~
- . m$ t: h5 N j- [
- }
% q: J- A+ r) H" ]8 k0 K; J1 B
( T# K; I4 G6 j' N- EndWaitCursor();
7 @: ^% m6 U4 M1 G! Z9 e
7 k4 q3 Q2 b& y1 u- }4 T$ ^4 d/ ^0 f* r# v
- 5 \7 J1 b+ a4 F: d
- catch(CDBException *e){: d: C. b& e( V. X' a" b2 P
6 x5 ^. E( o% D& i- e->Delete();' h( q! I: }, Y+ S
- $ ?2 g8 i& t1 A. z' Z
- EndWaitCursor();' W: l. u6 F0 o: G1 X& S
$ j- O( W4 Y0 W- return FALSE;
, t9 M/ \' L* z( o
) E! O8 I) Q9 Z# @- }) A/ F' b8 ?0 W: y# e( e( ?
- d# P5 U0 P7 ?$ }7 |+ E$ g
- return TRUE;7 J2 q |% P& h. p5 }( d6 {
- L! N# z1 Z/ K; g
- }
7 x1 J/ C6 Y9 o3 H- |! K( i
0 y# L( F( N3 V" V4 r6 g+ m2 I. _- ! X6 P# ^1 H9 x
6 S" X$ w+ f- C$ C# `- void CDatabase_main::OnDestroy()* U7 b, p# w1 Q' |$ c" v7 H1 p7 v
- 0 o$ U: Y0 d7 o4 u3 f) j, u: G% \
- {
2 \6 Y2 p) x( K* ]& k" N- {9 V
" C+ A* b. M' a7 W- CDialog::OnDestroy();$ w. n$ a* R; f; [; T( T# ?
& F: Z, B1 x9 v# F' _6 S5 @ o-
, u( v) I4 E4 j# _4 i( G - ; w% ~; s% R5 ` E" i9 F
- // TODO: Add your message handler code here
@& g* H8 ~ c' | - " \9 h( b! K; A$ i
- delete m_pset;
" ^) q q5 m3 i7 z: v4 y3 S0 L
1 `8 O6 [0 N7 h v6 u+ N- delete m_pdatabase;
( \7 C% L+ N i - ) A1 e& P3 \; }, s3 K; Z% m( c
- }3 ]$ S. N' r8 @( e7 u7 C
- . F4 s- c) |7 z2 O
- extern CString str[8];
. S$ {9 q$ p! r! D) C
0 d, o% K; }! I; ~; L4 L2 y- void CDatabase_main::OnOK()3 f* X" C- M' O
- 9 [7 f" B! b& v$ O3 Z0 o. C
- {
+ u5 \3 F# C7 H) I5 s1 j
4 z Z/ _6 H5 R0 \- R- // TODO: Add extra validation here( ], G/ \2 D' {2 W, o
- - L' F/ d W# n4 ]
- UINT uSelectedCount=m_list_control.GetSelectedCount();
0 ~; n" `% ?. ~. X - 9 j% J# S6 a3 h$ V$ u0 v7 s2 e, o
- if(uSelectedCount>1||uSelectedCount==0)9 Z3 P! R. z9 R. s! w' Y# r6 B6 @
- 7 u0 w3 E2 R2 D! A/ ?3 m; t3 @
- {; x0 ^! K% [1 S; V" ^5 m
. v3 C4 ^- {$ ^1 P- if(uSelectedCount==0)
/ K( M* W0 X2 B" E7 u" X- F6 U6 ^
! l& u& U; b7 W+ v; m$ A- {
. f8 p+ f8 @# Z; p6 Z - ( R) @7 K. Y! T- Q8 t1 B; U
- MessageBox("要选择一条参数!","提示",MB_ICONWARNING+MB_OK);" z% j& ~1 R) L. a; [- A& |
4 ^/ r; Q, y/ ^0 I6 t3 S& b6 \- return;" s$ b Y4 l9 [, W$ s' u
1 i" A/ Z* H" R) |/ w* i* k- }: H: @+ e. ^- p% {- k2 W. W
- : z6 f9 |2 U* w$ ]4 L% i# D
- if(uSelectedCount>1)
: i7 l0 }' o4 n' [ l6 z1 e" P" I
: w: ?+ B8 {& e' n5 C# H- { " ^) x0 ]4 ?2 T/ T6 g, P4 z- Q
?+ B2 |% G- s) ]7 R- MessageBox("只能选择一条参数!","提示",MB_ICONWARNING+MB_OK);
" B" @" ~+ Q; `; |+ z - # G1 J: {, t: u3 s$ q; y
- return;
7 k) u8 d3 W' L - 9 S, T, C" t' t3 }
- }. X# Z6 V- D$ E1 c
! C6 k, g8 G; ]1 K O- }
; m- F* E! J R% U# M- H - ( j8 g" I' I* u' u) I8 H; ]
- else
! k& o Y( L! t6 ~3 ~ - $ @' T5 V w6 I
- { " c7 ^' x/ O" j9 w9 {/ y! A4 ?/ c
2 K, Y1 ~8 n7 |- int nItemSel=0;
+ @, x9 g) B9 u, S6 v1 K) J3 _8 p - 1 ~ ^! L2 p' u. m
- nItemSel=m_list_control.GetNextItem(nItemSel-1,LVNI_SELECTED);& j: K. b" @; w, J
; e+ R9 E9 n, n; h- _ }! ]- for(int j=0;j<nFieldCount;j++)
A, @ m" x/ B" o1 P
9 T9 @% b, P( G" F s. Y. I6 w- str[j]=m_list_control.GetItemText(nItemSel,j);
/ {+ D8 \2 G: Q$ Q" A$ d! _1 C - 5 I& V. u: U) b
- }
0 l6 ]9 V0 W( \
+ }2 i9 y. p2 ]. O$ e- CDialog::OnOK();) F! C! k4 `1 t# a! }! F4 v
- ) S7 c- P9 H. ?: @
- }0 L) K* N: q( |. n- V& `
3 @1 C7 |$ I6 _0 r' _8 O- 8 s5 Q/ B: k5 C- i; a" J
- - q# F. S8 b+ J0 v# ^; \2 h
-
/ \$ ^9 _3 R% x5 u$ @
4 e8 Z6 D' j4 f r" h7 z+ i' q- 圆头直杆圆凸模的主程序:
, n' U% Z1 \/ }2 u, P- ] j+ v - 1 V9 E$ Z- S3 b- k
-
3 {2 {9 S8 D5 a1 _# m
( q' Z) W, I9 P- Database_main.cpp : implementation file
1 L" y4 R/ r7 u0 x; o1 c: U# g' |
3 A+ G3 I2 b+ [+ \4 ?4 D- #include "stdafx.h"
& \2 o( ~3 W# F2 X7 f' ^& I
; P5 `5 z/ X& v$ `' i- #include "tumo_data.h"
4 B" z2 \) P* m9 I0 i& o6 t3 `1 L0 w - & [; p) w: @* f
- #include "Database_main.h"9 W/ g' K8 s) l2 N. }, M
- 8 y' B% [' J6 [, }' ^
- 7 E& t% t g% U) e
) N# M8 E& w6 j5 J- #ifdef _DEBUG' q$ @8 ^. i: W$ }: [$ s6 W- O# s3 ?
- 1 n5 I9 b8 _) p6 }. G6 E& r" r
- #define new DEBUG_NEW2 Y s. f: u$ v* H: z* L
- 6 t9 ?' k3 M; L& m5 k
- #undef THIS_FILE7 Y* A( _# [& x; c+ D; M- c- K
- 4 p7 m4 y5 b: k N* Z5 Q
- static char THIS_FILE[] = __FILE__;1 ]& D8 W0 T$ J/ {8 C% p J+ L$ X! g
1 {2 g( J! b) m. s$ ~9 w- #endif
1 H* V2 U! B( b* ? - : ]( c( a7 U! s
- & H' R8 c [, s: d
/ A- ]% _* C. o% l$ _; c* `- // CDatabase_main dialog
* i3 h9 X- d% |8 h) Y
4 R, Y; @+ j- b" C" N3 q- CDatabase_main::CDatabase_main(CWnd* pParent /*=NULL*/)5 z4 @! K4 F) k! z) h
1 I' s; s; A1 Y0 M. x- : CDialog(CDatabase_main::IDD, pParent)
3 a W1 ]# J) W, g/ t% D
R: ?# x6 ?6 P2 r/ H1 w; [7 P- {
7 r ]. Z* @ ] F0 h/ ?/ W; o* g
' ]8 y P4 F$ a- u8 e, e& k- //{{AFX_DATA_INIT(CDatabase_main)
- K- C8 W7 C( m4 g) p/ i - ; y T. _8 @& y/ U/ n" B+ F/ Q
- // NOTE: the ClassWizard will add member initialization here
& z, E7 K }) @7 {1 {( A: X2 r4 `
5 f3 |$ F! T& j& \+ A0 v' v' Y- //}}AFX_DATA_INIT% H( ~* m6 ]8 K: ^; T) p% K) J
( a! u3 g# m1 s5 g4 i- }
+ C+ A% i# t) h - 9 s. p& w$ ]" W6 R& j* C
- void CDatabase_main::DoDataExchange(CDataExchange* pDX)
1 x1 u4 g6 Y) \6 b, c- d0 x; }& q
1 o- G v) Y& V0 ]: Z- ~+ ?) S- {- d) \% T1 N: J: P# ]
- 8 c: i! e C% {+ V
- CDialog::DoDataExchange(pDX);
( z1 T0 v# s) M" c: D! y; i
2 |+ K$ E. U a5 I- v) T- //{{AFX_DATA_MAP(CDatabase_main)6 E1 U. V( L2 ^, S
3 w, U2 C; Z4 a5 B6 J4 e" O! H- DDX_Control(pDX, IDC_LIST_PARA, m_list_control);* ~. }+ ^+ X% |+ c. P
- , D. {' Y$ P+ p
- //}}AFX_DATA_MAP
/ _7 i+ f9 b) k1 l
( V. S: E$ D6 G0 Y _% v" i- }8 X9 e. D" N8 W9 |% w0 r% e
- $ Y& A; m2 V! ]7 e+ e4 [; k7 d# m
- BEGIN_MESSAGE_MAP(CDatabase_main, CDialog)* |5 c* v& L6 k! J
( U8 M1 X8 Z% A) G! g- //{{AFX_MSG_MAP(CDatabase_main)
5 g9 b- I7 c% r4 h9 J
, Z2 w9 u0 @, C+ D5 s5 L- ON_WM_DESTROY()
$ J0 a, x9 i/ a4 `9 T - 5 R4 c3 L1 k5 }$ L6 H; H: t3 o
- //}}AFX_MSG_MAP
H5 J. R5 y7 |. N - / }6 w+ l* M+ `: }* ]
- END_MESSAGE_MAP()9 T! ~" p" {2 j9 ?) \5 e9 v
9 N* Z4 K" i) p2 ?: S- 9 d* t9 u$ k# T$ l k, {: s
/ i7 L5 v8 d1 M3 ~$ ^" D- // CDatabase_main message handlers3 ]2 E7 k' q5 ^9 l4 I
- 5 ^% R8 g7 r6 L7 F
- BOOL CDatabase_main::OnInitDialog()
# P/ M- E% X1 \7 o9 c v" }& S; q
: Z, F- t: W/ a# x4 T% k- {* r6 x/ ]4 \ z5 b0 F
- : d, h! q9 Y$ f$ N) Z; ]( }0 R |4 [
- CDialog::OnInitDialog();
' M4 Q p8 N3 p - 3 l. F, @7 q# J0 S$ v- M" Y
- 0 }& F( R! I! p- n
9 m2 R3 v4 ?- q9 y$ I" p% K- u- // TODO: Add extra initialization here. a: q. }/ m. m) C$ t
- ) I" K0 V' R# { O
- try{
+ Y! @3 _, D6 F( u - 4 N: B2 G$ B% H' [) E5 S
- m_pdatabase=new CDatabase();. a5 ]" X% L m
- / K/ D# S7 e% v% n' d
- m_pset=new CRecordset();
' K; v! { r+ s! S. Q
5 O+ l8 @: y2 Q5 O. }- ?; e- m_pdatabase->Open(_T("data"),FALSE,FALSE,_T("ODBC;DSN=data"),FALSE);/ h4 n9 \& H2 J
+ {% `+ e( L: q9 ], d% X- m_pset->m_pDatabase=m_pdatabase; 9 h0 C, W; T3 z. O5 `( @
# j8 O: m' {' x7 @- }4 _+ K- H7 E0 c
- # v; S! e& I5 v [: ]8 _
- catch(CDBException* e){
1 U, c$ L' m" m
$ O" x1 }* j* c! l- k# D4 u& G( u- e->ReportError();1 w2 b7 v) e. N! J0 `. Y
8 W' Y8 m0 ^& W. {8 H! l% A- e->Delete();
" x# { M2 _; W$ t1 Y7 G
$ G+ E7 Y5 _4 K' }$ z$ O- delete m_pset;1 n+ F$ M5 d; w& u
- + Y' z) T( T* L P6 ~
- delete m_pdatabase;* @, u7 c: n* b X3 j6 e9 M8 N$ }
, W( h: y0 y6 Q4 L/ v- return TRUE;}
% ]3 V' g3 O" u: q - 3 J8 U0 j! S- w: l
- DataShow("data1");7 h! b" g$ U4 X, A( s
, X R7 G; G2 I: g- return TRUE; // return TRUE unless you set the focus to a control. x2 [( a/ p# C2 Z" r) R
5 F) [6 s% a8 p+ @- // EXCEPTION: OCX Property Pages should return FALSE
3 x* V8 o+ s8 r# {# ^. \
( M9 W6 c8 l; e7 w4 f$ A2 @ R- }
, z0 E* Y- t+ q, i% D+ j
) I0 i P) P0 m# i4 {+ Y- void CDatabase_main::ClearList()( \! h. [& F- ^1 x' v# \ Q
8 N% h8 Q+ a( \5 ?- {6 X) ?5 Y3 [6 O0 N
" L; d) w" }8 e) S/ N4 ^- //m_list_control.SetExtendedStyle(LVS_EX_FULLROWSELECT);
6 D! Z+ s2 b, \+ W) I4 I - d0 V1 E' `( s& [ Z
- //m_list_control.SetExtendedStyle(LVS_EX_GRIDLINES);
$ F. `/ D0 K4 X) j0 l* v - ! \) S e& @1 C2 `" K: z
- m_list_control.DeleteAllItems();: r# Y* a8 a( u4 W
- 7 [. p) P+ p& O% Y' [
- while(m_list_control.DeleteColumn(0));) {8 j0 _4 D7 t& [0 X: p8 d7 V8 C
- e; q0 t3 E+ L9 L% a- UpdateWindow();' N8 R9 F% K* D! b/ _0 L) p- v
- & e2 g& \3 ^7 N2 l) r: U
- }
0 _1 `6 y. I7 B" q1 U - * K) R7 j0 u6 U
- void CDatabase_main::DataShow(CString table_name)
0 ?" @: W; w: J/ C. }+ X) p - ! Q9 ?+ {8 a# h; ^2 V, s7 n
- {
' U' m; i# l: m - ) X" U0 }/ q, W3 {9 c" h0 P! I
- ClearList();
$ n' Q, E+ V) P& B
" n( o1 R N3 F* l- CString strSQL;
5 V; F) b! v/ z" R( d; M
& U" d/ k% w# s/ e9 C2 L- strSQL="select * from "+table_name;
6 h$ n j# Q0 A& B - 3 B6 c) W! D8 V1 _- M
- ShowInformation(strSQL);6 h& D0 m' a4 X6 {" e
9 @; a w- M& [4 D: }- K" b% e- }
4 u. W$ [) \( X0 V
, m0 d& q) V6 C/ d- ) ~* L) X7 _( r" \; s: A
$ _9 U& o# \1 O9 y! w$ M" i( B% B9 j- BOOL CDatabase_main::ShowInformation(CString strSQL)* y5 s- E: f/ }! k* a( A# p: q5 K3 @4 k
$ j1 I1 w% ^+ X: C2 \( I- {
7 A$ D6 N; P1 O0 \
" u' R/ L- D4 a+ }- if(!m_pdatabase->IsOpen()) return FALSE;% I( h; D" C, k0 i3 N1 m0 d
$ M, N' |7 j' M2 }- if(!m_pset) return FALSE;) k5 ^+ f- b% _ s: `/ ?) W
- 2 L0 b% n6 o0 @; u$ u
- try{! Q2 x9 o. P+ E
: c5 ^9 K/ ^+ t/ O; L6 m- BeginWaitCursor();
/ i4 `8 f- H! [4 h M! v- o5 q7 n
4 b( T. i( F$ }2 m7 G- if(m_pset->IsOpen()) m_pset->Close();
9 E' A/ e. R' j3 E( X: f8 t; x - - u$ z. D7 T. ^: P
- m_pset->Open(CRecordset::dynaset,strSQL);
( X3 i E3 w4 V z
: a( l* z9 V$ u- B- if(!m_pset->IsEOF())
5 {# q' p; I- k; d. {" [ - ! `3 G- s. l5 f$ }
- {m_pset->MoveLast();
! e& }3 @% Q7 Z( O& x
9 d- Y: M; z; W4 N1 S, H* @- m_pset->MoveFirst();}
4 d$ H* }( p$ B) }% w j - ! q2 h" F0 j; @0 |
- nFieldCount=m_pset->GetODBCFieldCount();
7 U) `0 U: J) q; c( A - & R9 s/ O9 y! s, o/ G, v8 [* P
- CODBCFieldInfo fieldinfo;
3 |2 X) k3 \ F& O - 7 l, |9 O1 e' V
- for(int n=0;n<nFieldCount;n++){
: l8 s4 l! N0 s, o6 ^
) j& L8 P! r0 b( V2 |) u1 u# V$ S8 H- m_pset->GetODBCFieldInfo(n,fieldinfo);" ?' s/ h0 F4 N: X
# e+ }; L( ^ H. C8 ^- int nWidth=m_list_control.GetStringWidth(fieldinfo.m_strName)+35;( l% {" I! T" f# h
1 |6 Y" Y$ |: W# D t6 J ?- m_list_control.InsertColumn(n,fieldinfo.m_strName,LVCFMT_RIGHT,nWidth);
0 a3 {( {, A* i3 a; y
" @. o0 Y1 m2 F8 Z- }& `7 T) N, h- F
3 i4 V+ `: p! \- CString strValue;
9 C/ F/ _8 X [' r- @, J0 n
! x$ p3 g" _/ ^- u; d- m_pset->MoveFirst(); f, U Q$ Q7 g* C% p* y1 L
, L. b9 D7 U1 j) j- int nCount=0;
$ u! s2 G) C5 i$ R; O. z7 a# L
, C4 G& X! o& r8 g+ |4 {- while(!m_pset->IsEOF()){
5 k. W$ T2 m" e0 h - 1 f0 w# A, k/ j2 D" V
- m_list_control.InsertItem(nCount,strValue);
$ O) g, l6 `1 Q6 A0 a
4 C* h8 U5 h0 o, F- for(int j=0;j<nFieldCount;j++){6 |4 o( [& E2 J* O( W2 u2 g( w {
- + S- {2 R3 d3 f0 S: H
- m_pset->GetFieldValue(j,strValue);5 }9 y8 ]7 X" X# j
* R+ Y0 b! {. H! [1 D. |% T7 N- m_list_control.SetItemText(nCount,j,strValue);
9 {% ?/ v& O, H1 s. P7 c" N# u
6 q" c2 n% x7 r% s S$ j- }1 ]2 d: E" h- G
; @/ h$ x& ~ D) J `+ ]7 F- m_pset->MoveNext();; Q9 F6 q8 g, B6 |
' n3 E$ n2 l5 G5 C* ]5 [- nCount++;0 I- Y; i0 \7 c. b/ H1 N
- 8 A6 r7 z/ `1 T" l# O- p: o
- }' ~1 V+ {2 A# \: I! Z
- . }4 o* W- l2 ^& Y# q
- EndWaitCursor();9 y- @3 |0 M4 l3 K) o
- 6 f- \# H% B% M3 D
- }. _, }% V" w; k+ M
1 N; t' G7 @) V* \4 f- catch(CDBException *e){9 ?" M5 j5 w+ L8 N
: _( r/ ?* M7 _' a7 k( H- e->Delete();6 E( q! u9 \) m+ e( Z, Q
x( n5 _( ?; ~9 Q" |5 P- EndWaitCursor();! b* \& j$ B& z. S7 b
, W5 { J( H& ]- return FALSE;" d2 B5 H* j: Z- F# T
8 {. Z' H! g& f6 c3 n1 d5 j- }
; K7 W$ H& V% D g$ A
o1 A0 n+ p) c# G2 |" _1 P- return TRUE;5 [5 g9 v6 q0 x
- 2 L5 y" y: [# N( t/ R$ C7 `
- }# i# \$ m3 Y- q5 m" D# G: { Q
- + z& j5 ]3 f1 p( h- s0 ]: U
- ( `& O/ e+ w+ m
k2 @, N8 M+ Z$ p% H9 n' ^# y" ]& P- void CDatabase_main::OnDestroy()
5 Z Y# \/ {& s9 `
5 G. w* e9 O |0 ^- {
! {1 ^6 ?0 V/ V$ b2 A
' x5 m I" v2 k1 _# Z6 {8 P- CDialog::OnDestroy();; g4 w# k1 J2 A: G& \6 a4 L
- 7 d6 }& b# S; Y, r3 L5 P
- ; |$ C3 }/ a& n( i0 g5 p
- $ m8 A j4 @- G# T
- // TODO: Add your message handler code here4 k& x- R2 `5 L& b1 B) J
- : B6 G2 d8 ?' \" _$ E7 a
- delete m_pset;7 E, ^1 z8 B! M* g5 A) c
- 0 u4 F5 `. t7 r, f, Q; h; N
- delete m_pdatabase; a" }/ F$ g; P$ R6 [6 K+ e
- ?0 X3 O6 p2 {+ W6 x0 W
- }+ m. H1 q* F8 P7 q
3 k% r& b! d+ r+ _+ F-
' o" ~4 m. D. D: ] - 3 v3 v. D) \- f' `
- extern CString str[6];9 A" n* o: A/ U: Q+ f. y
4 n" r2 W4 K# X% p' }5 _9 U/ e- void CDatabase_main::OnOK()* [2 h9 a* Y! U4 ]
- 2 V) M: _7 Q' z0 C( q! i8 Y
- {' o% M2 j6 O u
- % M( b V( M/ D
- // TODO: Add extra validation here' m& G6 r! L3 m% N
- 0 f% o, J% `1 G9 }: h, K
- UINT uSelectedCount=m_list_control.GetSelectedCount();
% v+ t- Z' U- q* n, v
5 B3 s" ~/ E G! g% n- if(uSelectedCount>1||uSelectedCount==0)
& V7 X2 ?6 |9 e! T M - 1 T9 w8 P z( V8 t {# _
- {
+ A: Q( u' v7 O$ J - : ]& t, A N8 K7 {" M
- if(uSelectedCount==0)- F; m: ~& v+ ?. V1 I# K8 Y) Y
' Q p/ ~: o/ v. |) {) [- {
* G) |0 X& c$ m8 r2 H - / {$ k( f# t2 M
- MessageBox("要选择一条参数!","提示",MB_ICONWARNING+MB_OK);
& l7 C; A U3 d& D
3 Z7 _7 t: l3 a' M$ d- return;) Q8 a9 g% Y3 K4 n# }5 ~
- ) p2 g/ d1 |* K% T, U7 ^
- }( M' O! l8 y6 E! g5 [* d* A! H3 X
- # m& `5 {: R( O9 W. z5 ^
- if(uSelectedCount>1)* [0 y f* Z! U4 G# ^
- 5 n( C# d8 d |* e$ ]% o
- { 3 N1 m$ Z( d( |! L
' [; A( m. `( w- MessageBox("只能选择一条参数!","提示",MB_ICONWARNING+MB_OK);
6 U+ v- `0 m. J3 r) D3 T - 7 C' T* \1 @. }4 S$ ? F1 P$ S
- return;
/ _5 l$ {7 P9 }. j# ^. F
( m" _& R1 d/ `! i- }3 a! G" c" T, y
- 7 T$ n0 c7 F* M; W
- }
& A/ s3 H9 W: s; Q - s6 D/ h9 \2 P
- else% _; Y! L8 r+ h! u; q* O* v2 n
- 5 f5 K E, l; i* N
- { : \& B& T5 @5 l$ |; ]& K( R l
) M) N2 G* y! [9 p' ]$ H( w. X- int nItemSel=0;6 |5 s: }# i# n6 S
9 |0 @/ t6 Z: v( v- nItemSel=m_list_control.GetNextItem(nItemSel-1,LVNI_SELECTED);
7 R" s4 O5 i, ~$ x
! o' b# t. c( F! a f" n- for(int j=0;j<nFieldCount;j++)1 M- z0 b/ Q. [# F6 ~
- + M+ h2 f0 h4 [0 w* ]5 y* X
- str[j]=m_list_control.GetItemText(nItemSel,j);
7 a5 m: E' k& E$ ]$ p) H - " J0 f; ~* W. X+ E" I4 I
- }
0 M1 m ?# m: d! _
. u! e: R5 d4 P- CDialog::OnOK();0 q1 Q' z$ |# |8 U- \
9 M- L, a: Q6 F: {% G- }
- V! a# j, T' B! [ T6 c3 j
0 Z" j& Q, L$ u) c1 q-
# U6 k9 D! B7 `& c: x ]: v. z. ~
! a0 s" I# \, ]: c- n% I- X8 t3 Y h1 T$ L! L. }
! z& H% c8 \# e5 z-
2 h6 e2 M" } N$ ] L# g7 C - ; A" K: {! g* K; W
- 花键轴数据库的连接程序app.cpp
5 d( M$ g0 v0 W' ?
/ a: N2 V9 \* Y. {9 E-
' t. s2 z B- H, O. K2 s: y
8 S+ \- B i% Z- #include <stdio.h>
8 a' N+ `# j$ V' @) Y/ m1 `8 z+ S
9 D3 K+ _5 I' p6 d* y% D- #include <uf.h>, @# V4 T. f3 J( C; d% [9 `
7 T9 H* R* E( |0 J2 |6 Z- #include <uf_defs.h>7 j _ q! z, W% A
}* i6 g# P+ K* O- #include <uf_exit.h>
# [$ r8 Q L( T3 X% g1 k X: y3 L5 f
& P7 r! y9 B! J D2 G- #include <uf_ui.h>
9 Y' o$ T' P p! M* N
& a! Y/ U5 W5 K- #include <uf_styler.h>
6 i ~, D. g# T - , H% \( L. [4 ?$ L& _* C- R' B, J
- #include <uf_mb.h>
0 {+ T5 Z2 n* _
" [! J, I% s* z- #include <stdlib.h>
4 F4 y8 e, i- W5 x$ q8 U6 |; X
# d' ]& f; \! K2 S- #include <uf_modl_expressions.h>
' b9 _* B' X# ~ - 4 @: [+ \3 ]+ x2 S. ]( f
- #include <uf_part.h>
Y0 O5 E( N H' C3 L" c; K - " j( y. D7 K* H7 p
- #include <uf_modl.h>
: o/ x/ ~2 V0 t5 }: z
0 O' e5 B/ Y f, X, z- #include <uf_assem.h>
1 a8 ?, N& F* d/ M* Z- N( e; U - 6 t, h' n4 Q5 P: H/ H( L6 C
- #include <math.h>
F# x8 z& F0 d. w. B. m" I
4 X. e: B$ G1 R6 D$ v B1 {- #include "app.h"9 n C/ R) B6 w1 C0 c4 b# `
; e0 s/ O. u( m1 _4 `1 j R" u- /* The following definition defines the number of callback entries */! V5 `3 U5 H h# F5 c
8 @* N. {6 O. t: K" R- /* in the callback structure: */* ~5 x- q6 c0 H+ \
- ( ?6 C* {* {: g# u0 {# Y& `1 o) w% A! n# D
- /* UF_STYLER_callback_info_t APP_cbs */
: I. q9 U1 K, s; E8 X - 7 v! \7 a8 H+ `; ?$ D2 }- F+ [% q
- #define APP_CB_COUNT ( 6 + 1 ) /* Add 1 for the terminator */
- {: l; _- b) r1 l. ]/ |7 t
% j. r1 w7 K' j0 a- extern "C" DllExport bool para_database_func(void *str_mid);6 Q: i8 c) w4 d! P
/ a* u' ^) u1 ]7 O7 l( {! k- UF_STYLER_item_value_type_t data[7];
( B; l0 e; Y' Q# w" [
5 Q) }! @% p- t5 m8 r# A2 E& ^- static UF_STYLER_callback_info_t APP_cbs[APP_CB_COUNT] =, T' O6 q: i8 c' k
0 H" I/ V% e1 ~8 L% n- {, d: n/ O* x' C G0 A* m
- - ?' r; N4 b1 z
- {UF_STYLER_DIALOG_INDEX, UF_STYLER_CONSTRUCTOR_CB , 0, APP_constructor_cb},
& e# E- D. u) ]' ? - " R v' o0 K6 ^/ C+ Y: y5 t' i" V( P
- {UF_STYLER_DIALOG_INDEX, UF_STYLER_DESTRUCTOR_CB , 0, APP_destructor_cb},) m; J( v; p0 Q
- 5 P/ N* o2 J6 ~" ~9 @! q5 s& t
- {UF_STYLER_DIALOG_INDEX, UF_STYLER_OK_CB , 0, APP_ok_cb},
9 |! G" C! R5 s% i% X* R: q/ u1 E
% G( w$ a J9 E! r0 {- {UF_STYLER_DIALOG_INDEX, UF_STYLER_APPLY_CB , 0, APP_apply_cb},
3 a: A5 W+ y/ M& `) t! _3 X
9 _, v. @' C/ M7 ~8 S2 |( V1 T- {UF_STYLER_DIALOG_INDEX, UF_STYLER_CANCEL_CB , 0, APP_cancel_cb},! |7 P' [+ q8 Z' ^( U# R
- K# v: d1 G) r- {APP_ACTION_DATA , UF_STYLER_ACTIVATE_CB , 0, APP_action_database},
- W9 p4 s* d; Q1 K. Q% o; c - 8 o; E( Y# a) N0 K: ~+ {: u
- {UF_STYLER_NULL_OBJECT, UF_STYLER_NO_CB, 0, 0 }
4 P- c: m3 k' i4 v - 0 @8 r5 M& Q4 O
- };4 c) l0 l* c: V) A" F0 a) ^
4 |0 X# U4 G- v-
; J, P" d' [$ X
' n+ U) w) C! T! u7 n. B$ X# T# \0 T- static UF_MB_styler_actions_t actions[] = {
) e5 w; y) q' ^
8 D7 H% o8 `6 J8 o: U- { "app.dlg", NULL, APP_cbs, UF_MB_STYLER_IS_NOT_TOP },
# G) L9 _6 \* V; _+ X2 q2 { - 9 _5 @& M5 w7 U
- { NULL, NULL, NULL, 0 } /* This is a NULL terminated list */! W$ i5 l) U' z+ B! `: E
- o5 U5 a8 q" y; @% G8 {- };
! r. X( `% `6 r. X) I: [* ?3 a: i
) b$ U) o: e8 w, R+ b2 v7 Z$ p m I- //#ifdef MENUBAR_COMMENTED_OUT' k* X& F- y6 R8 C* M
* v8 b: a, v, V0 c, `3 h- extern void ufsta (char *param, int *retcode, int rlen)
; @- Q' {7 t' ? - . J" }1 ~6 M! r% R' |( ~8 V8 m& P
- {
" N6 {/ K' y1 {8 L9 s E! s& L9 H - & a/ j/ b3 I2 M
- int error_code;+ R! a; p% c" S6 L0 ^$ [' _$ y
% U2 o" ]1 b! s3 K- . o) s0 V* t. P; G ^- a
- 9 T9 E. ^ |# C2 L% o# }
- if ( (UF_initialize()) != 0)
# l. }4 i) {4 T3 [/ `+ Z7 F - # M6 q& g! ?7 l9 j
- return;" t* C# I" {: L C* V* ^
- / G) N: I/ U8 t8 \$ }/ ?$ f
-
% X V) L) n" Q - ) W0 r) B- Z# V2 l" D
- if ( (error_code = UF_MB_add_styler_actions ( actions ) ) != 0 )
* ^$ \1 x& p H$ d% B0 i
8 T/ Q. P' d( Y) Y- {
2 m# F3 }, y, u3 b
3 K1 Y2 `' ~- w, `4 t- char fail_message[133];
9 B1 M) K$ y8 m6 z X$ E+ ~! w; v1 M
* L9 g% C: O$ r) w0 m6 j- p" Y- + t+ Q% q: g" d
/ Q8 G, g* \9 d8 x- [2 y$ y- UF_get_fail_message(error_code, fail_message);
, c$ C. o( N1 W3 w l
1 x! T. n" r: m2 i* B- printf ( "%s\n", fail_message );
8 l9 w8 X7 q. F- d* _# g3 O - ' Z+ W+ l4 q7 t1 q2 E
- }
Z- b6 h$ O+ w- q; n; h9 b( H+ B, z
$ B& l" u9 r- | i+ Y& d) I6 a5 p- 2 h& @6 S4 T$ ~' n
- ; ]0 K/ D8 o' C. b, W1 O
- UF_terminate();
" a0 k+ P) Z" c# u! F6 D& `0 I
2 s2 k, j1 n4 O/ Q1 m- return;
0 `& r: B' `6 Z0 h* t
1 S$ e4 w, i; S. D7 ?- }9 L# ]5 h( b! e0 y2 G
- 7 T0 q/ h, k( \" T/ ~
- //#endif /*MENUBAR_COMMENTED_OUT*/
% B7 N# |! C% r/ y5 ~0 P& C* v2 B - " m5 p6 ~) A: s( p! ~
- " y$ X. d" N- `
( P: r7 u. `3 [& d3 [4 Y- #ifdef DISPLAY_FROM_CALLBACK. u" V- h: t8 ~
- ) B5 h C- n' J/ F, `% o
- extern int <enter the name of your function> ( int *response )
. n4 V! O; w# J/ V, k3 {$ y2 n - & _' L9 t+ c5 Y. a
- {6 ]. K. a0 n+ |1 l
- # E$ }$ [4 j; b
- int error_code = 0;
- o8 B" p' {& k: ]0 Y; x - * l0 w, |' X! q- R/ U" X6 E$ K
- * n2 C) _( X& i$ ?$ y$ o
: a! B) v6 q) P$ q1 Q# ?- if ( ( error_code = UF_initialize() ) != 0 )0 n1 F3 T+ m6 M" C* b* ]8 ~ ^
- ; M9 @$ b/ t1 M* z
- return (0) ;
5 b9 v% U1 i5 E- s3 L8 K - b4 O& F" r4 B% Q$ q
-
4 z- p& \9 Z: T+ { - . Z* {7 `. |9 d0 q& ^" {
- if ( ( error_code = UF_STYLER_create_dialog ( "app.dlg",9 o4 F: \) m* ?
2 @0 }) J. Z8 `7 I- d8 [% V- APP_cbs, /* Callbacks from dialog */
% {0 Q- i+ N8 \* f6 @, b% m - 8 X- d1 E& W" C+ k& e! l8 L
- APP_CB_COUNT, /* number of callbacks*/
/ j, s A1 J( g/ [9 _& F7 q# L+ p
_- M! }( z( o$ j9 v- NULL, /* This is your client data */* ]+ e# {# ]" d/ Q
- / L1 c8 O) o6 Z* ?% I( f9 [% n+ `
- response ) ) != 0 )
2 h( r$ u# _% Q" d* G
" X4 Y( N% z8 {0 i- {
, z: K1 A ?- R" _1 H8 ?7 u - % H5 h: S# Z) q2 M7 Q8 G
- char fail_message[133];
% _5 G3 k$ d/ k6 V - 6 Y8 }( g5 Q" N5 p
-
; D) @3 I5 V& c - & w' |2 @# O8 X8 x. g
- /* Get the user function fail message based on the fail code.*/. h5 a/ G/ O c
- ; V- H/ z) G) ]7 H8 p+ `/ s9 L
- UF_get_fail_message(error_code, fail_message);2 @$ A0 B. y7 V: w
- ! X& r% u1 F; d9 K
- UF_UI_set_status (fail_message);8 ?+ k% g) q5 B
" ?7 [# @2 u9 d f- printf ( "%s\n", fail_message );* r$ c9 U! G% G9 n
- ; g& p& g/ }0 }9 Z
- }
7 b2 u9 `6 o' t3 E - 3 a& N% a2 a" C2 ~, o2 g! \
- % ?$ l2 l3 q8 d! G: h1 K
0 w# z% Y, z( R( T-
( f5 i p! l# f! w: p6 m
; \. P, l' `9 M( j E# n4 h0 e! b- UF_terminate();
. G/ c- E! {+ m) U6 o/ k' I - - e# P; l) }, `2 ]3 X: ^1 x
- return (error_code);
0 m& O4 _0 }, u% \ K8 C; y7 j - 8 |" F7 G1 g$ V2 c
- }9 u! q# R" q X' R
- 4 k9 \$ g, [$ o& n% ?, N$ r
- #endif /* DISPLAY_FROM_CALLBACK */
$ l; Y. o2 w: |' X - ! G" e2 m( s: R, O
- #ifdef DISPLAY_FROM_USER_EXIT4 d$ E% \7 _7 T4 {/ i8 }
- 6 M7 A) l9 e8 t- H3 a' ^3 k5 m6 P
- extern void <enter a valid user exit here> (char *param, int *retcode, int rlen)
& ]% J4 A4 {3 X: n/ v2 U z7 N* Y
! b; e4 k: P1 T3 [1 x$ J- { f* g1 }; }: _: @" Q* Z% k
- 8 V* i0 k- ~8 M+ K2 a) ]% q
- int response = 0;
5 [1 X( C' [$ A, d8 f
4 n0 A* n2 C" ^- R. b* D. y9 E: P* t- int error_code = 0;
' ]) z! n* q, M$ g; B
4 `: q2 r7 V7 v. @8 N, _-
( e6 H5 w9 e& N5 J8 w7 r1 l* L - 0 K1 O1 q2 u* {; v
- if ( ( UF_initialize() ) != 0 )- L# d- ~& W; W
4 q( p# d3 R2 _2 y- return;( z7 B- V* h: [" Z* S! a) A# y7 g3 L
: S1 s! I8 C& i" e' L-
L6 {% R" e$ h% u1 X; o5 V
# _$ w V8 N; W0 ~* L- if ( ( error_code = UF_STYLER_create_dialog ( "app.dlg",. n3 Y/ R" b; d& _. M* r
[3 O9 z' M3 @& Y1 Z& i; U( P% \- APP_cbs, /* Callbacks from dialog */
+ _" j1 B5 J; G/ I7 K. Z, l& \ - 2 w: r5 {3 u ^1 ?1 Z
- APP_CB_COUNT, /* number of callbacks*/4 K2 B" i) Y/ _! N5 ^3 c! V4 U
- ' X0 f+ O3 A' \. V
- NULL, /* This is your client data */
3 s+ W# Y( `/ S, U - " t$ _& u' b. k7 e6 X
- &response ) ) != 0 )% t$ p, @# ?+ W1 S
# q' ^9 E, q Y7 \- {
$ S1 ]3 d2 c( A# g4 H9 z& B
$ P# V1 o. q+ ~/ ]8 E! H- char fail_message[133];
8 R$ V% `3 P5 X- ?4 t- ~
$ c& X! v! v! y9 P5 g8 V% L3 Q& U; e- # v8 e* ?0 m3 C% x
- / r; j# H7 _, A+ p* l% x
- /* Get the user function fail message based on the fail code.*/
+ M% t3 t+ B2 ^4 X
% n! [! m# @9 S; w& @$ Y, j- UF_get_fail_message(error_code, fail_message);
/ J. c4 X5 U* O ^ l9 [3 d - $ _4 R( G) x2 b) b, t- n+ F
- UF_UI_set_status (fail_message);
2 X! A" P. R& o- [6 M! _. I
, }6 q ~1 M4 e0 n* {8 j B- printf ( "%s\n", fail_message );2 w& f7 t7 v: z$ ]
- # G7 j& h) t/ R7 S8 _3 [8 k) \
- }8 S0 M: I, q+ @; e) ?# y" A; r& H
2 d1 T# b' V8 p-
' v, I& W9 y$ y
1 R$ v2 D: j; D) R' b-
8 j$ x# b: O X
4 _* Q4 A) W3 [; B- UF_terminate(); 5 v0 c. d/ k& B# ?8 y# q
4 v' e& @) M$ n0 e/ z- return;$ K9 u9 ]3 c1 q- R0 L
- ) d( z! h, y0 X* w& L) f
- }
7 L% w' E8 ]. z- h+ T
4 r1 F2 {" n. n9 I; `4 g- / u; o* n Z$ B j8 C
( D7 K7 P8 @" P0 J8 t2 d- extern int ufusr_ask_unload (void)
; K7 i3 ?3 I& t6 v - 5 I) ^# g3 {/ H: |% E
- {
. D" \1 K0 ]) W' S( H
6 C2 ^+ T7 @" a) B3 k$ V- /* unload immediately after application exits*/3 E: O' ~5 U' d; Q" P
9 R7 l- Z' Q9 Q0 K# k; N& _- return ( UF_UNLOAD_IMMEDIATELY );
; O& c7 p$ |0 S- T' n& A$ H
3 k! I4 ?* i% L9 n4 H- 5 m' `5 ~) y# Y( q4 N+ Q% Q+ d1 S
- * \: o# W8 o% {* Q8 S
- /*via the unload selection dialog... */
- O2 Z1 ^! [ p$ L8 T1 a - . }4 z, T* r3 @* k" d# J5 x, B
- /*return ( UF_UNLOAD_SEL_DIALOG ); */2 i8 j3 n" U& s; f
- 3 k* a% o+ }3 \
- /*when UG terminates... */
$ C4 Q* n) l3 E) M3 R& W2 K
$ f, V, F8 H4 w4 I' v& ]- /*return ( UF_UNLOAD_UG_TERMINATE ); */
/ a6 v% ^+ @$ k1 ^* ` - 7 }8 G8 h% D! C9 @/ @ N. _. x
- }, |! Q+ O6 ^# ?3 I' Y7 C
( M5 f/ W; _1 m8 z i- extern void ufusr_cleanup (void)! {$ c* B. f6 K" q
- 2 g, P) _0 W/ D' g
- {
+ H3 O7 v( B: ~+ ~ - - h3 E4 U8 ~% I* k( v3 l& Q
- return;
/ C9 R1 f- G# n5 n$ q - + R% X1 d. @* a, T, @# e
- }& ]) ]" l, u- c
- ! A, l( r# c+ G! Z( G. M
- #endif /* DISPLAY_FROM_USER_EXIT */% k1 f" e7 W* Y( m" M7 c2 ]. Q
- . Z( H; I. e8 d$ Z/ _1 ~
- int APP_constructor_cb ( int dialog_id,
+ Z! n, g' z8 I' Q q0 c" e+ ^ - ; M, W1 X" F" b' h8 Z
- void * client_data,
u# ^* k5 b3 B" T" I9 h! a& K - 7 f0 L! ]" M# Z3 b3 g
- UF_STYLER_item_value_type_p_t callback_data)7 [2 q2 \) Z2 W3 j$ ^3 R6 M# \& Y
5 _; q/ F) ?( O6 r. K6 T- {
0 q+ Z8 v' e+ O) v - 2 G/ j2 E$ H! m$ M6 ~) s9 V# G
- if ( UF_initialize() != 0)6 w" P9 q% a7 j2 Y* d `
- * l* k! @3 P0 N$ }
- return ( UF_UI_CB_CONTINUE_DIALOG );9 y+ y6 }" ~* r
- * y! p, V5 P3 e
- - l1 z; ?& c3 o
; F. |3 S. F7 Y; P) I: c- 2 e$ [( ^$ z) H r+ d
; ?% [ G9 Q/ R) C- UF_terminate ();
, n C$ D1 v+ ]) q t6 x$ T! i1 _; o - 1 U; X9 u% l3 |' b
-
5 l& I$ [: I* {5 _( [
* q5 m0 n& k- T F2 |* `- /* Callback acknowledged, do not terminate dialog */
2 Y+ z. A0 h* S( ^+ u, P - : @: y! N/ j' W
- return (UF_UI_CB_CONTINUE_DIALOG);
3 E( e) V$ F2 K8 u$ Z( j
' S$ W9 d7 x3 k4 W- W- /* A return value of UF_UI_CB_EXIT_DIALOG will not be accepted */
4 e3 v* S# n4 N8 A- [. D0 E
- K0 E; A: r* y3 ~- /* for this callback type. You must continue dialog construction.*/4 V! a {! t* R6 l" Q
" m1 H5 ^0 C0 c1 m* J- 2 t# q! A. E& A
3 F2 j% c- U. J: ^- r' X- }' i, \. M2 C" Z: b `7 z' O* B
- 5 @, h( V4 H7 E
-
. y4 z" P% j) i, Z - ) Z2 \4 n' O4 d! Q
- 1 V5 {7 r+ z. E
; i' |+ |' S# z9 q7 R- /*7 V& Y) @1 @( `
* F% |/ [: u. q& X- int APP_destructor_cb ( int dialog_id,
% [0 R" j) w. V3 [! N3 X- v - : b. o& P( |- r# {( t- q
- void * client_data,8 t$ \7 X; P" j3 Z% u/ p, r
- % R# u3 t: y8 K9 d+ e# p
- UF_STYLER_item_value_type_p_t callback_data). q3 N: E% _, R& c8 L1 l7 p
3 I, }+ A) f) t+ Y- {
( J' h( T' r2 U$ \6 e v- r - 2 x. z, ~0 t& p# Q( |1 P0 z
- /* Make sure User Function is available. */
& Y9 K; u: `% b+ \' C
+ v- F9 P& [1 c% b- if ( UF_initialize() != 0)
" E( n* J9 l! J5 a4 V2 T - ; M1 B x7 p( s5 H# U
- return ( UF_UI_CB_CONTINUE_DIALOG );
' i# f' l! ?/ E& M6 R
1 z S8 w o# i& g& M- 1 a+ h" Y- m8 i. m/ C3 z/ C* `
- + Y5 Q/ M: l' H
- /* ---- Enter your callback code here ----- */
& t, C5 D) `% V& ^ - 0 S v2 { K3 [" K* n
- * E, t$ M1 X7 |1 K! j$ h- P
9 k+ J) v5 C( l+ @5 G- UF_terminate ();: X/ X. i. Y- G3 {( K' h
- a) G8 t6 p" g, w# F7 b-
" T! r7 _( y" D9 I/ ^" Y; N: | - + w1 ]7 I/ S5 I' Z( ]
- /* Callback acknowledged, do not terminate dialog. */
" o6 S( x! ~+ [0 ]8 Q - 0 `% o4 ?3 i! n$ O
- /* A return value of UF_UI_CB_EXIT_DIALOG will not be accepted */4 [! N( X2 s% t# }( p+ F' F; |
e4 V6 Y _- q( |, z2 N3 G- /* for this callback type. You must continue dialog destruction*/$ `' W; ^1 x( {+ w1 N
- ; X0 O: Q) |2 b+ k9 e/ p* ]
- return (UF_UI_CB_CONTINUE_DIALOG);
! l6 B1 x7 ] n `2 x+ H - 0 d0 C; \# a S: Z
- 3 Q' A$ z6 x( g$ n) R; M8 E1 v" i7 l
- . P# R- f9 d [1 N3 c" b# y
- }
- ]# L5 @0 w' G2 @% Z( e
) f6 I! t$ J( W2 d- , S% G* n8 m) f5 ~% y
- , \8 c9 q$ @$ |2 z# g0 S
-
* R: P4 X" o$ A - $ p8 F C" a. X7 B) }
- int APP_ok_cb ( int dialog_id,
! d/ P# O/ U: Y m* @; y - $ {7 z3 e2 f* L6 }! F& M' G
- void * client_data,# t4 Q! k9 o7 g; S5 f1 _% J4 p
- / ~/ f0 ]$ O; f8 ]( k
- UF_STYLER_item_value_type_p_t callback_data)
" f" f! U- q: }# P/ K - " v0 h1 Q8 c0 n! D% H& T& P3 o
- {
$ b8 d6 ]' |" N0 U7 s - 9 X: S& [$ C# t7 u0 _. o# T: Z! G; d* H
- /* Make sure User Function is available. */ + Z9 `$ b2 r$ L5 s7 u+ ?) u m3 c$ P
* v6 N1 B# `0 e6 I3 n% g# j- if ( UF_initialize() != 0)
% _& D) e5 `. ~
0 a$ d% [1 c, C& r; Y- return ( UF_UI_CB_CONTINUE_DIALOG );0 U3 `8 Z9 a+ \* I) p
; i( ~$ U/ P% X g4 L' F7 y, j' |-
; q5 w# V0 A0 {# z5 U8 g: N, q - ! a2 n: `* z) r; C
- /* ---- Enter your callback code here ----- */
9 u& w9 y+ j3 ^# Z; E
j; c: ^* n( B$ e8 z& a& k-
2 k" @/ W8 [; `; X
& F5 j" l4 F1 v. S9 S- int i;
1 a& B$ z- M' s
, \8 G" p H9 x7 c0 e- write_para(dialog_id);
0 u% w+ A2 Z' r: y+ C7 N - + z! N8 P; g3 | w8 k+ s* g& e
- const char env[255]="UGII_USER_DIR";
! [) s; `" I2 z" f0 Q) k, E* D1 O- {
/ x$ u- f% C2 N% J; N `" R9 [/ d/ L- char *basedir=NULL;6 ^. X- u' s9 F+ d7 a
' M B& Z0 d6 _3 ~5 A+ @- basedir=getenv(env);9 {4 l! n. ~5 F' t( d
- 7 G( i/ `7 o4 n
-
( r3 I9 I) k/ U v, }* J1 W, H; {
( H4 a0 ^0 D/ i' Y. e: ?- char dir[100];, l( ~, ~1 _7 j% d4 _; A
- & k) ^, z6 K2 y7 ]6 l* a! v
- strcpy(dir,basedir);
+ X* h ]% W" m. h
/ P4 W; i; L* A6 z: g- strcat(dir,"\\grip\\huajianzhou.grx");
- j: o+ W1 {1 R# x K
+ R: P8 F. a* \ P- 1 x2 d9 U `+ J: z! N1 N" y8 N& @
4 [2 n% p; e4 @+ X! I8 ? e1 v- @- char *grip_exe=dir;; v8 G+ P6 p- u4 D. |6 i1 s& b
6 D1 \6 ] V: y- int status;5 r& E$ B; r5 z, k, P
0 ~. r* S" a5 C- int grip_arg_count=7; //参数个数
" k4 G" h2 [- J$ g/ @) G4 V+ }
5 L3 x5 x4 i0 [* w3 K- UF_args_t grip_arg_list[7];0 O% {" t/ Z8 ~' z" T0 J8 ^$ [7 U3 l
8 Z+ a" ~* Z$ s H-
9 {0 v5 K- O( ?1 Z9 E, Y - ! R( M* e; j4 B1 C; S
- grip_arg_list[0].type=UF_TYPE_DOUBLE;
V2 S0 P$ b0 ?0 E. L1 W
6 A" Y; |9 H6 h |4 g- grip_arg_list[0].length=0;
- N3 X; w! n6 H/ u - # C% z' N/ q4 L: X/ D
- double fdat=data[0].value.integer;
' \4 i; q% u7 m. c& l- ~
( E& b" K( t$ q- grip_arg_list[0].address=&fdat;- }- z0 Q/ z9 N& t6 b, e) y+ f
( ? u0 z6 Y) c( ^9 Z- T. E) u# R2 G1 {8 i2 m- n
- ; x( Y3 B& q. K% _- }1 ? U2 x3 B% a
-
2 T. K& J4 {& r8 ]2 p0 q - ( L" d$ r( z; R# j5 @& u+ M- {
- for(i=1;i<7;i++)) I x( T+ w& q0 O
- 3 h2 F+ Q' R. u6 U, F( W& f* |
- {; G+ B2 f$ B% K5 [# y( \
8 j, ?; a+ V- c6 g. \- grip_arg_list[i].type=UF_TYPE_DOUBLE;& b5 ^, H1 @7 b
- 6 q( l. @8 @; [1 z
- grip_arg_list[i].length=0;
. t4 f$ r) O, D# n- z
; L: z1 W/ J, }+ ` Q5 L; y- grip_arg_list[i].address=&data[i].value.real;" a+ _) ~5 Q: }6 n5 y% E% Q
- 8 f2 h5 b$ |2 Z3 r8 c: C
- }
" y( {& u6 u, V$ N2 `) D8 z G
8 F+ Q5 T" K# i2 k- 2 E5 S) n& ~; S& J
, H9 H; a3 Q8 \$ ]0 T- status=UF_call_grip(grip_exe,grip_arg_count,grip_arg_list);
* F. ]* p, s( f( T9 \7 D8 L
, j2 q" o2 g! B-
8 `& L2 R9 K5 l2 M" K7 V
* V5 q& p' u# A$ R0 S( ], ]- UF_terminate ();% E, ~+ E$ `% X$ S0 L% q
, z# o6 n( d% d k-
6 n$ k: D0 `0 V) n* n: Q
4 y( B6 W2 @; i6 V6 M h0 `: Q- /* Callback acknowledged, terminate dialog */' z( {( p$ V* z! U. N$ S
0 M W% c0 p* ~* E* s! M- /* It is STRONGLY recommended that you exit your */+ Z3 ?, O, `6 i; B" @. I* \
- 8 {5 B+ E% ?2 \
- /* callback with UF_UI_CB_EXIT_DIALOG in a ok callback.*/1 H8 F# _# z9 }, p4 K0 q
; [8 F8 G, A& Q" H- /* return ( UF_UI_CB_EXIT_DIALOG ); */
5 V* @0 M' R: ] - $ r- ]" Y9 \/ y- e7 } q0 ]; F
- return (UF_UI_CB_EXIT_DIALOG);
$ l) I8 n' ?6 |
$ B4 }, L# V! B& r0 w# t-
2 ^# y8 s0 s5 D
7 W( t, A' ^: j- }
5 ^$ x; W, D7 \" d7 Q
0 W3 H0 ~+ {6 `% w- 7 m/ {2 {# ~, a. M1 J
- , l. Y: e z, R( |8 Z
-
8 I% T; D7 O0 e3 t9 t
/ ]: @3 [8 G0 [$ S- int APP_apply_cb ( int dialog_id,# n3 F f) x7 X+ d8 o, ^3 k) T. f
- * K: E' D0 K+ F+ l+ i
- void * client_data,
+ f8 G- h1 R, e3 Y
1 U" o6 z Q! k- UF_STYLER_item_value_type_p_t callback_data)- t- u# o1 G4 |
- 6 `0 S' m5 d. v: p& p
- {! n' v) ^9 c2 @
2 _$ w, O+ }5 d) L0 T' s0 a- /* Make sure User Function is available. */ * `9 D+ x: n- Y
& G4 h6 i y: e) b N* M" y) R4 z; U: E, @- if ( UF_initialize() != 0)& U0 w( k Q/ a% n4 x# ^( T8 W
- % `0 z, [" H1 x E. [) k
- return ( UF_UI_CB_CONTINUE_DIALOG );
9 J+ J5 \3 K3 u/ e% j# Y8 o8 x
3 G/ K/ e ]/ b) J! |* [& S b7 [: c- % `/ U4 W1 S. }/ w# }, F0 B
- / T6 n3 V8 f8 n8 ~6 N3 s
- /* ---- Enter your callback code here ----- *// M% E2 T" ^( O* t3 n) X
* U; b S/ H+ f7 U8 z+ s% w- int i;
1 w9 S+ V6 u5 ^2 g5 d' o- \0 t - 1 M4 [) K9 E3 f+ J; |: z* q
- write_para(dialog_id);% S) @4 A' X$ e: ^" Z( @
- ) O4 N; J' l/ I! I: s8 w5 X
- const char env[255]="UGII_USER_DIR";
, \, M; r8 A5 z9 W0 a/ @
' m! m; E5 V# F3 D- char *basedir=NULL;
9 E, v( m! }# M% s M$ E* | - ' m" p# c' c& ^5 R
- basedir=getenv(env);
% R* R( W. l' P1 Y" W% l - 8 a( `& H' B& _
-
# D! F0 C6 @! b& E! |' S
8 j1 [1 o! S4 }' j% k1 N- T( X/ F- char dir[100];$ ?+ p5 A/ w" R7 |, w) e
; l6 N" o9 y' Q$ u O. Q: V0 @- strcpy(dir,basedir);0 Q& x$ [# e0 ~5 l: e7 D
. o5 A+ d+ H. n1 y) X1 t J( Y" }" T- strcat(dir,"\\grip\\huajianzhou.grx");
+ G( R# Q1 @! Z# ], \( l3 s# F
& X, M3 w$ ^* s D-
' t- y$ p0 @, u. X5 X+ Z7 d* j9 g' o1 D
. v; f1 J2 Q9 N9 N+ Y& a- char *grip_exe=dir;
/ F) n0 z8 }, o7 e - 4 _7 @$ P7 ]4 I3 X0 }1 l
- int status;
8 T: b% c# K5 |+ J/ _
$ D+ l& W4 F& h5 y0 o/ j- int grip_arg_count=7; //参数个数+ U( s" j& u1 \/ H! H6 ]$ p
3 D2 ~0 A+ N @- UF_args_t grip_arg_list[7];$ G- J2 B, f8 Y8 u6 C
+ ]6 H1 Z; W9 \$ ]- ! Z2 B$ S- U5 s+ ?8 K' a! a! [
- " ]* [0 V: x5 B- B
- grip_arg_list[0].type=UF_TYPE_DOUBLE;
* N$ K! f' ~. [# ~4 c
/ D. e1 J; ?" ]- grip_arg_list[0].length=0;& U7 [5 c6 y( D8 J* D& k
4 w: ?2 ^9 C2 d( u! J- double fdat=data[0].value.integer;
, v2 l* c1 Y9 F0 L
9 Q% U5 ]1 Y3 E! ]& g4 g. q- grip_arg_list[0].address=&fdat;0 P5 e# V, {1 e, ?# T
- 5 n6 V# Z+ Q; V1 w+ J+ H- E
- ) f3 i0 H3 h1 Y4 Q7 F2 L! q2 F( k
$ u0 e e) r @2 s2 {6 e-
6 _& l6 r- w w# n% t7 F% \- s6 | c
# c1 Q3 P+ C' q/ B( }- for(i=1;i<7;i++)- \( ]$ D. Z7 F: a
- - z9 x5 Q6 ?% A: e$ u
- {4 o6 f9 R! g% u% e9 a
- 3 L) F% m! R4 c. \% L3 ^) V$ p
- grip_arg_list[i].type=UF_TYPE_DOUBLE;) q6 n4 T- J! ?
8 E8 I {" A5 N, s- i/ ~- grip_arg_list[i].length=0;# d: @7 \* e( j: I2 o
- ; @, d2 h5 @( H+ l. z1 s! |* z4 O6 S- m
- grip_arg_list[i].address=&data[i].value.real;
o6 G5 d: G& q" n t+ h$ W: N - . r3 e4 k, `" B
- }
0 k' E ^2 ~: @ - 3 w% W% a0 h! [7 }# v4 A4 d
- ' o2 J/ m: j' G5 F2 ^% b! l
- 5 e( C d5 E3 M9 q' n/ }8 h. j
- status=UF_call_grip(grip_exe,grip_arg_count,grip_arg_list);
* c# S, Z1 K4 V! X
' Q$ I/ o s0 R2 i) Z3 {1 L0 ^( }7 _-
5 x- ]% ?/ E. g/ B5 h
; y/ n. ?( i7 w- UF_terminate ();
2 A' ?" P2 o2 f( Y1 q/ G - % ]+ H. y5 `! D6 T! J; b2 K
- , \/ l. H: }+ @7 o% {( g3 w. g3 i9 x
- ' X; W7 x9 [% h' z3 v% d; j
- /* Callback acknowledged, do not terminate dialog */' G* e( j, e! C1 M
- . }6 T/ O& a+ Z$ }* a- r# X
- /* A return value of UF_UI_CB_EXIT_DIALOG will not be accepted */
4 J1 u. n! R. y- Z, J f - ' A' Q3 a5 W2 K& @ K# ~ H
- /* for this callback type. You must respond to your apply button.*/
6 p* I0 u! b3 F3 w9 _5 G - & @* {: a$ H' x- `! O
- return (UF_UI_CB_CONTINUE_DIALOG);2 O1 E8 j W: E
; @: J4 H( { s+ m; ^; L& s% \- $ n$ f; C. f$ K$ f
: w+ V$ T8 n; b) l/ f- }8 }6 O+ T; Y1 g( O6 o" { ^& |
- % \$ B% R0 |3 n9 V7 a
- void write_para(int dialog_id)% y; ^- G. Y. f* Q) ^
- 3 U+ }) U- _8 h7 ^! z
- {
" l! x- o- }4 d1 b
0 b- B! [" C' L% S5 J) j- data[0].item_attr=UF_STYLER_VALUE;
3 {/ o3 F4 w6 [/ _) {; f
" m+ O/ T; u" C" S- data[0].item_id=APP_INT_N;2 U5 X y! B: g. S0 N
2 N5 U4 P4 E6 f$ o( P. o+ d- UF_STYLER_ask_value(dialog_id,&data[0]);" g) @0 L6 _9 g6 t
- - A' |: X* D. Y6 T
-
, z/ Z1 r. C1 a& v% V+ ]! v2 [+ q - : B" ?! D2 D- u7 s! c+ [
- data[1].item_attr=UF_STYLER_VALUE;" u: m3 e- ~# K Y
- @" Z0 _( ~: c* ?8 S6 s- data[1].item_id=APP_REAL_D1;
: E, D4 T0 [$ o4 s0 j
O- O$ X6 n) Q! A' n) B- UF_STYLER_ask_value(dialog_id,&data[1]);
/ Y, n0 F& B; _& J+ e/ }
6 S; _; v4 U: z, f% Q6 @0 H' a- 0 a9 `6 p5 m3 q9 n
- ; H' z( k1 H" F5 t V
- * z) h* a0 C2 {& ]
- - U, J! _8 @, n4 d, _
- data[2].item_attr=UF_STYLER_VALUE;+ q7 B7 B& W4 D( k, e9 V
- \5 @! u Z1 T' C6 `8 c- data[2].item_id=APP_REAL_D2;
) ~5 D2 T/ D& h+ G
7 _) k4 \* N* a q7 @- v* f3 E8 K- UF_STYLER_ask_value(dialog_id,&data[2]);( r _, i! ~7 Z6 \/ \, }
$ e' |) v+ g7 n1 H0 t-
, L' k$ n4 n* `3 }
1 f7 U, e. J7 D4 G) s- data[3].item_attr=UF_STYLER_VALUE;5 M8 S* ]- q1 d( c. m/ N
* R4 i7 J4 v$ O& W9 I5 _) V1 p0 r- data[3].item_id=APP_REAL_W;8 J8 P+ Q! S, k. N" v1 h/ ]% J
- @: n* p( y: O5 W& M
- UF_STYLER_ask_value(dialog_id,&data[3]);* x9 n7 f, ?# }" D. D& w
- * @+ E$ _' X# Z5 E( Y
- 5 T; b' c9 q2 N7 X7 m! z$ J
- % j& f6 X6 B+ E& g% @, o3 K
- data[4].item_attr=UF_STYLER_VALUE; c, ]& K1 E9 t$ J3 V+ E' O/ P
3 w4 V: A0 n. S) d' H8 j- data[4].item_id=APP_REAL_K;1 j5 S- {0 H8 A: G- @$ Q c9 {5 X* y
- 4 A- A3 S3 l" J3 h" U
- UF_STYLER_ask_value(dialog_id,&data[4]);
* @# X" k& n% H ^
9 [- l o& t6 j6 o- data[5].item_attr=UF_STYLER_VALUE;, v3 Y2 A2 g; [% B6 F2 O
- - g' E0 ~% D# l) b9 }$ M
- data[5].item_id=APP_REAL_L;
9 p( |* T8 \0 j - 2 x7 Z, f/ M% E: D% N
- UF_STYLER_ask_value(dialog_id,&data[5]);
; R0 o# M- j" p. C. b
# F! d2 `( v( L4 V+ \-
' r' P% S* {7 |& V* `* ]
7 q/ ^# Z2 M& E1 g- data[6].item_attr=UF_STYLER_VALUE;
" A& T ^) r W$ u' L! Y - , q8 p/ M @; n( @5 E
- data[6].item_id=APP_REAL_LL;$ i/ w$ d0 x( ^3 a8 I0 i
' b( @4 ]( ?/ _7 x5 v1 X- UF_STYLER_ask_value(dialog_id,&data[6]);7 U& X! v* [2 e3 ?6 L: _5 S2 p4 v
2 @6 h8 a$ h+ I: Q: J4 W Q- }
1 \# R7 K8 z i& A/ j4 g - ) {$ z9 D# a$ K4 F" J1 f
- $ o- ^) I+ ]7 u; Z/ I5 j1 a g
- 5 I6 x; P( V" [& W, w, \# o
- /*
8 u4 F8 V5 Y7 \$ O: x - & ]7 `3 S2 K6 H2 o
- int APP_cancel_cb ( int dialog_id,$ N$ P( A/ P. Z; k5 q( x
- 6 S( s: d% [0 b1 U3 F
- void * client_data,( F$ d6 g& P5 A( M# G
. M; ?: F; E$ Z- UF_STYLER_item_value_type_p_t callback_data)
% [4 @$ ] a" Y, I* v - 3 e+ k" D5 ?1 K
- {
; s; z- y# E& X( h. H( g0 w/ M5 s. K
! b$ ^' i/ q, {- /* Make sure User Function is available. */ - J! w+ Z& p* w( @* ~ h
- / v+ c5 [) P6 T5 s# j4 `
- if ( UF_initialize() != 0)
' Z, e) u$ l% c2 F5 H: w8 W - A. C+ U% b3 P- x5 ~5 e
- return ( UF_UI_CB_CONTINUE_DIALOG );3 E Y( f4 J7 p0 \$ S3 P4 C
- ) |. Q* U1 t3 {: [, ?
- , P* y/ d( T( V [+ c* I3 t7 v
- 7 ?2 i. `, `) k" l2 _, h
- /* ---- Enter your callback code here ----- */
+ ]7 R9 @, O) d6 O. G* H - ; V) G) v, G2 H9 W" _- D
-
$ Q' H0 K0 t( A" g - # _- r" n. s8 q& w6 X& n
- UF_terminate ();
& y3 M6 q: ^5 k7 B( b' T - " |: m" x5 R" j) d! g" a
-
1 {$ m8 t: F2 g3 g" g. | F - : K7 U' K' S; I* ?
- /* Callback acknowledged, terminate dialog */
3 b2 M4 {. S" v0 k1 m8 I - 1 {4 l* J0 ^% {1 v: ]* W D) A% i
- /* It is STRONGLY recommended that you exit your */
! i3 t7 G3 m! V& p( }
B1 M9 b) i: M9 n, a0 V# k8 k- /* callback with UF_UI_CB_EXIT_DIALOG in a cancel call */ r0 V9 x- y$ I- }: o$ j
# o3 ?1 o/ L1 r! V6 u X' D; U- /* back rather than UF_UI_CB_CONTINUE_DIALOG. */
/ R& ]8 P5 O" U! b7 _$ ?8 l - 0 Z( t. d5 A1 B& }3 C, }
- return ( UF_UI_CB_EXIT_DIALOG ); 5 Q/ `% b' S/ Z: i$ o$ C, O
! p( c2 S' n% i* ?2 \1 z-
1 @) y/ G4 v$ R" H+ A) E. ]
+ @* g4 U; G* W# R- }
, N7 D9 u4 H5 `* q1 G/ U - n2 Y' L5 v( l! s
-
/ I# F9 ^& z9 o6 X5 Z6 h - 9 C) t- }! J0 H+ n
- * {' ^' t& x* X! r4 F8 R: v/ B a
- 3 p, w/ d/ q Y
- /*
3 V/ C' B2 E5 |" q( z4 t - 2 S* d; d6 Q. J8 x9 }
- void read_para_from_database(int dialog_id,void *str_mid)
, J' l0 }, |0 v9 G. M1 Q# Q
5 X: u( U& X p3 t& H- {
( l. I5 n; n/ W P, S- [
# X: k$ ^. ^8 K2 G0 e- o6 U( z- /* Make sure User Function is available. */
2 v- P5 [5 n5 L7 r r/ R
' @9 ]. g6 ~3 b3 Z# T- /* ---- Enter your callback code here ----- */
8 S: J3 A7 B' i0 C - ! @( n6 u3 V7 D) `
- UF_STYLER_item_value_type_t data;
' F+ c1 }4 ^' _: C; n+ n3 `. w6 W
( h- u" a* s8 q& [. s0 b" ?, A" ~-
; n# m# h) ], m* R9 z1 O
$ u6 `3 u. Y M% G0 v, Z- data.item_attr=UF_STYLER_VALUE;) S$ ~$ k: i# d
" `& O+ e4 r) Q- S$ D/ i& w- data.item_id=APP_REAL_D1;
! _# Q& I5 B: e! f7 x4 ~0 z H1 K - 9 [" m' D# ^ ]1 r4 Y
- data.value.real=atof(((char **)str_mid)[1]);! B5 ^; F ]% w% B( x0 G3 o0 P
4 W: ]% D: W1 m- UF_STYLER_set_value(dialog_id,&data);
( o# G+ N# n8 r3 A0 E3 O* {( x% A - 4 w' i5 f8 F0 Q2 k( w
- UF_STYLER_free_value(&data); ' B$ ^: i- C$ h6 n2 q% s; ?' L& R
- + b6 D( ?. H- M: h
- data.item_attr=UF_STYLER_VALUE;& V4 ]+ u! W7 t" F" t3 Z( k7 j
6 R# ]& P# g1 P- data.item_id=APP_REAL_D2;
* i5 C$ }8 _0 J+ V7 E# {
( j4 C S3 k2 r; B* J/ v& P- data.value.real=atof(((char **)str_mid)[2]);
2 d' r6 N: W& v3 @" z) J - 1 l$ ?) Y/ F/ d9 `, u
- UF_STYLER_set_value(dialog_id,&data);* I" {( w- L2 y3 V) Q
- R5 J) ^1 M3 S& `
- UF_STYLER_free_value(&data);
0 H$ q& v6 D. h! j# R6 C& ?# s - 1 ?- m% t( `, {3 Y2 D% F+ [
- data.item_attr=UF_STYLER_VALUE;- c, x/ N: [. h1 o
$ I. n! k0 G. L) P- data.item_id=APP_REAL_W;
0 g) m+ a! Z' |' h; }8 N6 D
. J ~- F" _1 n4 Y- k- Z8 Q J- data.value.real=atof(((char **)str_mid)[3]);3 k6 G2 D! F" A" B+ Q
7 S9 ]; q* B; H- UF_STYLER_set_value(dialog_id,&data);
9 s6 ^7 P j5 {6 I- l
: L8 ?( N* S5 X0 j2 s- UF_STYLER_free_value(&data); 3 W2 c6 V, l/ ~6 l
3 K' Q/ |9 a' @( m- data.item_attr=UF_STYLER_VALUE;
6 t( I/ x0 r8 D0 q$ M
3 A4 z+ V, x' E7 c- data.item_id=APP_INT_N;9 h) h T6 z2 E' ]: a
5 W/ h9 e( o! Y7 ]+ m- _- data.value.integer=atof(((char **)str_mid)[4]);
! W- o/ L% Q1 i2 u% ^+ i6 F$ @
0 X# q: U3 w) o* h: j- UF_STYLER_set_value(dialog_id,&data);
3 b+ d! M) j6 U& Z
/ w6 ?/ e. B& x$ ]9 [- UF_STYLER_free_value(&data); 2 R9 j0 F- l! ~9 E) I9 Q
+ Z8 s8 Z; q. g- data.item_attr=UF_STYLER_VALUE;3 h; t2 n% s! F" s# R# |
2 T) n+ C. w+ K0 |- data.item_id=APP_REAL_L;
, y4 ?, Q+ n6 f2 q0 c. w
* Z7 ?( d$ u/ l- data.value.real=atof(((char **)str_mid)[5]);/ {8 A1 h3 P6 }& N$ b. w
- o" p! l; w- I* a1 t, F
- UF_STYLER_set_value(dialog_id,&data);
1 _) C; E7 ?* g% i8 H q0 _6 W; c- u - 1 `, H' d# l& C" U% m4 z
- UF_STYLER_free_value(&data); / z/ u- P1 h) i1 Q Q6 P! ?: E
4 o* e0 s& }0 E5 O! n! f- data.item_attr=UF_STYLER_VALUE;0 g0 a" s7 G, I7 W- L9 q8 ]
5 k& K! a$ A- w0 w0 H' h' \- data.item_id=APP_REAL_K;
# U% H' ~8 x. }5 W" I7 e G: I
+ M% s3 W: B5 T) r F, q9 S- data.value.real=atof(((char **)str_mid)[6]);4 n+ }9 R0 e; ?) a1 U% D/ ? U0 z
- 7 j2 v, B% m) `# t
- UF_STYLER_set_value(dialog_id,&data);1 n; C5 s3 \- N9 J
- 5 G: |% U1 n4 x/ P
- UF_STYLER_free_value(&data); $ R/ @! s; r; }! r, {
- . q: Z8 o# r6 m v4 F
- data.item_attr=UF_STYLER_VALUE;
; X' `& Z$ q* y0 T1 H
- Y4 K p2 `9 `7 g- data.item_id=APP_REAL_LL; z8 @3 z5 ~, R0 X3 U% P; Q
/ I2 F( T( B' B1 g1 a- data.value.real=atof(((char **)str_mid)[7]);& a! A9 A k. v1 \; E: T5 p+ [
4 }4 S2 f2 T1 E- UF_STYLER_set_value(dialog_id,&data);: T7 f% Y- Y$ H) q5 Y% u
+ c# x% M \# k8 Q- UF_STYLER_free_value(&data); 1 b4 Y$ P: N9 c2 w, D
, H1 g, _% e! [1 Y! L( t- B- }) ~# A l5 k% R) y4 T8 R7 b6 M
8 n7 Y$ R' p& G! E A" T-
: M8 [, }; i1 v/ \9 Z U; R
- ~; X2 M9 B% j9 O! |4 k6 Y+ X- int APP_action_database ( int dialog_id,. E/ [3 S2 a0 M5 [& a0 ?
- 0 X e8 d2 a* f" V0 t
- void * client_data,' h- Q- _5 L2 r
6 [1 L; r# X0 V2 l' d2 i, T; u- UF_STYLER_item_value_type_p_t callback_data)
9 Q4 m# c+ u0 r5 ^7 A( X* Q4 q0 A, a - . v$ p0 s$ M$ z6 I
- {/ c1 x0 O- m/ a: U* G& y3 Z
6 T! S+ p2 k6 H( e- /* Make sure User Function is available. */ ) G. N6 u- g/ k; F( _: P8 n9 t9 k
8 B+ o! j/ M9 j B$ ~. b- if ( UF_initialize() != 0)
( q5 ]! D. n9 K. G% D
# u" T T6 o, N$ Y. u: @( f- return ( UF_UI_CB_CONTINUE_DIALOG );' D; `1 B E" ?) F+ u& B
- j# G" H' c5 x7 d! Q7 \' z-
5 ^* s; H* s: I( @ A+ D5 w3 U. I" d - 0 N4 G! @8 o8 E, g* S7 E
- /* ---- Enter your callback code here ----- */
9 C+ w# b2 a0 @2 V: \. p5 E - . Y( w: B" x# U9 l+ a0 O
- char *str_mid[8];
7 N+ w' I7 g* k - 7 w4 P; Z0 K. H
- if(para_database_func(str_mid)==true)
6 A- ^4 x8 X# z5 `. \- B* r+ K1 `, B1 p - - c3 y2 ?8 {* w4 w# ^3 | I2 E
- read_para_from_database(dialog_id,str_mid);& z [3 s7 t+ P, H& K
- ' d0 t1 d/ W' I( Y o% J
- for(int i=0;i<8;i++). P/ o# {7 p2 H8 n. T1 i) P
# i; `2 G5 c: Q* N( n$ ~- {; q1 I5 N6 H# g6 [
- . n( `3 j" b b7 g7 k- B# P
- delete [] str_mid[i];( G0 m. N, }. F3 h5 m' V
- : n& |/ M+ Z% u% `
- }
( P/ M8 ]1 b, q5 o - 3 v# }' L" W9 K* d. r
- & v& u5 r5 |9 u5 g1 T* g g
, T/ ~/ ~3 F' d7 r- : h0 l$ X2 |( T, ^3 c2 f' s7 d, p
! T/ N9 G8 Q% O- UF_terminate ();. s; s0 V1 s+ B9 s) z
4 _. y8 B1 Z9 h0 E7 u- + z3 O$ r' i& a/ T9 x: Y- ~
# S: {1 Z% y, U9 J I" r- /* Callback acknowledged, do not terminate dialog */
9 o. K- w: ]& \5 i - 3 @* m7 x, ]9 Y$ s- i# I
- return (UF_UI_CB_CONTINUE_DIALOG);2 p& y$ r" I. k* u8 x
: x0 Z+ M) Z& ` i6 v& m3 O- 9 [& G! Z+ Y7 c# _
9 N7 Y: P; D. S$ B/ q7 L' E9 l- /* or Callback acknowledged, terminate dialog. */
8 [9 j$ y' G- G' M
% ]) @/ F' C0 c e4 q/ w) s x- /* return ( UF_UI_CB_EXIT_DIALOG ); */! j6 P% \5 D1 y# N+ v! Y2 f
8 s" j! ?8 H# ?8 M& q. R- 8 s' }( v0 D P8 Y# P
- 9 o" {. s6 D% F/ e, p' I8 n
- }
复制代码 # |& {! b& D" D- s
6 U5 h7 a% \9 f! [* k
|
|