你怎么能做这样的事情SetWindowText( static_label, "I know this thing" + myString )
?
问问题
899 次
3 回答
6
这个问题与运算符重载或一般的重载无关。
如果您指的是如何SetWindowText (...)
用于设置对话框窗口的标题和静态标签,那是因为它HWND
是一个通用句柄。
另一方面,如果您询问如何连接文本,则可以使用 astd::string
和调用.c_str (...)
来获取 Win32 API 所需的以空字符结尾的字符串。
于 2013-09-02T20:45:42.093 回答
2
#include <atlstr.h>
CString a = "I know this thing ";
CString b = "foo";
SetWindowText(static_label, a + b);
于 2013-09-02T20:43:49.990 回答
1
以下是仅使用标准 C++ 库(当然还有 Windows API)的方法。CString
不过,它比使用( ATL )稍微复杂一些。但是,如果您打算将代码作为开源发布,这种方法可能会更好,因为它允许其他人使用 Visual C++ 以外的编译器(例如MingW)来编译代码。
#include <string>
#include <Windows.h>
HWND static_label;
int main() {
// ...
std::string a = "Hello ";
std::string b = "World!";
std::string c = a + b;
SetWindowText(static_label, c.c_str());
// ...
return 0;
}
另一种无需使用b
或c
#include <string>
#include <Windows.h>
HWND static_label;
int main() {
// ...
std::string a = "Hello ";
SetWindowText(static_label, std::string(a+"World!").c_str());
// ...
return 0;
}
于 2013-09-04T23:47:23.423 回答