`
yuanlanxiaup
  • 浏览: 858944 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

开发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函数显示出来。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics