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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.08.2009, 15:50   #1
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию Вопрос по MFC

Мне поручили обновлять довольно большую чужую программу MDI MFC, но, к сожалению, опыта работы с MFC не так много, как хотелось бы.

В программе есть диалоговое окно с настройками и с кнопками IDOK и IDCANCEL. При этом функции, вызываемой при их нажатии я нигде не нашел. MFC автоматически вызывает DoDataExchange() при нажатии OK?

И еще вопрос: .NET - это полная замена MFC, или второй еще может пригодиться?
ds.Dante вне форума Ответить с цитированием
Старый 06.08.2009, 16:07   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

DoDataExchange - виртуальная функция, которая связывает контрол по id с именем, которым ты задал. сам ты ее нигде не вызываешь, она автоматически вызывается через механизм виртуальных функций в недрах мфц.
При нажатии на кнопку Ok скорее всего будет вызываться что то типо OnBtnClickedOk, либо так, как прогер назвал эту функцию. Все обработчики событий ты можешь узреть в макроопределении BEGIN_MESSAGE_MAP, либо открыв class wizard.
.NET - замена мфц? а java замена c++? мфц - просто набор классов, .net - это не только свои классы, но так же среда clr, байт код, кросплатформенность и тп. я .net не юзаю, ничего более подробного сказать не могу.
а насчет пишет ли кто на мфц - скорее всего поддерживают старые проекты (как я у себя в конторе например, или ты, как я вижу). Не думаю, что имеет смысл начинать новые проекты, используя мфц.

пс. советую потренироваться на простейших диалоговых прогах в мфц, потом на sdi, потом уже лезь в mdi
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 07.08.2009, 11:08   #3
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Спасибо.
Все оказалось проще - есть стандартная функция CDialog::OnOK(), которая и вызывает UpdateData(1). Она не была переопределена.
ds.Dante вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MFC Cdevelop Visual C++ 4 18.03.2009 21:28
ODBC и MFC MadDog__ Win Api 0 06.02.2009 01:18
Проблема с MFC Nikimax Visual C++ 1 06.12.2008 22:50
Проблема с MFC zi0n Общие вопросы C/C++ 0 15.11.2008 23:20
MFC Diman2008 Visual C++ 2 06.03.2008 16:24