Programming blog
|
|
}0RIC)-( | Дата: Среда, 28.08.2013, 08:37 | Сообщение # 1 |
=\Good-Racer/=
Группа: Tuner's Edge
Сообщений: 921
Статус: Offline
| Всем привет . Внезапно ко мне в голову пришла идея вести блог по программированию: записывать все что делаю, структурировать знания, все в голове не удержишь ведь. Так вот, создаю тему здесь, ведь форум все ровно пустует, а создавать ради этой идеи отдельный блог как-то не хочется.
|
|
| |
}0RIC)-( | Дата: Среда, 28.08.2013, 09:58 | Сообщение # 2 |
=\Good-Racer/=
Группа: Tuner's Edge
Сообщений: 921
Статус: Offline
| Не так давно я начал изучать MFC, посмотрел несколько гайдов и, понятно дело, ничего не понял. Что ж, придется самому разбираться. И так, в Visual Studio есть специальный Wisard для создания шаблонов программ. Там есть несколько типов приложения - Single Doc (Один открытый документ) и Multi Doc (Несколько открытых документов). Начнем с сингла... Убрав все лишние галочки при создании (типо печати на принтере, ActiveX контроллов) получаем на выходе: Ничего лишнего: менюшка, туллбар, иконка, кнопки открыть/закрыть. В исходных кодах дела обстоят не так просто, начнем с хидеров (*.h файлы), посмотрим что там есть.
MainFrm.h
Судя по всему описано самое главное окно приложения. В нем содержится туллбар. (стр. 33). Объявлена карта сообщений (стр. 38) Макрос DECLARE_DYNCREATE (стр. 12) И 4 важных метода: Конструктор (стр. 11) Виртуальный деструктор (стр. 26) Функция OnCreate (стр. 37) Переобъявленная функция PreCreateWindow (стр. 22)
Сообщение отредактировал }0RIC)-( - Среда, 28.08.2013, 10:03 |
|
| |
}0RIC)-( | Дата: Среда, 28.08.2013, 10:36 | Сообщение # 3 |
=\Good-Racer/=
Группа: Tuner's Edge
Сообщений: 921
Статус: Offline
| Resource.h
Ну как видно из названия - ресурсы. Да только не совсем так: здесь лежат просто идентификаторы (номера) ресурсов. Не очень то их много тут...
SingleDoc1.h
Здесь описан класс самого приложения. По задумке мелкомягких каждое приложение это отдельный объект. Здесь он и объявляется (стр. 32)
Тут тоже не очень много методов: Конструктор (стр. 20) Переобъявленная функция InitInstance (стр. 25) Функция отклика на сообщение OnAppAbout (стр. 28)
Ну и объявление карты сообщений.
SingleDoc1Doc.h
Класс документа приложения. Каждое приложение (сингл) работает со своим документом. Например в нем могут содержаться данные о 3D объекте. Его можно открыть, сохранить, создать новый, изменить и.т.д.
Итак, у него есть: Макрос DECLARE_DYNCREATE Карта сообщений. Конструктор (стр. 12) Виртуальный деструктор (стр. 32) Переобъявленная функция OnNewDocument (стр. 23) И еще немного непонятных методов.
|
|
| |
}0RIC)-( | Дата: Среда, 28.08.2013, 10:51 | Сообщение # 4 |
=\Good-Racer/=
Группа: Tuner's Edge
Сообщений: 921
Статус: Offline
| И последний значимый хидер SingleDoc1View.h
Это по-сути вьювпорт. У каждого сингл приложения может быть открыт одновременно только 1 документ, но его можно просматривать с нескольких так скажем "ракурсов". Если это сцена, то можно одновременно просматривать ее в поле рендера и в поле иерархии. А можно просто рендер с разных сторон.
В этом и заключается концепция Документ/Вид.
Так, в этом классе: Конструктор (стр. 11) Макрос DECLARE_DYNCREATE Функция GetDocument, с помощью которой можно получить документ, который отображается. Переобъявленная функция OnDraw, которая как раз и рисует этот документ. Переобъявленная функция PreCreateWindow. Виртуальный деструктор. Объявление карты сообщений.
|
|
| |
}0RIC)-( | Дата: Вторник, 03.09.2013, 17:54 | Сообщение # 5 |
=\Good-Racer/=
Группа: Tuner's Edge
Сообщений: 921
Статус: Offline
| Так, теперь разберемся с ресурсами:
Тут у нас какой-то Accelerator IDR_MAINFRAME, в котором видимо прописываются горячие клавиши.
Дальше идет диалог IDD_ABOUTBOX
2 Иконки: IDR_MAINFRAME IDR_SingleDoc1TYPE
Менюшка IDR_MAINFRAME
...
|
|
| |