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