CString Extensions for Resource Loading and String Formatting
Posted
by Joshua Reed
on May 12th, 2000
Class Definitions
// Load resource
class CResString : public CString
{
public:
CResString(): CString() {};
CResString(UINT nResID)
{
Init();
VERIFY(LoadString(nResID) != 0);
_ASSERTE( m_pchData );
};
void operator () (UINT nResID)
{
Init();
VERIFY(LoadString(nResID) != 0);
_ASSERTE( m_pchData );
}
};
// Format
class CFmtString : public CString
{
public:
CFmtString(): CString() {};
CFmtString( char *szFormat, ... )
{
Init();
va_list argList;
va_start( argList, szFormat );
FormatV( szFormat, argList );
};
CFmtString( UINT uResID, ... )
{
Init();
va_list argList;
CResString sFormat( uResID );
va_start( argList, sFormat );
FormatV( sFormat, argList );
};
void operator () ( char *szFormat, ... )
{
Init();
va_list argList;
va_start( argList, szFormat );
FormatV( szFormat, argList );
}
void operator () ( UINT uResID, ... )
{
Init();
va_list argList;
CResString sFormat( uResID );
va_start( argList, sFormat );
FormatV( sFormat, argList );
}
};
Examples of Using the CResString Class
CResString sSection(IDS_DATAOBJECTSECTION); // Use sSection // ... // Load another string sSection(IDS_INVALIDOBJECT);
Example of Using the CFmtString Class
CFmtString sCommand(_T("SELECT %s FROM %s WHERE %s = %d"),
sColumn1, sTable, sColumn2, nID );
// Use sQuery
// ...
// Format another
sCommand(_T("UPDATE %s SET %s = %d WHERE %s = %d"),
sTable, sColumn1, nValue, sColumn2, nID );

Comments
There are no comments yet. Be the first to comment!