使用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,
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
);
我希望在单击“Analize”按钮时,“Result”静态窗口会根据函数getResultFromWritenText()
返回的内容返回一些内容。这是我不希望将相同的文本写为输出(textToWrite),而是一个新的字符串/ char *,用于分析用户编写的内容,知道getResultFromWritenText()
函数会知道它并在文本字段中返回它(无论我想要它返回),而不是弹出窗口。
我该怎么做? 感谢。
答案 0 :(得分:0)
WINAPI将null终止的c字符串作为参数。但是depending on compilation options for UNICODE,它使用char
或wchar_t
。
因此,如果您事先知道为UNICODE编译,那么您可以创建您的函数:
wstring getResultFromWritenText() { ... }
如果您想保持灵活性,可以按如下方式定义:
typedef basic_string<TCHAR> tstring; // equivalen to string or wstring depending on options
tstring getResultFromWritenText() { ... }
完成此操作后,您可以使用该功能的结果:
Result = CreateWindow("STATIC",
getResultFromWritenText().data(),
WS_BORDER | WS_CHILD | WS_VISIBLE,
290, 100, 235, 20,
hwnd, NULL, NULL, NULL
);
答案 1 :(得分:0)
我不知道我是否收到您的问题,但您无法从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
}
}