你怎么做SetWindowText( static_label, "I know this thing" + myString )
之类的东西?
答案 0 :(得分:6)
此问题与运算符重载无关,或者与此有关的一般超载。
如果您指的是如何使用SetWindowText (...)
来设置对话窗口和静态标签的标题,那是因为HWND
是一个通用句柄。
另一方面,如果您要问如何连接文本,可以使用std::string
并调用.c_str (...)
来获取Win32 API所需的以空字符结尾的字符串。
答案 1 :(得分:2)
#include <atlstr.h>
CString a = "I know this thing ";
CString b = "foo";
SetWindowText(static_label, a + b);
答案 2 :(得分: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;
}