C++ 尝试在windows.h中使用CreateWindow单击按钮后返回char*/string

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

使用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
);
我希望在单击“分析”按钮时,“结果”静态窗口根据函数
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
    }
}