LINUX.ORG.RU

как узнать какая клавиша нажата с помощью иксов? (не какой символ а какая клавиша)


0

0

как узнать какая клавиша нажата с помощью иксов? (не какой символ а какая клавиша)

есть такой код

INT CApplication::Run()

{

KeySym key;

XEvent event;

do

{

while(XPending(m_pDisplay) > 0)

{

XNextEvent(m_pDisplay, &event);

if(event.type == MotionNotify)

{

//printf("motion: %d %d \n", event.xmotion.x, event.xmotion.y);

m_Input.OnMouseMove(event.xmotion.x, event.xmotion.y);

}

else if(event.type == KeyPress)

{

XLookupString(&event.xkey, NULL, 0, &key, NULL);

//и здесь в key у нас символ нажатой клавиши а нужен не сивол а типа идентификатор для самой клавиши

}

else if(event.type == KeyRelease)

{

XLookupString(&event.xkey,NULL,0,&key,NULL);

m_Input.OnKeyRelease(key);

}

anonymous

KeyCode - это идентификатор клавишы (типа скан кода)

KeySym - это код клавиши в текущем контексте модификаторов

lg ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.