|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.11.2008, 14:57 | #1 |
Форумчанин
Регистрация: 29.10.2007
Сообщений: 628
|
MFC: Создание диалоговых окон
Здравствуйте! Я сейчас изучаю тему "MFC: Создание диалоговых окон" и у меня появилось несколько вопросов: Вот допустим я спроектировал диалоговое окно (ну там сделал разные кнопки, текстовые поля и т.д.), теперь мне нужно связать это окно как-то с кодом программы. Для этого нужно создать новый класс. И сразу появляются вопросы: для каждого нового окна нужно будет создавать отдельно новый класс? И как тогда MFC догадался, что созданный мною класс связан именно с диалоговым окном IDD_DIALOG1... Я ведь при создании класса не указывал этот идентификатор (IDD_DIALOG1). Помогите пожалуйста разобраться
|
14.11.2008, 17:38 | #2 |
Тупой студент
Форумчанин
Регистрация: 12.05.2007
Сообщений: 614
|
как раз таки класс знает, с каким диалогом он связан. загляни в заголовочный файл реализации класса диалога, и увидишь примерно такую строчку
enum { IDD = IDD_DDE_DIALOG }; вот так он и догадывается) кстати, для диалога совсем необязательно создавать новый класс, если к примеру, тебе нада повесить простой обработчик на кнопку, можно описать его и в другом классе. |
14.11.2008, 18:26 | #3 |
Форумчанин
Регистрация: 29.10.2007
Сообщений: 628
|
Ааа, я только сейчас заметил, что оказывается при создании нового класса можно указывать идентификатор диалогового окна! vvviperrr, спасибо за объяснение... Ну так, а если все таки связывать окно через создание нового класса, то для каждого окна придется создавать отдельно новый класс? Значит классов бывает в программе очень много?
И еще маленький вопросик: есть код: Код:
Последний раз редактировалось Rembo; 14.11.2008 в 18:32. |
14.11.2008, 18:38 | #4 |
Тупой студент
Форумчанин
Регистрация: 12.05.2007
Сообщений: 614
|
совсем не обязательно. ты можешь вызвать свой диалог и так:
CDialog m_dlg(IDD_ABOUTBOX); m_dlg.DoModal(); а элементы получить через их ID. но если у тебя много инфы на диалоге, то лучше создать класс, удобнее |
14.11.2008, 18:44 | #5 |
Тупой студент
Форумчанин
Регистрация: 12.05.2007
Сообщений: 614
|
2Rembo IDOK, IDCANCEL и все другие ID это обычные инты, описанные либо в enum, либо через #define (в recource.h например )
|
14.11.2008, 20:29 | #6 |
Форумчанин
Регистрация: 29.10.2007
Сообщений: 628
|
vvviperrr, благодарю за помощь! Теперь вроде разобрался
|
14.11.2008, 20:45 | #7 |
Тупой студент
Форумчанин
Регистрация: 12.05.2007
Сообщений: 614
|
нет проблем, обращайся
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание всплывающих окон | John_chek | Общие вопросы Delphi | 13 | 10.11.2008 21:10 |
MFC: ListBox | umnick | Visual C++ | 2 | 29.10.2008 22:28 |
Visual c++(MFC) | CUtty | Visual C++ | 1 | 13.10.2008 21:21 |
MFC и e-mail | alixEx | Visual C++ | 2 | 13.05.2008 01:07 |
MFC | Diman2008 | Visual C++ | 2 | 06.03.2008 16:24 |