winApi c++. Нужно создать модальное диалоговое окно в которое пользователь вводит текст и этот текст появляется в главном окне

Обьясните пожалуйста как создать диалоговое окно с полем для ввода и как потом вывести полученный текст в главное окно.

#include <string>


int CALLBACK wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR szCmdLine, int nCmdShow) {
    MSG msg{};
    HWND hwnd{};
    WNDCLASSEX wc{ sizeof(WNDCLASSEX) };
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hbrBackground = reinterpret_cast<HBRUSH>(GetStockObject(WHITE_BRUSH));
    wc.hCursor = LoadCursor(nullptr, IDC_ARROW);
    wc.hIcon = LoadIcon(nullptr, IDI_APPLICATION);
    wc.hIconSm = LoadIcon(nullptr, IDI_APPLICATION);
    wc.hInstance = hInstance;
    wc.lpszClassName = L"MyAppClass";
    wc.lpszMenuName = nullptr;
    wc.style = CS_VREDRAW | CS_HREDRAW;
    wc.lpfnWndProc = [](HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) ->LRESULT CALLBACK {
        switch (uMsg) {
        case WM_DESTROY: {
            PostQuitMessage(EXIT_SUCCESS);
        }   return 0;

        case WM_PAINT: {
            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hwnd, &ps);
            FillRect(hdc, &ps.rcPaint, (HBRUSH)(COLOR_3DSHADOW + 1));
            EndPaint(hwnd, &ps);
        }   return 0;

        case WM_CREATE: {
            HMENU hMenuBar = CreateMenu();
            HMENU hMenu = CreateMenu();
            AppendMenu(hMenuBar, MF_POPUP, (UINT_PTR)hMenu, L"Меню");
            AppendMenu(hMenu, MF_DEFAULT, (UINT_PTR)1337 , L"Пункт");
            SetMenu(hwnd, hMenuBar);
        }   return 0;

        case WM_COMMAND: {
            switch (LOWORD(wParam)) {
            case 1337: {

                }   break;
            }
        }   return 0;

        case WM_CLOSE: {
            if (MessageBox(hwnd, L"Закрыть приложение", L"Предупреждение", MB_YESNO) == IDYES) DestroyWindow(hwnd);
        }   return 0;

        };
        return DefWindowProc(hwnd, uMsg, wParam, lParam);
    };

    if (!RegisterClassEx(&wc)) return EXIT_FAILURE;
    hwnd = CreateWindowEx(NULL, wc.lpszClassName, L"Suka", WS_OVERLAPPEDWINDOW, 0, 0, 600, 600, nullptr, nullptr, wc.hInstance, nullptr);
    if (hwnd == NULL) return EXIT_FAILURE;

    ShowWindow(hwnd, nCmdShow);
    UpdateWindow(hwnd);

    while (GetMessage(&msg, nullptr, 0, 0)) {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return static_cast<int>(msg.wParam);
}```

Ответы (0 шт):