![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Волод |
|
|||
|
Unregistered |
Здравствуйте, появился вопрос касательно создания диалогового окна. Я попытался в VC++ 6 сделать окно диалога, и вывести его на экран по аналогии с обычным окном. Попытался сделать это через CreateDialog(), примерно вот так:
В общем-то код работает, но беда в том, что функция CreateDialog в качестве четвертого параметра принимает только BOOL-функцию (CALLBLACK функция окна диалога). Попытка переопределить ф. DlgFunc как LRESULT, а в CreateDialog привести ее к типу BOOL успеха не дала, а значит, я не могу из функции окна диалога возвращать сообщения, что приводит к тому, что окно-то диалога я выгружаю, а вот само приложения остается висеть в памяти… |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Не поняла я, в чем беда... CALLBACk - функция диалога - это не совсем тоже самое, что CALLBACK-функция окна. И приводить ее ни к чему не надо, передавай как есть.
Вот из MSDN насчет диалоговой функции:
DefWindowProc тебе там не поможет (она и так есть, только не внутри, а снаружи, вызывает твою DlgProc). Чтобы завершить приложение, нужно выйти из цикла, чтобы выйти из цикла, нужно чтобы GetMessage вернула 0, а она это делает, когда получает WM_QUIT. Т.е., при закрытии окна (в обработчике OnClose) вызови PostQuitMessage. А вообще, нафига тебе CreateDialog, а потом цикл. Если диалог - он же главное окно - вызови DialogBox вместо всего этого - и все. Создастся модальный диалог со своим циклом сообщений. Модератору: А тему нужно в Windows API перенести... -------------------- ... |
|||
|
||||
| Волод |
|
|||
|
Unregistered |
Мне было интересно, чтобы заработало именно с CreateDialog ;))
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Тогда вызывай PostQuitMessage
-------------------- ... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |