Win32应用中如何使用MessageBox来显示数值型变量

来源:互联网 发布:网络主播背景歌曲大全 编辑:程序博客网 时间:2024/06/05 20:27

开发C++应用时,有时需要跟踪某些变量值。使用MessageBox可方便地显示字符型的变量值。但对于数值型变量,如整数型与浮点型,则是一个问题。最初的思路:

 

int a = 3;

MessageBox(NULL, TEXT("") + a, TEXT("Test"), MB_OK);

 

Java中,字符串+数值 = 字符串,但在C++中行不通。

 

Win32中的wsprintf函数可设置格式化的字符串,可将数值与字符串有机地组合起来。

 

 UINT adapterModeCount = g_pD3d->GetAdapterModeCount(D3DADAPTER_DEFAULT, D3DFMT_X8R8G8B8);

 

 TCHAR szBuffer[1024];
 LPCTSTR str = TEXT("适配器的显示模式的个数: %i");
 wsprintf(szBuffer, str, adapterModeCount);


 MessageBox(NULL, szBuffer, TEXT("适配器"), MB_OK);

 

szBuffer是存放最终结果的字符串缓冲区,至多可设置1024个字符。上面的代码使用了UNICODE,TEXT宏及wsprintf均是UNICODE的对应版本,wsprintf函数中第1个参数是目标缓冲区,第2个参数是带格式的包括了字符串及数值的字符串,第3个参数是实际数值。第3个参数与str中"%i"对应,wsprintf将其代入%i后生成最终字符串。可以设置多个%i及多个数值。转换后的字符串存放在szBuffer中,因此将此字符串传至MessageBox函数显示出来。

原创粉丝点击