Содержание

WinAPI MSDN

Windows API - построен на С. Поэтому используются только функции и указатели, нет никаких классов С++.

Проекты писать только на Unicode. Для этого в Использование IDE Microsoft Visual Studio Code Unicode нужно выставить в свойствах проекта или в теле программы определить макрос UNICODE.

Алгоритм создания окна приложения на WinAPI:

  1. Регистрируем класс главного окна в Windows. (Для встроенных классов (например BUTTON) регистрация не нужна)
  2. Создаем окно
  3. Обрабатываем очередь сообщений

Элементы управления создаются только при помощи функции CreateWindow. Они имеют для каждого класса свои сообщения, нотификационные сообщения WM_NOTIFY.

MSDN

Официальные ресурсы:

Примеры

Сообщения Windows

Система отправляет сообщение оконной процедуре с набором четырех параметров: дескриптор окна, код сообщения, и два значения называемые параметрами сообщения (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).

Функции WinAPI