2 / 2 / 0
Регистрация: 16.08.2019
Сообщений: 13
|
||||||
1 | ||||||
Создание диалоговых окон16.08.2019, 14:02. Показов 7486. Ответов 10
Метки нет (Все метки)
Здравствуйте! Возникла проблема с отображением диалоговых окон. Создал ресурс меню(один пункт для вызова диалогового окна) и диалоговое окно(кнопки 'ok', 'отмена' и две пользовательские кнопки). При вызове диалогового меню появляются только кнопки из диалогового окна, а само диалоговое окно не отображается. При нажатии на кнопку 'отмена'(закрытие диалогового окна) кнопки исчезают, при нажатии на пользовательские кнопки(должно было появиться окно сообщения) программа зависает.
0
|
16.08.2019, 14:02 | |
Ответы с готовыми решениями:
10
Создание диалоговых окон Создание Диалоговых окон в ResEdit для Code::Blocks Редактор диалоговых окон Несколько диалоговых окон одновременно |
2376 / 834 / 317
Регистрация: 10.02.2018
Сообщений: 1,968
|
|
16.08.2019, 14:36 | 2 |
Сообщение было отмечено AirL как решение
Решение
Оконная функция для диалога не корректна, по спецификации она всегда должна возвращать значение.
1
|
2 / 2 / 0
Регистрация: 16.08.2019
Сообщений: 13
|
|
16.08.2019, 15:04 [ТС] | 3 |
Спасибо за ответ. Подскажите какой тип она должна возвращать?
0
|
2376 / 834 / 317
Регистрация: 10.02.2018
Сообщений: 1,968
|
|
16.08.2019, 15:09 | 4 |
тип? BOOL
У вас функция ничего не возвращает, return только для одной ветки switch сделан. Return Typically, the dialog box procedure should return TRUE if it processed the message, and FALSE if it did not. If the dialog box procedure returns FALSE, the dialog manager performs the default dialog operation in response to the message. If the dialog box procedure processes a message that requires a specific return value, the dialog box procedure should set the desired return value by calling SetWindowLong(hwndDlg, DWL_MSGRESULT, lResult) immediately before returning TRUE. Note that you must call SetWindowLong immediately before returning TRUE; doing so earlier may result in the DWL_MSGRESULT value being overwritten by a nested dialog box message. ... Remarks You should use the dialog box procedure only if you use the dialog box class for the dialog box. This is the default class and is used when no explicit class is specified in the dialog box template. Although the dialog box procedure is similar to a window procedure, it must not call the DefWindowProc function to process unwanted messages. Unwanted messages are processed internally by the dialog box window procedure.
1
|
5113 / 4552 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
|
||||||
16.08.2019, 15:10 | 5 | |||||
AirL, А как Вы думаете, если
Сообщение обработано, возвращаем TRUE, не обработано - FALSE. Это первое. Второе: где default: ? На которое надо вернуть FALSE.
1
|
2 / 2 / 0
Регистрация: 16.08.2019
Сообщений: 13
|
||||||
16.08.2019, 15:28 [ТС] | 6 | |||||
Код должен быть таким:
0
|
5113 / 4552 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
|
|||||||||||
16.08.2019, 15:34 | 7 | ||||||||||
Сообщение было отмечено AirL как решение
Решение
Во всех case можно написать break; Добавлено через 1 минуту
1
|
2 / 2 / 0
Регистрация: 16.08.2019
Сообщений: 13
|
||||||
16.08.2019, 15:40 [ТС] | 8 | |||||
Спасибо.
Почему то поведение не поменялось с новым кодом оконной функции. Отображаются только кнопки, а диалоговое окно не отображается. При нажатии на пользовательскую кнопку программа зависает. Вот получившийся код оконной функции диалогового окна:
0
|
2376 / 834 / 317
Регистрация: 10.02.2018
Сообщений: 1,968
|
|
16.08.2019, 16:22 | 9 |
1
|
2 / 2 / 0
Регистрация: 16.08.2019
Сообщений: 13
|
|
16.08.2019, 16:51 [ТС] | 10 |
Спасибо за помощь! Создал новый проект, с исправленным кодом оконной функции диалогового проекта - все заработало. Почему то в старом проекте исправление кода не помогло.
Добавлено через 12 минут Может Visual Studio не коректно работает? Бывает ли такое у Вас?
1
|
2376 / 834 / 317
Регистрация: 10.02.2018
Сообщений: 1,968
|
|
16.08.2019, 17:31 | 11 |
1
|
16.08.2019, 17:31 | |
16.08.2019, 17:31 | |
Помогаю со студенческими работами здесь
11
Программа для создания диалоговых окон Где исходный код ресурсов диалоговых окон? MVVM и создание диалоговых окон Создание диалоговых окон типо next\back Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |