Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Как учить MFC


Автор: CDell 8.8.2007, 12:12
Народ подскажити что именно нужно учит в MFC?
Имеются две книги:
Visual C++ 6 Учебный курс С. Холзнер
и
Visual C++ и MFC А. Мешков, Ю. Тихомиров

Начало изучения совершенно разные.
В одной начинается с обзора классов(Мешков), в другой с использования Визарда(Холзнер).
Вообще программирование в MFC это создание программ через Визард?
Нужно ли изучать все эти классы и т.д.?

Автор: HappyLife 8.8.2007, 12:14
MFC - это набор классов. А уж через что их объвлять дело привычке. Самостоятельно или через визард.

Автор: zhekha 8.8.2007, 12:54
Мой тебе совет - первую лучше выкинь или убери подальше в шкаф на самую верхнюю полку, т.к. она тебе будет абсолютно бесполезна; а, вот, насчет второй ничего сказать не могу...

Автор: FREEDEV 9.8.2007, 09:54
Microsoft Visual C++ .NET. Библия пользователя
http://www.dialektika.com/books/5-8459-0462-5.html

Автор: Earnest 10.8.2007, 12:49
Тихомиров-Мешков книга полезная, но я бы начала ее читать с описания каркаса приложения. 
Первую книгу не знаю, но судя по всему, она из серии "133 скрин-шота с описанием". Тем более - зачем изучать старую среду. А вот основы MFC, описываемые Тихомировым-Мешковым - все те же.

Однако, по моему глубокому убеждению, изучать что-либо лучше так:
Создай визардом приложение (скажем, SDI), добавь простейшую функциональность (чтобы что-то рисовалось и сохранялось). Можно взять один из готовых примеров в MSDN.
А теперь разберись досконально, что там происходит: кто кого когда вызывает и зачем.
Вот это будет изучение. А чтение книг - это только чтение книг. Т.е. тоже полезно, но не достаточно.


Автор: torero 18.8.2007, 18:12
   В самом начале мне помогал сайт "первые шаги"-WWW.firststeps.
   Там 350 коротких тем и для каждой пример.

Автор: Gaudi 19.8.2007, 19:49
Шеферд (по материалям Круглински) Программирование на ms c++.net. Читать, выполняя упражнения, изменяя их. Книга лучшая.

Автор: LexRema 20.8.2007, 20:30
Я вообще пользовался всегда самоучителями. Секунов, Гилберт.

 А далее - уже конкретную литературу для конкретной задачи. 

Советую на первом этапе "тупо" следовать инструкциям. Это упростит жизнь. Потом все станет на места.

Автор: akizelokro 22.8.2007, 08:23
а лучше, по-моему с APIшных функций. Неделю потеряешь не зазря. А дальше по накатанной. Тогда дальше и MFC особо учить не надо,- просто в хелпе ищешь аналог функции (я вот щас воткнул MDS без хелповника, и как-то выкручиваюсь). Хотя я щас столкнулся с достаточно нетривиальной задачей, и приходится ковыряться самому, даже Секунов с учебником Visual C++ и еще одни учебник по Борланду никак не помогли.

Автор: Smalti 22.8.2007, 12:45
Лучше всего начинать с написания диалоговых приложений, потом можно ознакомитса с SDI, MDI архитектурой.

Для начала нужно понять как работают разные макросы, например:

Код

DECLARE_MESSAGE_MAP()
BEGIN_MESSAGE_MAP
END_MESSAGE_MAP

IMPLEMENT_DYNCREATE
DECLARE_DYNCREATE(CClassName)
...

ASSERT
TRACE


Потом разобратса с DDX,
С сущностями функций OnInitDialog, UpdateData, PreCreateWindow...
С ::SendMessage и ::PostMessage

Для начала можно написать простой калькулятор(+-*/) используя контолы CButton, CEdit
Потом попробывать заполнить контрол дерево CTreeCtrl в диалоге.
Важно понимать как хранятся ресурсы в *.rc файлах и уделять время исследованию иерархии наследования классов, в часности от CWnd

Потом можно браться за SDI.
Также важно понимание что классы МФЦ это только "удобные оболочки" для работы с функциями WinAPI

Автор: malor 27.8.2007, 09:19
"Microsoft Visual C++ .NET. Библия пользователя", 2005
"Самоучитель Visual C++6. В примерах", 2003
Эти книги устарели ?

LexRema, что за книгу Секунова вы имели ввиду?

Автор: akizelokro 31.8.2007, 09:53
Небось, "Самоучитель Visual C++ 6" (без примеров). smile 

Автор: LexRema 18.9.2007, 16:19
Во первых - нельзя в чужой ветке задавать другой вопрос. Во вторых - ты где -то завтыкалsmile.


А насчет устарения книг... Все зависит от студии, которую вы решили использовать. Самоучители обычно пишуться под конкретные студии - 6.0, 2003, 2005.

Автор: it_medved 17.10.2007, 09:35
Время MFC безнадежно уходит в прошлое, по моему нет необходимости изучать технологию MFC, когда Microsoft забросила ее давненько, и 
перешла на .NET Framework. Поэтому лучше сразу осваивать C#. 

Автор: malor 17.10.2007, 19:47
"Win32 API. Эффективная разработка приложений" (автор Юрий Щупак) - как вы относитесь к ее изучению ?

Автор: Greeen 17.10.2007, 20:39
malor, не читал. А чем обусловлен твой выбор учить именно WinAPI?

Автор: dizzy1984 18.10.2007, 07:41
Я бы посоветовал такой вариант - прочитать все статьи www.firststeps.ru->visual c++->mfc (вообщем статьи каева артева по visual c++, их около 300), поотлаживать программы через шаги по инструкциям и разобраться в структуре и связях используемых mfc-классов. Правда чтобы не было непоняток надо еще прочитать про каркас программы на winapi и очередь сообщений + можно прочесть несколько глав для понимания понятийного аппарата винды из книги "джефри рихтер. программирование 32-разрядных приложений под windows с учетом 64-ной специфики", это главы, объясняющие что такое поток, процесс, синхронизация кода и т.д

Автор: S.A.G. 22.10.2007, 13:29
У меня так:

1. Сначала Win32 API для понимания того, как это все работает. Финогенов || Петзолд || Щупак
2. MFC. Что-нибудь из этого: http://forum.vingrad.ru/forum/topic-177852/anchor-entry1293704/0.html#

Автор: artymen 27.11.2007, 19:27
Хотел создать тему, но поиск показал, что не у меня одного такая проблема smile
Программирую на Delphi. VCL знаю почти вдоль и поперек. Еще ничего удобнее и лучше для быстрого создания приложений не видел. Со временем стал понимать, что делфя это несерьезно, у нее нет компонентов... да какой там компонентов, даже модулей(хидеров) нет для всего WinAPI (конечно, если хорошенько поискать, то можно что-нить наскрябать, например, в инете прилично компонентов для работы с DirectX в делфях). Далее я увидел, что любимая делфя глючная, ну и т.д. К чему это я рассказал ? А к тому, что прошу вас мне помочь и направить, как же учить этот MFC исходя из того что я уже знаю и умею, а, главное, понимаю. C++ я знаю, программировал немножко, знаю основы WinAPI. В инете я нашел гору учебников, но все они расчитаны на новичка, и начинаются с глав "Пишем первую программу на C++" (не то чтобы я такой гордый, но так тоскливо становится) и глава за главой рассказываются элементарные (для меня) вещи, т.е. полезной для меня информации там от силы 40%. А мне нужно быстро освоиться (давно просто уже пытаюсь перейти, не получается smile ). Вот уже с горя подумываю вообще англ. хелп читать из визуал студии. Форум ща почитал, оказывается MFC обсирают, восхваляют .NET, который я просто надух не переношу (например, мне нужно сейчас написать программку простенькую по учебе, отнесу ее преподу, и будет как то не очень весело ему на комп устанавливать 30-мбайтный фреймворк 2.0 полчаса, а потом еще и перезагружаться наверно). В-общем, я зашел в тупик. Как мне быстро выучить MFC или какая есть альтернатива ему (если он написан извращенцами) ? Сразу говорю, после VCL опускаться до WinAPI категорически отказываюсь. Нет, конечно, я его изучу досконально, потому что все-таки иногда им приходится пользоваться, но я вовсе не хочу писать тонны монотонного и скучного кода.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)