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


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


typedcf struct _1NPUT_REC'ORD { WORD EventType; union )

KEY EVENT_RECORD KeyEvent;

MOUSE_EVENTRECORD MouseEvent;

WINDOWJ3UFFER SIZE RECORD WindowBuflcrSizcEvent;

MENU EVENT_RECORD MenuEvcnt;

FOCUS_EVENT_RECORD FocusEvent; j Event; } INPUT RECORD, *PINPUT RECORD;

Даже не особо вникая в смысл полей, видно, что консоль обрабатыва­ет пять типов событий. Их перечень, взятый из файла wincon.h, приведен в табл. 58.

Т а б л и ц а 58. События, обрабатываемые консолью

Флаг

Значение

 

Эффект

 

KEY EVENT

 

0x000 1

 

Событие с клавиатурой

 

MOUSE EVENT

 

0x0002

 

Событие с мышью

 

WINDOW_BUFFER_SIZE_EVENT

 

0x0004

 

Событие по изменению размерен

 

 

 

 

 

экрана

 

MENU EVI-NT

 

0x0008

 

Событие с меню

 

FOCUS_ EVENT

 

0x00 1 0

 

Изменение фокуса

 

Обычно события меню, фокуса устройства и изменения размеров эк­рана обрабатываются системой, на долю программиста остаются события с клавиатурой и мышью. Всю информацию о событии можно получить с помощью функции ReadConsolelnputQ. По привычке приводим ее описа­ние из файла vvincon.h:

259

WINBASEAPI BOOL WfNAPI ReadConsoleInputA(

HANDLE hConsolelnput,

PfNPUT_RECORD IpBuffer,

DWORD nLength,

LPDWORD IpNumberOfEventsRead); WINBASEAPI BOOL WINAPI ReadConsoleInputW(

HANDLE hConsolelnput,

PINPUT_RECORD IpBuffer,

DWORD nLength,

LPDWORD IpNumberOfEventsRead);

#ifdef UNICODE

#define ReadConsoIelnput ReadConsolelnputW

#else

#define ReadConsoIelnput ReadConsolelnputA

#endif// IUNICODE

Здесь:

hConsolelnput - хэндл входного потока консоли;

IpBuffer - указатель на структуру типа INPUT_RECORD, в которую будут записаны данные о событии (или массив структур, если считываются данные более чем об одном событии);

nEength - число считываемых записей о событии;

IpNumberOfEventsRead - указатель на двойное слово, в которое запи­сывается число реально считанных данных.




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



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