Easyx中鼠标的使用。

Posted Harris-H

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Easyx中鼠标的使用。相关的知识,希望对你有一定的参考价值。

Easyx中鼠标的使用。

1.MOUSEMSG

鼠标结构体.

// 鼠标消息
// 支持如下消息:
		WM_MOUSEMOVE		鼠标移动
		WM_MOUSEWHEEL		鼠标滚轮拨动
		WM_LBUTTONDOWN		左键按下
		WM_LBUTTONUP		左键弹起
		WM_LBUTTONDBLCLK	左键双击
		WM_MBUTTONDOWN		中键按下
		WM_MBUTTONUP		中键弹起
		WM_MBUTTONDBLCLK	中键双击
		WM_RBUTTONDOWN		右键按下
		WM_RBUTTONUP		右键弹起
		WM_RBUTTONDBLCLK	右键双击
struct MOUSEMSG

	UINT uMsg;				 当前鼠标消息
	bool mkCtrl;			 Ctrl 键是否按下
	bool mkShift;			 Shift 键是否按下
	bool mkLButton;			 鼠标左键是否按下
	bool mkMButton;			 鼠标中键是否按下
	bool mkRButton;			 鼠标右键是否按下
	short x;				 当前鼠标 x 坐标
	short y;				 当前鼠标 y 坐标
	short wheel;			 鼠标滚轮滚动值 (120 的倍数)
;

bool MouseHit();			 检查是否存在鼠标消息
MOUSEMSG GetMouseMsg();		 获取一个鼠标消息。如果没有,就等待
void FlushMouseMsgBuffer();	 清空鼠标消息缓冲区

实例:用鼠标左键实现相应功能。

#undef UNICODE
#include <graphics.h>
#include <conio.h>
#include<stdio.h>
int main()

	MOUSEMSG m;
	// 初始化绘图窗口
	initgraph(640, 480);
	// 设置背景色为白色
	setbkcolor(WHITE);
	// 用背景色清空屏幕
	cleardevice();
	setfillcolor(RED);
	fillrectangle(100, 100, 300, 150);
	settextstyle(15, 0, "微软黑体");
	setbkmode(TRANSPARENT);
	outtextxy(150, 120, "Hello,World!");
	while (1) 
		m = GetMouseMsg();
		if (m.x >= 100 && m.x <= 300 && m.y >= 100 && m.y <= 150) 
			setlinecolor(BLUE);
			rectangle(90, 95, 310, 160);
			if (m.uMsg == WM_LBUTTONDOWN) 		//如果按下鼠标左键实现相应功能.
				closegraph();
				printf("HHHHHHHHHHHHHHHH\\n");
				break;
			
		
		else 	//当鼠标不在目标位置就覆盖之前的蓝色边框.
			setlinecolor(WHITE);
			rectangle(90, 95, 310, 160);
		
	
	// 按任意键退出
	_getch();
	closegraph();//关闭窗口

以上是关于Easyx中鼠标的使用。的主要内容,如果未能解决你的问题,请参考以下文章

total commander 不能重命名以黑体显示的文件?

项目实战C语言+easyX带你实现:找方块

[rrt_algorithm03]基于easyX的交互界面实现

[rrt_algorithm04]基于easyX的任意障碍物绘制

Dev-Cpp/Code::Block/MinGW下使用EasyX

C++经典绘图工具EasyX