Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

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

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

Ааа, я только сейчас заметил, что оказывается при создании нового класса можно указывать идентификатор диалогового окна! 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 в 18:32.
Rembo вне форума Ответить с цитированием
Старый 14.11.2008, 18:38   #4
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

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

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

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

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание всплывающих окон 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