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的代码对字符串的长度进行动态计算。