Проблема с CreateDialogIndirect

Тема в разделе "WASM.BEGINNERS", создана пользователем KingT, 7 ноя 2009.

  1. KingT

    KingT Member

    Публикаций:
    0
    Регистрация:
    12 янв 2006
    Сообщения:
    208
    Пытаюсь создать окно по шаблону из памяти но не работает.Чистый API.
    Код (Text):
    1. HRSRC hrsrc = FindResource(GetModuleHandle(0), MAKEINTRESOURCE(IDD_CONTAINER), RT_DIALOG);
    2.     HGLOBAL hglb = LoadResource(GetModuleHandle(0), hrsrc);
    3.     DLGTEMPLATE* t1 = (DLGTEMPLATE *) LockResource(hglb);
    4.     HWND han = CreateDialogIndirect(GetModuleHandle(0),t1, 0, cdproc);
    Мало того в t1 cx=-32658,cy = 2. Сам диалог создан в редакторе ресурсов его размеры 300x180.
     
  2. comrade

    comrade Константин Ёпрст

    Публикаций:
    0
    Регистрация:
    16 сен 2002
    Сообщения:
    232
    Адрес:
    Russian Federation
    Где проверка ошибок? Что возврашает GetLastError?
     
  3. KingT

    KingT Member

    Публикаций:
    0
    Регистрация:
    12 янв 2006
    Сообщения:
    208
    Код (Text):
    1. DWORD code = GetLastError();
    2.     HRSRC hrsrc = FindResource(0, lpszResName, RT_DIALOG);
    3.     if(hrsrc == 0)
    4.         MessageBox(0,L"FindResource Error",L"Error",MB_OK);
    5.     HGLOBAL hglb = LoadResource(g_hinst, hrsrc);
    6.     if(hglb == 0)
    7.         MessageBox(0,L"LoadResource Error",L"Error",MB_OK);
    8.     code = GetLastError();
    9.     return (DLGTEMPLATE *) LockResource(hglb);
    Код ошибки не меняется.LockResource возвращяет отрицательную ширину для диалога.Пример взят из MSDN. Для TabControl.
     
  4. KingT

    KingT Member

    Публикаций:
    0
    Регистрация:
    12 янв 2006
    Сообщения:
    208
    Разобрался.Надо юзать структуру DLGTEMPLATEEX.