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