在JNA,你怎么映射联合结构像Xlib的JNA联合结构映射
typedef union _XEvent {
int type; /* must not be changed */
XAnyEvent xany;
XKeyEvent xkey;
XButtonEvent xbutton;
XMotionEvent xmotion;
XCrossingEvent xcrossing;
XFocusChangeEvent xfocus;
XExposeEvent xexpose;
XGraphicsExposeEvent xgraphicsexpose;
XNoExposeEvent xnoexpose;
XVisibilityEvent xvisibility;
XCreateWindowEvent xcreatewindow;
XDestroyWindowEvent xdestroywindow;
XUnmapEvent xunmap;
XMapEvent xmap;
XMapRequestEvent xmaprequest;
XReparentEvent xreparent;
XConfigureEvent xconfigure;
XGravityEvent xgravity;
XResizeRequestEvent xresizerequest;
XConfigureRequestEvent xconfigurerequest;
XCirculateEvent xcirculate;
XCirculateRequestEvent xcirculaterequest;
XPropertyEvent xproperty;
XSelectionClearEvent xselectionclear;
XSelectionRequestEvent xselectionrequest;
XSelectionEvent xselection;
XColormapEvent xcolormap;
XClientMessageEvent xclient;
XMappingEvent xmapping;
XErrorEvent xerror;
XKeymapEvent xkeymap;
long pad[24];
} XEvent;
以下XEvent我希望能够以后投的XEvent在JNA其他事件(如XKeyEvent, XButtonEvent,XMotionEvent ...等),根据收到的事件的类型。
我不是要求所有上述结构的完整映射。用一个小例子来说明如何做到这一点就足够了。
谢谢
你试过了吗?我使用XNextEvent在XGrabKeyboard的contrib中尝试了代码。它返回XEvent,类型是KeyPress/KeyRelease,但是,当我访问event.xkey.keycode时,无论按下哪个键,我总是得到零。如果您尝试成功,那么我会将您的答案标记为正确答案,因为问题可能在我的代码中。 – Untitled 2010-06-23 21:39:26