Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 13


FAR *LPWNDCLASSA; typedef struct tagWNDCLASSW {

UINT        style;

WNDPROC     IpfnWndProc;

int         cbClsExtra;

int         cbWndExtra;

HINSTANCE   hlnstance;

HICON       hlcon;

HCURSOR     hCursor;

HBRUSH      hbrBackgroimd;

EPCWSTR     Ips/MenuName; LPCWSTR     IpszClassName; } WNDCLASSW, *P\VNDCLASSW, NEAR *NPWNDCLASSW,

FAR "LPWNDCLASSW; tfifdef UNICODE

typcdcf WNDCLASSW WNDCLASS; typedcfPWNDCLASSWPWNDCLASS; typedef NPWNDCLASSW NPWNDCLASS; tvpedef LPWNDCLASSW LPWNDCLASS;

#clsc

typedef WNDCLASSA WNDCLASS; typedcf PWNDCLASSA PWNDCLASS; typedef NPWNDCLASSA NPWNDCLASS; typedef LPWNDCLASSA LPWNDCLASS;

#cndif/7 UNICODE

О том, почему структура объявляется так странно и что такое Unicode, мы поговорим в разделе, посвященном Unicode. А пока давайте считать, что это просто разные описания одной и той же структуры.

16

Особое внимание следует обратить на первое, второе и последнее по­ля. Почему? - Сейчас станет ясно.

Стиль окна я определяю оператором

WndCIass.style = CS HREDRAW   CS VREDRAW

В winuser.h описаны тринадцать стилей окна. Наименования их иден­тификаторов начинаются с CS, что, вероятно, означает «Class style». Для спим окна отведено 16 битов и только один из этих битой установлен в единицу. Другими словами, стили, упомянутые в winuser.h, используются как битовые флаги, т. е. с этими стилями можно производить операции логического сложения п логического умножения для получения комбинированных стилей. Перечень шагов приведен в табл. 3.

Я отдаю себе отчет в том, что сейчас описания многих флагов совер­шенно непонятны, но через несколько разделов все будет ясно.

По причине, известной только Microsoft, отсутствуют стили со значениями 0x0010 и 0x0400. Те флаги, которые использует программа «Hello, world!», означают, что окну необходимо полностью перерисовать­ся (запомните это слово. О перерисовке мы еще не раз вспомним!) при изменении его размеров по горизонтали и по вертикали. Попробуйте поиграть с размерами окна и сделать так, чтобы строка появилась не в середине! Надеюсь, вам это не удастся. Как бы вы не дергали его, текст постоянно будет оставаться в центре экрана.




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



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