@armadillo-cld

Не получается отобразить диалоговое окно — CreateDialog = 1406 = ERROR_TLW_WITH_WSCHILD?

Всем привет.
Что пытаюсь сделать

Пытаюсь реализовать разработку софт с UI, подобному CodeBlocks, без мусора, но при этом дабы не заморачиваться с координатами - использовать ресурс диалогового окна.
Дело в том, что в CodeBlocks меня не устраивает компилятор, да и нет там встроенного редактора ресурсов, если только использовать ResEdit. Как мне кажется, легче и лучше использовать VS, но при использовании MFC - пустое окно выдаёт 3000 мб. Это не нормально, причём мусора в коде - ужас...


Что и как делаю

Делаю так:
Создаю пустой проект.
Устанавливаю в свойствах проекта "Система" -> "Windows" (дабы компилировать как Win32, а не Консольное)
Создаю ресурс - "Dialog" -> "IDD_DIALOGBAR"
Прописываю начальный код:
#pragma comment (lib, "comctl32")

#include <string>

#include <Windows.h>
#include <commctrl.h>

#include "resource.h"

HINSTANCE hInst;

BOOL CALLBACK DlgMain(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg)
    {
        case WM_CLOSE:
        {
            EndDialog(hwndDlg, 0);
        }
        return TRUE;
    }
    return FALSE;
}

int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, LPWSTR, INT) {
    hInst = hInstance;

    InitCommonControls();
    CreateDialog(hInst, MAKEINTRESOURCE(IDD_DIALOGBAR), 0, DlgMain);
    return 0;
}



Сама ошибка

Итак. Вроде всё правильно. Ошибок - 0, Предупреждений - 0, но после компиляции - ничего не выводится.
Странно, CreateDialog ничего не возвращает. Проверяем через GetLastError.
Всё верно, GetLastError - выдаёт 1406, и именно после вызова CreateDialog:
InitCommonControls();

    err = std::to_string(GetLastError());
    MessageBoxA(NULL, err.c_str(), "", MB_OK);

    CreateDialog(hInst, MAKEINTRESOURCE(IDD_DIALOGBAR), 0, DlgMain);
    
    err = std::to_string(GetLastError());
    MessageBoxA(NULL, err.c_str(), "", MB_OK);



Что делать? Как быть?
Гуглил, ничего не нашёл. Только описание ошибки - 1406 - ERROR_TLW_WITH_WSCHILD

Заранее благодарю за помощь.
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы