browser icon
You are using an insecure version of your web browser. Please update your browser!
Using an outdated browser makes your computer unsafe. For a safer, faster, more enjoyable user experience, please update your browser today or try a newer browser.

利用字符串资源显示MessageBox

Posted by on 2005 年 07 月 21 日

你可以任意转载本文,但请在转载后的文章中注明作者和原始链接。
媒体约稿请联系 titilima_AT_163.com(把“_AT_”换成“@”)。

C++代码
  1. //////////////////////////////////////////////////////////////////////////   
  2. // InfoBox   
  3. // 利用字符串资源显示MessageBox   
  4. // hParent – 父窗口句柄   
  5. // uIDString – 字符串资源ID   
  6. // lpszCaption – MessageBox窗口标题   
  7. // uType – 同MessageBox最后一个参数   
  8. // 返回值:同MessageBox   
  9. // 备注:   
  10. // 1.可以像wsprintf那样加入可选附加参数;   
  11. // 2.最大字符串长度为MAX_PATH。   
  12. //////////////////////////////////////////////////////////////////////////   
  13. int CDECL InfoBox( HWND hParent, UINT uIDString, LPCTSTR lpszCaption, UINT uType, … )   
  14. {   
  15.  va_list arglist;   
  16.  TCHAR str[MAX_PATH], strLoad[MAX_PATH];   
  17.  va_start( arglist, uType );   
  18.  LoadString( NULL, uIDString, strLoad, MAX_PATH );   
  19.  wvsprintf( str, strLoad, arglist );   
  20.  va_end( arglist );   
  21.  return MessageBox( hParent, str, lpszCaption, uType );   
  22. }  

补充两点:第一,字符串资源是一种很好用的资源,利用字符串资源显示MessageBox可以使消息文本容易更改;第二,字符串有长度的限制,如果希望突破这种限制,可以参考MFC中CString::Format的代码对字符串的长度进行动态计算。

订阅本站

没有评论

(Required)
(Required, will not be published)