鼠标事件失灵

0

我用fillrectangle创建了个矩形,鼠标移动上去后没有触发cleardevice()

#include<graphics.h>
#include<conio.h>
void menu()
{

	initgraph(1200, 700); //加载图形化窗口
	MOUSEMSG m;
	m = GetMouseMsg();
	HWND hWnd = GetHWnd(); //获取当前窗口句柄
	LONG oldstyle = GetWindowLong(hWnd, GWL_STYLE);
	SetWindowLong(hWnd, GWL_STYLE, oldstyle | WS_MAXIMIZEBOX | WS_SIZEBOX);
	IMAGE image;
	loadimage(&image, "D:/编程/c语言/game/Release/Test.gif");
	putimage(0, 0, &image);

	fillrectangle(200, 140, 600, 160);
	while (1)
	{
		if (m.x >= 200 && m.x <= 600 && m.y >= 140 && m.y <= 160){//检测鼠标的位置 是否满足条件
			cleardevice();
		}
		
	}
	closegraph();
}
int main()
{
	void menu();
	menu();
}
0

你在循环的过程中,并没有获取鼠标新的位置。

修改后的代码如下(删掉了无关代码):

#include<graphics.h>
#include<conio.h>

void menu()
{
	initgraph(1200, 700); //加载图形化窗口
	MOUSEMSG m;

	fillrectangle(200, 140, 600, 160);
	while (1)
	{
		m = GetMouseMsg();
		if (m.x >= 200 && m.x <= 600 && m.y >= 140 && m.y <= 160)//检测鼠标的位置 是否满足条件
		{
			cleardevice();
		}
	}
	closegraph();
}

int main()
{
	menu();

	return 0;
}
ava
慢羊羊

2020-8-5

技术讨论社区
相关提问