Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Проблемы с выводом диалога из Темплейта


Автор: En_t_end 27.12.2005, 07:38
Почему-то AboutBox - созданный студией во всех стандартных проектах нормально отображается и создается из Темплейта, созданного в редакторе ресурсов. Любой же другой диалог не создается и постоянно возвращается ошибка 1407 -> ну какой класс ВДРУГ потребовался для ДИАЛОГА, я сообразить не могу. Раньше такого не наблюдал.
Вызываю диалог так: DialogBox(hInst, (LPCTSTR)IDD_NDLG, hWnd, (DLGPROC)NDlg);
Раньше, повторюсь, всё нормально было. Уже весь .rc перерыл, с точностью до символа копировал стили AboutBox'а - 1407.
Пробывал сначала создавать CreateDialog, а потом показывать ShowWindow, но эффект - тот же.

Автор: Aleksandor 27.12.2005, 09:16
Если у тебя не пустой диалог, а содержит например TreeView, ListView, RichEdit и другие какие контролы то нужно вначале вызвать InitCommonControlsEx в WinMain чтобы инициализировать эти классы, например
Код

INITCOMMONCONTROLSEX icex;

// Ensure that the common control DLL is loaded. 
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC  = ICC_LISTVIEW_CLASSES;
InitCommonControlsEx(&icex);


ну а для richedit ессно надо и DLL загрузить smile


Автор: En_t_end 27.12.2005, 09:50
Aleksandor
Точно! Спасибо!
Однако слишком долго на MFC прогил, там это по дефолту делается.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)