在MFC应用程序中显示文本

时间:2014-04-19 16:17:11

标签: c++ mfc

我正在为我的一个uni项目构建MFC C ++应用程序,不幸的是,MFC只允许您使用SetWindowTextW()方法,参数为LPCTSTR?不是stringCString,对于我的生活,我无法找到如何将我的字符串转换为LPCSTR值。

我的代码是:

pBorrowedBookCEdit1->SetWindowTextW(/* INSERT LPCTSTR HERE */);

String来自一个完全独立的对象。

如果有另一种方法将文本传递给MFC中的CEdit对象,那么请告诉我=)

非常感谢任何帮助。

干杯。

1 个答案:

答案 0 :(得分:1)

假设你手边有std::string,你的问题含糊其辞,并进一步假设你正在构建一个Unicode应用程序,也模糊地指出,那么你可以做到

CString mfc_string( s.c_str() );
// Use mfc_string here.

其中sstd::string

MSDN Library中记录了CString构造函数。

查阅文档通常是个好主意。


背景:LPCTSTR是一个扩展为char const*wchar_t const*的宏,具体取决于在包含UNICODE时是否定义了符号<windows.h>。它是一种兼容性的东西,用于在Windows 9x中编写可能有效的代码,并且功能和可靠性大大降低。除非您定位Windows 9x,否则请忘记它,不要使用T宏内容。

T宏在2000年已经过时了,当时微软推出了Layer for Unicode,它允许Unicode应用程序在Windows 9x中运行(功能略有减少)。

2014年,在目标平台消亡很久之后,他们仍然用于非遗留代码,恕我直言,证明了整合的极端力量和自我可持续性。