Автор: Роман Панышев (irrona)
Окно в Windows является объектом, занимающим прямоугольный участок экрана. Даже если окно будет круглым, все равно оно вписывается в ассоциированную с его контекстом прямоугольную область. Окно может содержать другие окна, называемые дочерними. С каждым окном связанны функциональные возможности, присущие только ему, либо имеющие общие для всех окон особенности. Окно обладает рядом характеристик:
Что касается внешнего вида (дизайна) окна, - он зависит от класса окна и примененного при создании окна стиля. Что все это значит? Класс окна - это своего рода главный идентификатор, используемый при создании окон одного типа. Например все текстовые поля в Windows относятся к классу Edit, кнопки - к классу Button, а статичные надписи - к классу Static. Каждый оконный класс имеет стандартный набор стилей, которые можно указать при создании окна, например, у оконного класса Static имеется стиль SS_CENTER, позволяющий отцентрировать выводимый на надписи текст. Стиль есть по сути цифра, а набор стилей - набор цифр, объединенных операцией ИЛИ (OR).
Реакция на сообщения также напрямую зависит от класса окна. Например только у класса Static имеется возможность обработки сообщения STM_SETIMAGE, позволяющего ассоциировать с надписью какую-нибудь картинку или иконку.
Но не думайте, что тот ограниченный набор стилей и сообщений, отведенный классу окна - это все что Вам доступно при использовании Windows API. Совсем нет. Вы вполне свободно можете сами увеличить количество стилей и сообщений как класса в целом, так и отдельно взятого окна. Для этих целей Windows API содержит ряд функций, предназначенных для сабклассирования (для изменения одного отдельно взятого окна) и суперклассирования (для изменения целого оконного класса). Но об этом позже.