Написание приложений Win32 Apps с помощью одних классов C++ (часть 1)

ОГЛАВЛЕНИЕ

В следующей статье будет рассмотрено написание приложений Win32 Apps с помощью одних классов C++

•    Скачать исходники - 29.2 Кб
•    Скачать демонстрационный проект - 39.6 Кб

Введение

При программировании на C++ для Win32 C часто применяется MFC, WTL, .NET, WxWin, или некоторый "каркас", или обертка.

Одно из достоинств в том, что они "упрощают" определённые операции, скрывая определенные детали, в то время как запутанность между каркасными классами, наоборот, затрудняет работу, если приходится делать нечто необычное.

Хотелось ли вам когда-либо при переопределении определенных классов или функции MFC взломать определенное кем-то другим поведение? Сколько раз вы обнаруживали странные побочные эффекты вследствие того, что документ, кадры и виды часто уничтожают друг друга  не всегда в очевидном порядке?

Далее  предлагается другой подход. Разумеется, нет личного состава всей команды MS AFX, поэтому не ждите полной замены WTL или ATL. Вводится лишь другая возможная точка зрения.

Будет реализована конструкция, минимизирующая запутанность классов, чтобы сделать предложенные классы многократно используемыми. В частности, если классу A нужен класс B, то классу B не нужен класс A. Следовательно, можно применять эти классы вне приведенного каркаса, возможно, даже в приложении MFC.

Использовались только контейнеры и алгоритмы STL (Standard Template Library - стандартная библиотека шаблонов) и идеи некоторых авторов CP: особенно Пола Бартлетта и Алекса Фарбера. (Их код не использовался повторно, но их идеи были истолкованы по-новому.)

Соглашения

Все классы использовались согласно этой статье. Все используемые пространства имен были помещены в корневое пространство имен по имени "GE_". Если это имя причиняет затруднения каким-то другим библиотекам, замените все его вхождения в файлах на что-то другое.