请问怎么读取或写入数据到不同对话框的控件中
请教如何读取或写入数据到不同对话框的控件中
本人刚刚接触VC,目前做了一个基于对话框的程序,在主对话框中建立了一个TabControl,共有五页,分别建立了五个对话框IDD_DLGTAB0, IDD_DLGTAB1 ... IDD_DLGTAB4显示在TabControl中. 现在各对话框显示正常,控件也添加完毕,但数据不知如何处理.
想读取一个文本文件中的数据,存入结构体中,现在不知如何将该结构体中的数据显示到五个对话框里的控件中.还有如何读取这五个对话框控件中的数据保存到结构体.
在网上搜索了下如何访问其他对话框中的控件,都说的不是很详细,所以在这里问一下.
------解决方案--------------------
本人刚刚接触VC,目前做了一个基于对话框的程序,在主对话框中建立了一个TabControl,共有五页,分别建立了五个对话框IDD_DLGTAB0, IDD_DLGTAB1 ... IDD_DLGTAB4显示在TabControl中. 现在各对话框显示正常,控件也添加完毕,但数据不知如何处理.
想读取一个文本文件中的数据,存入结构体中,现在不知如何将该结构体中的数据显示到五个对话框里的控件中.还有如何读取这五个对话框控件中的数据保存到结构体.
在网上搜索了下如何访问其他对话框中的控件,都说的不是很详细,所以在这里问一下.
------解决方案--------------------
- C/C++ code
//**************************************** //加载文件内容到hwnd //**************************************** void File_Hwnd( LPTSTR filename, HWND hwnd, BOOL bFullPathName ) { TCHAR name[ 512 ] = _T( "" ); FILE *fp; long len; if( bFullPathName ) { //不构造整个文件名,传进来的就是完整名 _tcscpy( name, filename ); } else { SetFullPathName( filename, name ); } fp = _tfopen( name, _T( "rb" ) ); if( fp ) { fseek( fp, 0, SEEK_END ); len = ftell( fp ); fseek( fp, 0, SEEK_SET ); unsigned char *tmp = new unsigned char [ len + 64 ]; TCHAR *buf = new TCHAR [ len + 64 ]; if( !tmp ) { if( IsChinese() ) { ShowWarning( _T( "File_Mem 申请内容失败!" ) ); } else { ShowWarning( _T( "File_Mem malloc memory failure!" ) ); } return; } memset( tmp + len, 0, 64 ); fread( tmp, 1, len, fp ); fclose( fp ); #ifdef _UNICODE if( 0xff == tmp[ 0 ] && 0xfe == tmp[ 1 ] ) { //unicode下的unicode内容 memcpy( buf, tmp + 2, len - 2 ); buf[ ( ( len - 2 ) / 2 ) ] = 0; } else { //unicode下读的ascii内容 astr_ustr( ( char * )tmp, buf ); } #else if( 0xff == tmp[ 0 ] && 0xfe == tmp[ 1 ] ) { //ansi下的unicode内容 ustr_astr( ( WCHAR * )( tmp + 2 ), buf ); } else { //ansi下读的ascii内容 memcpy( buf, tmp, len ); buf[ len ] = 0; } #endif ::SetWindowText( hwnd, buf ); delete []buf; delete []tmp; } }
------解决方案--------------------
用控件的指针
------解决方案--------------------
------解决方案--------------------