C++ 尝试在windows.h中使用CreateWindow单击按钮后返回char*/string
使用windows.h,我创建了以下窗口: 我认为没有必要编写WINAPI WinMain需要的明显的东西C++ 尝试在windows.h中使用CreateWindow单击按钮后返回char*/string,c++,c,windows,window,C++,C,Windows,Window,使用windows.h,我创建了以下窗口: 我认为没有必要编写WINAPI WinMain需要的明显的东西 textToWrite = CreateWindow("EDIT", "", WS_BORDER | WS_CHILD | WS_VISIBLE, 290, 70, 165, 20, hwnd, NULL, NULL, NULL ); analize = CreateWindow("BUTTON", "Analize", WS_VISIBLE | WS_CHILD | WS_BORDER
textToWrite = CreateWindow("EDIT",
"",
WS_BORDER | WS_CHILD | WS_VISIBLE,
290, 70, 165, 20,
hwnd, NULL, NULL, NULL
);
analize = CreateWindow("BUTTON",
"Analize",
WS_VISIBLE | WS_CHILD | WS_BORDER,
465, 70, 60, 20,
hwnd, NULL, NULL, NULL
);
Result = CreateWindow("STATIC",
getResultFromWritenText(),
WS_BORDER | WS_CHILD | WS_VISIBLE,
290, 100, 235, 20,
hwnd, NULL, NULL, NULL
);
我希望在单击“分析”按钮时,“结果”静态窗口根据函数getResultFromWritenText()
返回的内容返回一些内容。这是因为我不希望将相同的文本写入(textToWrite的)输出,而是在分析用户写入内容的基础上创建一个新字符串/char*,因为我知道getResultFromWriteText()
函数将知道它并在文本字段中返回它(无论我希望它返回什么),而不是作为弹出窗口
我该怎么做?
谢谢。WINAPI将以null结尾的c字符串作为参数。但是,它使用
char
或wchar\u t
因此,如果您事先知道您是为UNICODE编译的,您可以使您的函数:
wstring getResultFromWritenText() { ... }
Result = CreateWindow("STATIC",
getResultFromWritenText().data(),
WS_BORDER | WS_CHILD | WS_VISIBLE,
290, 100, 235, 20,
hwnd, NULL, NULL, NULL
);
如果你想保持灵活性,你可以定义如下:
typedef basic_string<TCHAR> tstring; // equivalen to string or wstring depending on options
tstring getResultFromWritenText() { ... }
我不知道是否收到您的问题,但您不能从CreateWindow()返回这样的文本。 如果要在按下某个按钮后创建的静态窗口中设置不同的文本,请执行以下操作: 在窗口过程中:
case WM_COMMAND:
{
if(lParam == (LPARAM)analize) // Your button is pressed
{
//If your getResultFromWritenText() function really returns some text...
SendMessage(Result, WM_SETTEXT, 0, (LPARAM)getResultFromWritenText()); // Set new text to your static
}
}