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