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