⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 moustrap.h

📁 鼠标中断高级开发功能  
💻 H
字号:
/***********************************************************************/
/*                                                                     */
/*    MOUSE.H                                                          */
/*                                                                     */
/*   Author: James M. Curran                                           */
/*   Copyright (c) 1988, James M. Curran                               */
/*                                                                     */
/***********************************************************************/
/* Created : Friday, September  9, 1988 at 10:18 AM                    */
/*                                                                     */
/* Revision: 1.0   Last Revised: Sunday, September 11, 1988 @ 5:39 PM  */
/***********************************************************************/


#define M_Undefined		0

/* Paging Method Types		*/
#define M_Overlaid_Pages	16
#define M_Single_Pages		65535


/*  Page Coordinate Types	*/
#define M_Text_Coord		3
#define M_Graphic_Coord		0

/*  Buttons			*/
#define M_Left			0
#define M_Right			1
#define	M_Center		2
#define M_Middle		2

/*  Cursor direction (for limits)*/
#define	M_HORIZ			1
#define	M_VERT			2


#define MERROR		       -1	/* An error occured (return value) */
#define MNOERROR		0	/* NO error occured (return value) */

/*	Errors (in M_ERROR if return value was MERROR)		  	   */
#define	MNOINIT			1	/* M_Page_Method not initialized   */
#define MNOSPACE		2	/* Insuficent memory to add item   */
#define MTOOMANY		3	/* Attemp to create more than 16 pages */
#define MNOREINIT		4	/* Attempt to execute DEFINE...SYSTEM twice */
#define MNOTPAGE		5	/* Page referenced hasn't been defined */
#define MNOTBUTTON		6	/* Button referenced-- not defined */
#define MNOMOUSE		7	/* There's no mouse attached	   */
#define MBUTTONRET		8	/* Button define with return value */
#define MNOHOTSPOT              9       /* Hot Spot referenced-- not defined*/
#define MNOACTIVE	       10	/* There is no page active	   */
 	

#define	TC(char,fore,back) char+fore*256+back*4096


typedef unsigned	mouse_t;

	struct	M_P_D {
			mouse_t	Page_ID;
			mouse_t	Top;
			mouse_t	Left;
			mouse_t	Right;
			mouse_t	Bottom;
			mouse_t	Coord_Type;
			struct	M_P_D		*Next;	       
			};

#define M_Page_Definition struct M_P_D

	struct	M_B_D {
			mouse_t	Page_ID;
			mouse_t	Button;
			mouse_t	Return_Value;
			struct  M_B_D		*Next;
			};

#define	M_Button_Definition struct M_B_D


	struct	M_HS_D {
			mouse_t	HS_ID;
			mouse_t	Page_ID;
			mouse_t Button;
			mouse_t	Top;
			mouse_t	Left;
			mouse_t	Right;
			mouse_t	Bottom;
			mouse_t	Return_Value;
			struct	M_HS_D		*Next;
			};

#define	M_Hot_Spot_Definition struct M_HS_D




/*	Mouse Control Primatives			*/

mouse_t cdecl Check_Mouse(void);

void 	cdecl Show_Mouse(void);

void 	cdecl Hide_Mouse(void);

mouse_t cdecl Get_Mouse_Position(mouse_t  *, mouse_t  *);

void 	cdecl Set_Mouse_Position(mouse_t X, mouse_t Y);

mouse_t cdecl Get_Mouse_Press(mouse_t Button, mouse_t  *count, mouse_t  *X,\
			 mouse_t  *Y);

mouse_t cdecl Get_Mouse_Release(mouse_t Button, mouse_t  *count, mouse_t  *X,\
			 mouse_t  *Y);

void 	cdecl Set_Mouse_Limit(mouse_t Direction, mouse_t Minimum,\
			 mouse_t Maximum);

void    cdecl Set_Mouse_Graphic_Cursor(mouse_t Hot_x, mouse_t Hot_Y,\
			 unsigned long (*Mask)[]);
void    cdecl Set_Mouse_Text_Cursor(mouse_t typ, mouse_t p1, mouse_t p2);

void    cdecl Get_Mickeys(mouse_t *X, mouse_t *Y);



/*	Advanced Mouse Control Routines			*/


extern  mouse_t cdecl Define_Mouse_System(mouse_t Page_Type);

extern  mouse_t cdecl Clear_All_Mouse_Definitions(void );

extern  mouse_t cdecl Add_Mouse_Page(mouse_t Page_Type,mouse_t Top,
			mouse_t Left,mouse_t Bottom,mouse_t Right);

extern  mouse_t cdecl Delete_Mouse_Page(mouse_t Page_ID);

extern  mouse_t cdecl Activate_Mouse_Page(mouse_t Page_ID);

extern  mouse_t cdecl DeActivate_Mouse_Page(mouse_t Page_ID);

extern  mouse_t cdecl Clear_Mouse_Pages(void );

extern  mouse_t cdecl Add_Mouse_Button(mouse_t Page_ID,mouse_t Button,
			mouse_t Return_Value);

extern  mouse_t cdecl Delete_Mouse_Button(mouse_t Page_ID,mouse_t Button);

extern  mouse_t cdecl Add_Mouse_Hot_Spot(mouse_t Page_ID,mouse_t Button,
			mouse_t top, mouse_t left,mouse_t bottom,
			mouse_t right,mouse_t ret_value);

extern  mouse_t cdecl Delete_Mouse_Hot_Spot(mouse_t HS_ID);

extern  mouse_t cdecl Read_Mouse(void );


/*	Global variables available for use in application programs	*/

	extern	mouse_t	M_Paging_Method; /* Overlaid, Single, or Undefined */
	extern	mouse_t	M_Error;	 /* Error Condition		   */
	extern	mouse_t	_mouse_there;	 /* 0=No Mouse, 2 or 3= # of buttons*/


/*	"Force" automatic use of ?MOUSE.LIB during link			*/

#if M_I86SM
#pragma comment(lib,"SMouse") 
#endif

#if M_I86CM
#pragma comment(lib,"CMouse") 
#endif

#if M_I86MM
#pragma comment(lib,"MMouse") 
#endif

#if M_I86LM
#pragma comment(lib,"LMouse") 
#endif	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -