Программирование для IBM OS2

         

Макрокоманда CHARMSG


Для извлечения отдельных компонент сообщения WM_CHAR удобно использовать макрокоманду CHARMSG , определенную следующим образом:

#define CHARMSG(pmsg) \ ((PCHRMSG)((PBYTE)pmsg + sizeof(MPARAM) ))

Эта макрокоманда пользуется структурой CHRMSG , показанной ниже:

typedef struct _CHARMSG { USHORT fs; // поле флагов UCHAR cRepeat; // счетчик повторений UCHAR scancode; // скан-код USHORT chr; // код символа USHORT vkey; // виртуальный код клавиши } CHRMSG; typedef CHRMSG *PCHRMSG;

Ниже мы показали пример использования этой макрокоманды для сохранения всех параметров сообщения WM_CHAR в структуре cm типа CHRMSG:

CHRMSG cm; cm.chr = CHARMSG(&msg) ->chr; cm.vkey = CHARMSG(&msg) ->vkey; cm.scancode = CHARMSG(&msg) ->scancode; cm.cRepeat = CHARMSG(&msg) ->cRepeat; cm.fs = CHARMSG(&msg) ->fs;



Содержание раздела