格式化MessageBox

来源:互联网 发布:mac ssh命令 端口 编辑:程序博客网 时间:2024/05/29 18:06

MessageBox是《Windows程序设计》第一个窗口。

下面介绍几个函数与宏:

1.int sprintf (char * szBuffer, const char * szFormat, ...);

类似于C中printf,只不过最后实际结果保留在szBuffer中


2.int vsprintf(char *string, char *format, va_list param);

这个函数是sprintf函数的底层实现,

int sprintf (char * szBuffer, const char * szFormat, ...)
{
      int     iReturn ;
      va_list pArgs ;
     va_start (pArgs, szFormat) ;
     iReturn = vsprintf (szBuffer, szFormat, pArgs) ;
     va_end (pArgs) ;
     return iReturn ;
}

va_start宏是使得pArgs指向不定参数的起始地址处,从而得到正确的首址。

sprintf的实现代码,我们也可以实现格式化MessageBox

int MessageBoxPrintf(TCHAR *szCaption ,  TCHAR *szFormat ,...){

     TCHAR szBuffer[1024];

     memset(szBuffer,0,sizeof(szBuffer));

     va_list argList;

     va_start(argList,szFormat);

     //vstprintf windows中通用版本即UNICODE与ASCII通用

    int iResult = _vstprintf(szBuffer,szFormat,argList);

     va_end(argList);

    return MessageBox(NULL,szBuffer,szCaption,MB_OK);

}

0 0
原创粉丝点击