listing_8_09.c

来自「This source code has been tested under O」· C语言 代码 · 共 76 行

C
76
字号
/*************************************************************************                                                                    ****  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 + =
减小字号Ctrl + -
显示快捷键?