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