2012-05-18 2 views
0

У меня есть общий вопрос проектирования, связанный с тем, где обработчики событий размещаются при разработке приложения MFC в VS C++. Лучше ли иметь обработчики событий в классе Dialog? Или приемлемо ли размещать обработчики событий в основном классе приложения?Соглашение Desgin относительно обработчиков событий в VS C++ для приложений MFC

Я спрашиваю об этом, потому что я пытаюсь вызвать функции из основного класса из класса диалога, но затем попытаюсь обновить графический интерфейс из основного класса. Я думаю, что было бы легче перенести большинство моего кода в класс GUI (диалог).

Я полагаю, мне интересно, что такое конвенция, когда дело доходит до обработки событий и вызова функций, которые не входят в графический интерфейс, где произошло событие.

Любой ввод будет оценен.

+0

Это диалоговое приложение? – MikMik

+0

Да, это приложение, основанное на диалоге. Один диалог с меню. События запускаются из меню, а также несколько кнопок, текстовые поля и т. Д. –

ответ

1

Объектно-ориентированный дизайн требует, чтобы вы определили, какие объекты несут ответственность за различные элементы вашей программы.

Класс GUI должен отвечать за все взаимодействия с соответствующим элементом GUI. В вашем случае класс диалога должен обрабатывать все сообщения, поступающие из элементов и меню, встроенных в диалог.

Другой класс, вероятно, должен обрабатывать представление данных внутри программы. Это может быть класс приложения, или это может быть совершенно отдельный класс. Архитектура Document/View, используемая MFC, поучительна - приложение отвечает только за несколько функций бухгалтерского учета, класс документа обрабатывает представление данных, а класс представления отвечает за рисование данных в окне.

Смежные вопросы