Windows API - построен на С. Поэтому используются только функции и указатели, нет никаких классов С++.
Алгоритм создания окна приложения на WinAPI:
Элементы управления создаются только при помощи функции CreateWindow. Они имеют для каждого класса свои сообщения, нотификационные сообщения WM_NOTIFY.
Официальные ресурсы:
Система отправляет сообщение оконной процедуре с набором четырех параметров: дескриптор окна, код сообщения, и два значения называемые параметрами сообщения (message parameters). Дескриптор окна (window handle) идентифицирует окно, для которого предназначено сообщение. Система использует его, чтобы установить какая оконная процедура должна принять сообщение. Код (идентификатор) сообщения (message identifier) - именованная константа, которая идентифицирует цель сообщения. Когда оконная процедура принимает сообщение, она использует код сообщения, чтобы установить, как обработать его. Например, код сообщения WM_PAINT сообщает оконной процедуре, что рабочая область окна изменилась и должна быть перерисована. Параметры сообщения определяют данные или расположение данных, использованных оконной процедурой при обработке сообщения. Предназначение и значение параметров сообщения зависят от содержания сообщения. Параметр сообщения может содержать целое число, упакованные битовые флажки, указатель на структуру, содержащую дополнительные данные и так далее. Когда сообщение не использует параметры сообщения, они обычно устанавливаются в значение ПУСТО (NULL). Оконная процедура должна проверить код сообщения, чтобы установить, как интерпретировать параметры сообщения.
ABM Панель инструментов рабочего стола программы BM Кнопка органа управления CB Орган управления - комбинированное окно CBEM Орган управления - улучшенное комбинированное окно CDM Стандартное диалоговое окно DBT Устройство DL Окно списка с перетаскиваемыми элементами DM Заданная по умолчанию командная кнопка органа управления EM Средства редактирования HDM Орган управления заголовком HKM Орган управления "горячими" клавишами IPM Орган управления IP - адресом LB Орган управления - окно со списком LVM Орган управления - просмотр списка MCM Орган управления - календарь на месяц PBM Индикатор хода выполнения процесса PGM Орган управления - пейджер PSM Окно свойств RB Орган управления - панель управления браузером Интернет SB Строка состояния окна SBM Орган управления - полоса прокрутки STM Статический орган управления TB Панель инструментов TBM Панель задач TCM Орган управления - вкладка TTM Орган управления - подсказка TVM Орган управления - дерево просмотра UDM Орган управления - полоса прокрутки поля редактирования WM Окно вообще
Система использует два метода отправки сообщения по маршруту оконной процедуре:
Сообщения, помещенные в очередь сообщений, называются поставленные в очередь (синхронные) сообщения (queued messages). Они появляются, прежде всего, как результат ввода данных пользователем через мышь или клавиатуру, такие сообщения как WM_MOUSEMOVE, WM_LBUTTONDOWN, WM_KEYDOWN и WM_CHAR. Другие поставленные в очередь сообщения включают таймер, рисование и выход из программы: WM_TIMER, WM_PAINT иWM_QUIT. Большинство других сообщений, которые отправляются непосредственно оконной процедуре, называются не поставленные в очередь (асинхронные) сообщения (nonqueued messages).
CS_BYTEALIGNCLIENT Выстраивает клиентскую часть окна на границу байта, что позволяет достичь большей производительности при отрисовке CS_BYTEALIGNWINDOW То же что и CS_BYTEALIGNCLIENT, только увеличивает производительность при перемежении окна CS_CLASSDC Создает контекст устройства, которые разделяется между всема наследнками этого класса.Все окна, созданные на базе класса, имеющего стиль CS_CLASSDC, будут использовать один общий контекст отображения. CS_DBLCLKS Разрешает обработку сообщений о двойном щелчке мыши CS_DROPSHADOW Отбрасывать тень CS_GLOBALCLASS Разрешает создание окон с независимыми идентификаторами приложений, если этот флаг не указан, то значение hInstance при создании окна должно быть таким же как и при регистрации класса RegisterClass. CS_HREDRAW Перерисовывает окно при его перемещении по горизонтали CS_NOCLOSE Убирает команду закрыть из системного меню окна CS_OWNDC Создает уникальный контекст устройства для каждого вновь создаваемого окна CS_PARENTDC У дочернего окна будет область отсечения от родительского. Повышает производительность. CS_SAVEBITS Позволяет сохранять область экрана в виде битовой матрицы закрытую в данный момент другим окном, используется для восстановления экрана. CS_VREDRAW Перерисовывает окно при его перемещении по вертикали