MFC:在MessageBox(弹窗)中显示不同格式的数据
前言
这段时间在用MFC做开发,作为一个新手,时不时地希望能够观察到程序运行的情况,但毕竟不是控制台程序,查看数据没有那么方便,于是希望能通过弹窗,把想要的数据显示出来。
int AfxMessageBox(LPCTSTR lpszText)
在这个弹窗函数中,我们会发现,要显示的文本类型必须是LPCTSTR类型。
LPCTSTR是指向常量字符串的长指针,即(Long Pointer to ConsTant STRing)。
当我们需要用到这个类型的变量是,一般会先去定义一个CString类型的字符串,因为CString类有一个操作符operator LPCTSTR ( ) const,可以用来转换的。
假如有一个CString类型的变量str,使用函数LPCTSTR (str)后,就可以转换为LPCTSTR类型。
在开发过程中,有可能会遇到情况,显示CString类型未定义,这时候就需要导入afx.h或cstring.h头文件。
Windows使用两种字符集ANSI和UNICODE,前者是一种但字节的字符格式,在处理像中文这样的双字节文字时,就很容易出现乱码,为了保证文字能够正常显示,我们需要把文字字符串的格式转化为支持双字节(UNICODE)。即可以调用_T()这个宏进行处理。例如:CString temp_value = _T(“”);
在AfxMessageBox这个函数中,参数必须是支持UNICODE格式的,所以必须在定义的时候就做转换。
CString.Format()函数则被用于拼接需要显示的内容。