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