Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > Передача данных из диалога в главное окно |
Автор: Деран 27.8.2008, 14:24 | ||||
Здравствуйте! Как правильно передавать данные из диалога в главное окно. Пробовал через глобальную переменную, не получается. //Процедура диалога
//глобальная переменная
полученные данные с N_Count не поменялись, хотя изменялись в диалоге. В чем моя ошибка? |
Автор: Деран 27.8.2008, 14:45 | ||||||
N_Count передаю классу через метод, если вместо N_Count, поставлю константу, то значение меняется (т.е. дело не в методе класса)
Не очень понятно, что вы имели ввиду? |
Автор: Andrey44 27.8.2008, 14:56 |
Деран, это значит поставьте брекпоинт на строке ниже где используете atoi(), и посмотрите значение вашей N_Count |
Автор: Деран 27.8.2008, 16:06 | ||||
GDB показал N_Count = 11, да значение передалось в N_Count.
Странно, а значение остается прежним, которое инициализировал в
|
Автор: Деран 27.8.2008, 17:07 |
Попробую задать вопрос по другому. Каким способом передавать данные из диалога в главное окно? |
Автор: Деран 27.8.2008, 19:24 | ||||
Все, понял в чем ошибка! Делал так:
А функция CreateDialogBoxEdit() не работает как MessageBox() и получается она создала диалог и продолжила работу дальше, т.е. выполнила следующую строчку и в N_Count не попадет нового значения! |
Автор: Деран 28.8.2008, 09:43 |
Но все равно не понятно как передавать данные. Не будет же пользователь нажимать два раза кнопку, например, пользователь вызвал диалог, ввел то что нужно и нажал ок, диалог закрылся и еще ему нужно нажать кнопку на главном окне чтобы считать данные с N_Count. Как нужно проследить, что диалог закрылся, при этом на диалоге была нажата кнопка ок, или какие-то перехвату нужно делать? Может есть другое решение? |
Автор: 586 28.8.2008, 13:40 | ||
Когда пользователь нажмёт OK, тогда и изменяй переменную. И вообще, у тебя здесь диалогов нет, у тебя здесь просто создаются окна через CreateWindowEx. Диалоги создаются с помощью CreateDialogParam, DialogBoxParam, и бывают модальные и немодальные. Пример модального диалога - MessageBox - функция возвращает значение, когда окно закрывается. |
Автор: Деран 28.8.2008, 17:16 |
586, А разве CreateDialogParam и DialogBoxParam не используют фун. CreateWindowEx через которую и создается окно/диалог? |
Автор: 586 29.8.2008, 02:33 | ||
Диалоговое окно можно реализовать через обычные WinAPI функции, но это уже будет не диалоговое окно, а велосипед. Обычно, в WinAPI под диалоговыми окнами подразумеваются те окна, что созданы с помощью CreateDialogParam / DialogBoxParam. |
Автор: Деран 29.8.2008, 20:06 |
Спасибо всем за помощь. Решил задачу, так: данные не передаются из диалога, а изменяются в самом диалоге (по предложенным советам выше) и изменил код создания диалога. |