game_sb 鼠标1.1

一:前言

增加了两个函数,用来判断鼠标位置。

二:增加功能

1:sbax(char c);

'l'返回左键是否点击

'r'返回右键是否点击

'm'返回左右键是否有一个键点击

2:pdsb(char c,int hx,int hd,int lx,int ld);

判断是否在规定大小点击。

hx:行的上限

hd:行的下限

lx:列的上限

ld:列的下限

三:代码

namespace _game_sb
{
	const int sb_z=VK_LBUTTON,sb_y=VK_RBUTTON;
	struct hl{
		int h;
		int l;
	};
	void ycgb(){
		CONSOLE_CURSOR_INFO cciCursor;
		HANDLE hStdOut=GetStdHandle(STD_OUTPUT_HANDLE);
		if(GetConsoleCursorInfo(hStdOut,&cciCursor)) {
			cciCursor.bVisible=FALSE;
			SetConsoleCursorInfo(hStdOut,&cciCursor);
		}
		return;
	}
	void ycbj(){
		HANDLE hStdin=GetStdHandle(STD_INPUT_HANDLE);
		DWORD mode;
		GetConsoleMode(hStdin,&mode);
		mode &=~ENABLE_QUICK_EDIT_MODE;
		SetConsoleMode(hStdin, mode);
		return;
	}
	void ydgb(int x,int y) {
		COORD pos={y-1,x-1};
		HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
		SetConsoleCursorPosition(hOut,pos);
	}
	bool sbax(char c){
		if(c=='l')return GetKeyState(sb_z)<0;
		if(c=='r')return GetKeyState(sb_y)<0;
		if(c=='m')return GetKeyState(sb_y)<0||GetKeyState(sb_z)<0;
	}
	hl sbwz(){
		hl hl;
		POINT p;
		HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
		CONSOLE_FONT_INFO consoleCurrentFont;
		HWND h=GetForegroundWindow();
		GetCursorPos(&p);
		ScreenToClient(h,&p);
		GetCurrentConsoleFont(hOutput, FALSE, &consoleCurrentFont);
		hl.h=p.x/consoleCurrentFont.dwFontSize.X;
		hl.l=p.y/consoleCurrentFont.dwFontSize.Y;
		return hl;
	}
	bool pdsb(char c,int hx,int hd,int lx,int ld){//判断鼠标是否在位置内
		hl hl=sbwz();
		if(hl.h>=hx&&hl.h<=hd&&hl.l>=lx&&hl.l<=ld)return 1;
		return 0;
	}
}

猜你喜欢

转载自blog.csdn.net/yyf525/article/details/121321120
sb
1.1