| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > DIALOG_BOX, как главное окно |
| Автор: Dmitriy2k 21.11.2006, 13:34 | ||||||
Главное окно программы в windows создается довольно непростым способом:
Я хотел с помощью редактора ресурсов создать DIALOG_BOX(IDD_MAIN), который и будет основным окном.
Диалог бокс не создается, хотя программа компилится, а вот если этот DIALOG_BOX (IDD_MAIN) создать поверх главного окна, то он появится. у меня подозрения, что в строке
какая то проблемма с hInstance |
| Автор: neosapient 21.11.2006, 13:46 | ||||
Не совсем понял, что под этой фразой подразумевается. В листинге, вроде, правильный вызов диалога
Пройдись дебагером и ты увидишь, что на вызове этой функции дебагер остановиться и будет стоять пока не закроется диалоговое окно. |
| Автор: Dmitriy2k 21.11.2006, 20:49 | ||
Диалог бокс не появляется на экране вообще. Хотя я протестировал твой пример из темы, связаной с BITMAPOM - там все нормально, значит я что то не правильно сделал |
| Автор: neosapient 21.11.2006, 21:09 | ||
| Возможно, в диалоге использованы дополнительные контролы, типа прогрессбара. Тогда нужно их подключить
Покажи свой код, может смогу что-нибудь исправить |
| Автор: Евгений 22.11.2006, 00:03 |
| Dmitriy2k, ты просмотри в редакторе ресурсов все необходимые стили установил, а то может WS_VISIBLE не установил и оно не показывается. А так код вроде правильный. Или можешь попробовать с помощью функции CreateDialog(). Удачи! |
| Автор: anwe 22.11.2006, 02:31 |
| Dmitriy2k, по-моему ты смешал два вида дилогов. Если ты делаешь и RegisterClass(&WndClass)... и hWnd=CreateWindow(.....), то ты используешь в качестве диалогового окна простой диалог. В этом случае надо использовать функцию CreateDialogParam. Если же ты используешь WM_INITDIALOG и WM_CLOSE, то это имеет отношение к модальному диалогу. В нем вместо WM_CREATE обрабатываеться WM_INITDIALOG, а вместо WM_DESTROY WM_CLOSE. Но тогда совсем не нужен ни цикл сообщений ни процедура окна, а создается окно функцией DialogBoxParam. |
| Автор: Dmitriy2k 22.11.2006, 14:15 |
| Все. Спасибо, ребят за ответы, это я тормоз. Я вместо сгенеренного заголовка файла ресурсов "resource.h" подключил свой "rec.h", а там , видимо были разногласия. |