Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 14.11.2008, 15:57   #1
Rembo
Участник клуба
 
Аватар для Rembo
 
Регистрация: 29.10.2007
Сообщений: 628
Репутация: 138
По умолчанию MFC: Создание диалоговых окон

Здравствуйте! Я сейчас изучаю тему "MFC: Создание диалоговых окон" и у меня появилось несколько вопросов: Вот допустим я спроектировал диалоговое окно (ну там сделал разные кнопки, текстовые поля и т.д.), теперь мне нужно связать это окно как-то с кодом программы. Для этого нужно создать новый класс. И сразу появляются вопросы: для каждого нового окна нужно будет создавать отдельно новый класс? И как тогда MFC догадался, что созданный мною класс связан именно с диалоговым окном IDD_DIALOG1... Я ведь при создании класса не указывал этот идентификатор (IDD_DIALOG1). Помогите пожалуйста разобраться
Rembo вне форума   Ответить с цитированием
Старый 14.11.2008, 18:38   #2
vvviperrr
Тупой студент
Участник клуба
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
Репутация: 240
По умолчанию

как раз таки класс знает, с каким диалогом он связан. загляни в заголовочный файл реализации класса диалога, и увидишь примерно такую строчку
enum { IDD = IDD_DDE_DIALOG };
вот так он и догадывается) кстати, для диалога совсем необязательно создавать новый класс, если к примеру, тебе нада повесить простой обработчик на кнопку, можно описать его и в другом классе.
vvviperrr вне форума   Ответить с цитированием
Старый 14.11.2008, 19:26   #3
Rembo
Участник клуба
 
Аватар для Rembo
 
Регистрация: 29.10.2007
Сообщений: 628
Репутация: 138
По умолчанию

Ааа, я только сейчас заметил, что оказывается при создании нового класса можно указывать идентификатор диалогового окна! vvviperrr, спасибо за объяснение... Ну так, а если все таки связывать окно через создание нового класса, то для каждого окна придется создавать отдельно новый класс? Значит классов бывает в программе очень много?
И еще маленький вопросик: есть код:
Код:
Dlg dlg;
int resultat = dlg.DoModal();

if (resultat==IDOK)
{

CDialogDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
pDoc->data = dlg.m_text;
Invalidate();
}
Как целочисленная переменная int может принимать значение IDOK??

Последний раз редактировалось Rembo; 14.11.2008 в 19:32.
Rembo вне форума   Ответить с цитированием
Старый 14.11.2008, 19:38   #4
vvviperrr
Тупой студент
Участник клуба
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
Репутация: 240
По умолчанию

совсем не обязательно. ты можешь вызвать свой диалог и так:
CDialog m_dlg(IDD_ABOUTBOX);
m_dlg.DoModal();

а элементы получить через их ID. но если у тебя много инфы на диалоге, то лучше создать класс, удобнее
vvviperrr вне форума   Ответить с цитированием
Старый 14.11.2008, 19:44   #5
vvviperrr
Тупой студент
Участник клуба
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
Репутация: 240
По умолчанию

2Rembo IDOK, IDCANCEL и все другие ID это обычные инты, описанные либо в enum, либо через #define (в recource.h например )
vvviperrr вне форума   Ответить с цитированием
Старый 14.11.2008, 21:29   #6
Rembo
Участник клуба
 
Аватар для Rembo
 
Регистрация: 29.10.2007
Сообщений: 628
Репутация: 138
По умолчанию

vvviperrr, благодарю за помощь! Теперь вроде разобрался
Rembo вне форума   Ответить с цитированием
Старый 14.11.2008, 21:45   #7
vvviperrr
Тупой студент
Участник клуба
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
Репутация: 240
По умолчанию

нет проблем, обращайся
vvviperrr вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание всплывающих окон John_chek Общие вопросы Delphi 13 10.11.2008 22:10
MFC: ListBox umnick Visual C++ 2 29.10.2008 23: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 17:24


12:14.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.