Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
A05_API.doc
Скачиваний:
10
Добавлен:
12.11.2019
Размер:
1.3 Mб
Скачать

If (!RegisterClassEx(&wc))

{

char msg[100] = "Невозможно зарегистрировать окно: ";

strcat(msg, szClassName);

MessageBox(NULL, msg, "Error", MB_OK);

return;

}

// Создаем окно

hWnd = CreateWindow (szClassName, windowName, windowStyle,

X, y, width, height, hParent,

(HMENU)NULL, hInst, NULL);

If (!hWnd)

{

char text[100] = "Невозможно создать окно: ";

strcat (text, windowName);

MessageBox (NULL, text, "Error", MB_OK);

return;

}

// Показываем окно

ShowWindow (hWnd, cmdShow);

}

Обратим внимание на некоторые моменты предложененого решения:

  • заголовок конструктора класса TTVWindow содержит 12 параметров. Первые четыре параметра являются обязательными, остальные имеют значения по умолчанию;

  • четвертый параметр является указателем на функцию, принимающую четыре аргумента и возвращающую значение типа LRESULT. Здесь обязателен спецификатор WINAPI или эквивалентный ему спецификатор __stdcall;

  • код, отвечающий за подготовку и создание окна, размещен в теле конструктора класса TTVWindow.

Контрольные вопросы

5.7. Меню и быстрые клавиши

5.8. Диалоговые окна

5.9. Программирование анимации

A

API 1

Application Programming Interface 1

B

bitmap 19

brush 12, 19

C

client coordinates 22

clipping region 20

cкан-код 27

D

dead keys 30

device context 18, 19

device coordinates 23

device space 23

F

font 19

G

graphic device interface 19

Graphical User Interface 2

H

hot spot 31

I

invalid region 20

K

keyboard focus 27

M

message loop 16

message queue 16

mouse cursor 31

P

page space 23

palette 19

pen 19

R

region 19

S

scan code 27

screen coordinates 22

U

update region 20

V

VCL 1

virtual key code 27, 29

visible region 20

Visual Components Library 1

W

window class 6

window coordinates 22

window messages 6

world space 23

а

активное окно 27

в

видимый регион 20

виртуальная клавиша 16

виртуальный код клавиши 27

В

Виртуальный код клавиши 29

г

горячая точка 31

Г

Графический интерфейс устройства 19

д

дескриптор контекста устройства 18, 19

И

Интерфейс прикладного программирования 1

к

кисть 6, 18, 19

К

Кисть 12

к

класс окна 6

клиентские координаты 22, 24

контекст устройства 18, 19, 20, 23

координаты устройства 23

курсор мыши 31

м

мировая система координат 23

н

недействительный регион 20

немые клавиши 30

О

Обновляемый регион 20

о

окно сообщений 8

оконная процедура 6, 27

оконные сообщения 6

оконныеt координаты 22

О

Оконный класс 6

о

очередь сообщений 6, 7, 16

п

палитра 19

перо 18, 19, 24

р

растровое изображение 19

регион 18, 19

регион отсечения 20

с

система координат устройства 23

соглашения о вызове 8

стандартные оконные классы 6

стандартный оконный класс 6

страничная система координат 23, 24

Т

Текущая позиция пера 25

ф

физическая система координат 23

фокус ввода 27

функция обратного вызова 6, 17

ц

цикл обработки сообщений 6, 7, 16, 27

ш

шрифт 18, 19

э

экранные координаты 14, 16, 22, 23

элементов управления 6

1 Графический интерфейс пользователя

2 Окно верхнего уровня не имеет родительского окна

3 С-строка обязана завершиться нулевым байтом. В каждом байте содержится один символ в соответствии с кодировкой ANSI. Далее, если это не оговаривается особо, под строками будут подразумеваться именно С-строки.

4 Unicode-строка также завершается нулевым байтом, но для хранения каждого символа используется два байта. Чтобы использовать в проекте кодировку UNICODE, необходимо предусмотреть директиву #define UNICODE

5 Это расширенная версия (Ex – от extended - расширенный) функции RegisterClass из предыдущих версий Windows.

6 Тип TCHAR интерпретируется как char, если макрос UNICODE не определен. В ином случае он интерпретируется как wchar_t (Unicode –символ).

7 Информация об этом факте хранится в одном из полей структуры ps

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]