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