C++代码
//////////////////////////////////////////////////////////////////////////
// InfoBox
// 利用字符串资源显示MessageBox
// hParent - 父窗口句柄
// uIDString - 字符串资源ID
// lpszCaption - MessageBox窗口标题
// uType - 同MessageBox最后一个参数
// 返回值:同MessageBox
// 备注:
// 1.可以像wsprintf那样加入可选附加参数;
// 2.最大字符串长度为MAX_PATH。
//////////////////////////////////////////////////////////////////////////
int CDECL InfoBox( HWND hParent, UINT uIDString, LPCTSTR lpszCaption, UINT uType, ... )
{
va_list arglist;
TCHAR str[MAX_PATH], strLoad[MAX_PATH];
va_start( arglist, uType );
LoadString( NULL, uIDString, strLoad, MAX_PATH );
wvsprintf( str, strLoad, arglist );
va_end( arglist );
return MessageBox( hParent, str, lpszCaption, uType );
}
补充两点:第一,字符串资源是一种很好用的资源,利用字符串资源显示MessageBox可以使消息文本容易更改;第二,字符串有长度的限制,如果希望突破这种限制,可以参考MFC中CString::Format的代码对字符串的长度进行动态计算。