更新时间:2015-12-04 21:10:18浏览次数:1+次
在Win32编程中经常需要像使用printf一样使用MessageBox,然而win32并没有直接提供这样的函数,我们就自己实现一下。
下面是效果图:
图中的第1名的数字1是通过格式化显示的,和printf一样格式化的。使用很方便,其他地方,和MessageBox一样使用。
为了方便在Win32中格式化消息,不必每次都用sprintf等函数来格式化字符串,在再次学习《Windows程序设计》时,发现这个内容在编程时非常常用,所以做一个基本的改动,并分享出来,在日后编程时可以参考使用。
带参数的消息框函数自定义实现代码如下:
int MessageBoxParam(HWND hwnd,TCHAR* szTitle,UINT uType,TCHAR* szFormat,...)
{
TCHAR szBuffer[1024];
va_list pArgList;// - va_list宏定义于stdarg.h
va_start(pArgList,szFormat);// - va_start宏定义于stdarg.h,
_vsntprintf(szBuffer,sizeof(szBuffer)/sizeof(TCHAR),szFormat,pArgList);// - 需要stdio.h
va_end(pArgList);// - va_end宏定义于stdarg.h
return MessageBox(hwnd,szBuffer,szTitle,uType);
}
int i=0;
LPTSTR lpStr = _T("C++技术网www.cjjjs.com");
MessageBoxParam(NULL,_T("C++技术网提示"),MB_YESNO,_T("第%d名,%s"),i,lpStr);
相关资讯