LINUX.ORG.RU

Ввобд с клавиатуры и мыши


0

0

Кто знает как перехватить нажатие/отпускание клавишь? То есть мне надо чтобы например при нажатии клавиши в окне вызывалась функция OnKeyDown(); А когда я эту клавишу отпускаю чтобы вызывалось OnKeyUp();

С OnKeyDown(); Я разобрался средстравми иксов (и то криво: использую событие KeyPress). А вот как быть с OnKeyUp(); не знаю.

И ещё: как сделать ввод с мышки (то бишь нажатие, отпускание клавишь, перемещение)? Помогите пожалуйста: буду очень благодарен!

apt-get install xspecs

и читать на тему Xlib

Begemoth ★★★★★
()

Пишу на C++. В документации ничего не нашёл, вероятно по причине плохого знания инглиша.

Belevern
() автор топика

Точнее в документации нашёл фичу с помощью которой сделал OnKeyDown.

Belevern
() автор топика

Ты это, про Xlib чтоли?

---------------------------------------------

XSetWindowAttributes attrs;

...

attrs.event_mask = KeyPressMask | KeyReleaseMask |
                   ButtonPressMask | ButtonReleaseMask |
                   PointerMotionMask;

...

myWindow = XCreateWindow(..., &attrs);

...

while(XPending(display) > 0){
  XNextEvent(display, &event);

  switch(event.type){
    case KeyPress :
    case KeyRelease :
    case ButtonPress :
    case ButtonRelease :
    case MotionNotify :
  };
}

----------------------------------------

man XCreateWindow
man XSetWindowAttributes

И вообще в х-либ лучше не лезь, убьет ) Возьми SDL или Qt

binnehex
()

Большое спасибо!

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