int SCREW_constructor ( int dialog_id,' O' d0 R8 D; Q
void * client_data,5 }& r. r0 c9 n4 g# ?
UF_STYLER_item_value_type_p_t callback_data)
" d- U9 M m( \9 j! R3 N- M{
- E4 _7 Z; Y4 w7 T% A; i7 q if ( UF_initialize() != 0)
9 n" u; ^" d; E/ L) E2 k: b# R5 ` return ( UF_UI_CB_CONTINUE_DIALOG );- ?3 D1 A1 ?3 J% r
UF_STYLER_item_value_type_t data;* v( ]- I2 t8 D- B
char *names[ SCREW_OPTION_CHOICE_COUNT ]; & X+ d# A: a, o0 Z5 {2 o# j
try6 m) J) i- l3 z
{
: ~, g* B6 Q! \0 [3 G' u# c" f CDatabase database;
+ N2 E( m& U0 d database.OpenEx( _T("DSN=screw"), CDatabase::noOdbcDialog);! L3 f3 A+ h9 |& y
Clzh ScrewSet;5 Y1 o }- @1 U% h; Z
ScrewSet.Open( CRecordset::snapshot, "select * from lzh" );3 Q; M' v) s8 j$ b% g
int i = 0;
1 P8 }' @, ]: r' C& |# } do3 Q2 W5 E8 U F) o& O
{9 _/ B2 Q- S1 d5 ]* E3 }
if( ScrewSet.IsEOF( ) ) break;
/ F/ ]* s: Z2 p: X+ l1 i0 j strcpy( names[ i++ ] = (char*)malloc( sizeof( char ) * 30 ), ScrewSet.m_SP );# E3 ~8 T/ g Y# ^* A# v% p( p
+ L; p3 x4 t- b' Q# u ScrewSet.MoveNext( );. B! n' B6 b2 E# ~
}while( 1 );! b p/ p1 n, H9 U! S7 t- k
database.Close( );
( R' X& \& u5 Y e data.item_id = SCREW_OPTION_CHOICE;. R# ?4 a$ A1 c2 O
data.item_attr = UF_STYLER_SUBITEM_VALUES;
# F/ ^& V# x# n- V- F9 M# b. T* w data.count = SCREW_OPTION_CHOICE_COUNT;
$ A1 O( C ]! P5 M# |; I data.value.strings = names;
( |+ E) C$ ~0 E UF_STYLER_set_value( dialog_id, &data );! d, ~' ~! e/ ?* n4 n
data.item_attr = UF_STYLER_VALUE;5 c6 ^, W- W* ]2 O$ M
data.value.integer = 0;
# F6 P; y3 b& @2 C8 _$ P UF_STYLER_set_value( dialog_id, &data );
; C* F# K1 a* b5 [% l for ( i = 0; i < SCREW_OPTION_CHOICE_COUNT; i++ )
$ f% {4 H% I- v- w9 K {# ^* x2 b! d8 V8 H' S m. h
free( names[ i ] );/ z. l: s. }, B. W
}6 k8 a% g* x- ?7 [0 n" u
}' p- z6 Q! |8 n2 W1 ^/ F
catch( CDBException *pe )! ^7 D" Y9 u' P0 W7 W$ t$ G
{+ f( ~$ ^& i. k* y; w4 G
AfxMessageBox( "Exception!" );
3 p- t, u* W* w4 I AfxMessageBox( pe->m_strError );
+ k: ~/ X! `0 | pe -> Delete( );
# E# q! I1 c1 n- I t( i! J. d" H }
D s3 f. C9 X; [" P UF_terminate();# Y' I0 Y+ O) v; |% ~
return ( UF_UI_CB_CONTINUE_DIALOG );
. c4 y/ z7 G4 |% }( Z9 }}
- a+ F- j0 g2 I- E. w/ m5 M$ h! i7 [这运行之后错误是:strcpy(names[i++]=(char*)malloc(sizeof(char)*4),ScrewSet.m_SP);( e$ f' |) l, k& `) W& ` m+ S
谢谢各位了。 |