正文

格式化消息框 sprintf2007-10-12 18:11:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/jixian/30040.html

分享到:

#include<windows.h>
#include<tchar.h>
#include<stdio.h>

//格式化消息框
int CDECL MessageBoxPrintf(TCHAR* szCaption,TCHAR* szFormat,...)
{
 TCHAR szBuffer[1024];
 
 va_list pArgList; //或许只有va_list这种类型才能被设置为szFormat
 va_start(pArgList,szFormat);//将pArgList设置为指向szFormat
 _vsntprintf(szBuffer,sizeof(szBuffer)/sizeof(TCHAR),szFormat,pArgList);
 //_vsntprintf 是sprintf加强版,多了个size_t count指明缓冲区的大小,保证不会有内存越界的错误。

 va_end(pArgList);

 return MessageBox(NULL,szBuffer,szCaption,0);
}

int WINAPI WinMain(HINSTANCE hlnstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)
{
 int cxScreen,cyScreen;

 cxScreen=GetSystemMetrics(SM_CXSCREEN); //得到视频显示器的宽度
 cyScreen=GetSystemMetrics(SM_CYSCREEN); //得到视频显示器的高度

 MessageBoxPrintf(TEXT("ScmSize"),TEXT("The screen is % i pixels wide by % i pixels high."),
  cxScreen,cyScreen);

 return 0;
}

//在Windows程序中不能使用printf。

//  另外一篇文章 c语言中 变长参数列表,或许对上面函数有所帮助

 

阅读(2659) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册