📄 listing_8_09.c
字号:
/************************************************************************* **** listing_8_9.c **** **** "Mouse Tracker". This program demonstrates the use of an event **** handler. **** *************************************************************************/#include <Xm/Label.h>void EvtHandler(); /* FORWARD definition */Widget appshell, /* The label and its shell */ the_label;void main( argc, argv ) int argc; char *argv[];{ appshell = XtInitialize( argv[0], "Listing_8_09", NULL, 0, &argc, argv ); the_label = XmCreateLabel( appshell, "TheLabel", NULL, 0 ); XtManageChild( the_label ); XtAddEventHandler( the_label, PointerMotionMask | ButtonPressMask | EnterWindowMask | LeaveWindowMask, FALSE, EvtHandler, NULL ); XtRealizeWidget( appshell ); XtMainLoop();}void EvtHandler( w, client_data, evt_ptr ) Widget w; caddr_t client_data; XEvent *evt_ptr;{ switch( evt_ptr->type ) { case ButtonPress: printf( "\nButtonPress\n" ); printf( " Time = %d\n", evt_ptr->xbutton.time ); printf( " x,y = %d, %d\n", evt_ptr->xbutton.x, evt_ptr->xbutton.y ); printf( " Button = %d\n", evt_ptr->xbutton.button ); break; case EnterNotify: printf( "\nEnterNotify\n" ); printf( " Time = %d\n", evt_ptr->xcrossing.time ); printf( " x,y = %d, %d\n", evt_ptr->xcrossing.x, evt_ptr->xcrossing.y ); break; case LeaveNotify: printf( "\nLeaveNotify\n" ); printf( " Time = %d\n", evt_ptr->xcrossing.time ); printf( " x,y = %d, %d\n", evt_ptr->xcrossing.x, evt_ptr->xcrossing.y ); break; case MotionNotify: printf( "\nMotionNotify\n" ); printf( " Time = %d\n", evt_ptr->xmotion.time ); printf( " x,y = %d, %d\n", evt_ptr->xmotion.x, evt_ptr->xmotion.y ); break; default: break; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -