Win32 в машинных кодах


Класс окна


До сих пор все создаваемые нами окна использовали стандартные системные классы окон. Однако практически каждое самостоятельное приложение создает и регистрирует свои собственные классы (хотя бы для главного окна), дающие возможность реализовать уникальные особенности именно этого приложения. Настало время и нам создать собственный класс окна.

Для регистрации класса окна необходимо заполнить специальную структуру - WNDCLASSEX, в которой собираются вместе все необходимые для создания класса сведения. Структура имеет 12 полей, каждое размером 4 байта:

  1. размер данной структуры в байтах (30h);
  2. флаги, указывающие стили класса;
  3. адрес главной функции окна (по традиции ее называют также главной процедурой окна);
  4. количество дополнительных байтов класса (эти байты, если имеются, следуют непосредственно за данной структурой);
  5. количество дополнительных байтов окна (эти байты, если имеются, следуют после внутренней структуры окна);
  6. описатель экземпляра приложения. Это должно быть то приложение, в адресном пространстве которого размещена главная функция окна (поскольку одна и та же функция используется для всех окон данного класса);
  7. описатель ресурса значка, отображаемого в строке заголовка окна и на панели задач. Для получения описателя ресурс значка должен быть предварительно загружен;
  8. описатель ресурса курсора, ассоциированного с данным окном. При попадании указателя мыши в рабочую область окна система автоматически меняет форму курсора на данную. Ресурс курсора также должен быть предварительно загружен;
  9. описатель кисти, использующейся при создании фона окна. Объект кисти должен быть предварительно создан; либо должно использоваться число, соответствующее одному из предопределенных системных цветов;
  10. адрес строки с именем ресурса меню. Данное меню будет использоваться в создаваемом окне по умолчанию, если в функции CreateWindowExA не предусмотрено использование другого меню. Если это поле равно 0, у класса окна нет меню по умолчанию;
  11. адрес строки с именем класса. Это имя используется функцией CreateWindowExA при создании окна данного класса;
  12. описатель мелкого значка, связанного с данным окном. Если его нет, мелкий значок ищется через описатель ресурса значка.




Начало  Назад  Вперед



Книжный магазин