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