键盘消息函数和窗口句柄

1.窗口句柄

GetHWnd() :获取窗口句柄,获取后用来操作窗口

HWND hwnd=GetHWnd();     //获取句柄窗口,并将其设置一个名称hwnd (名称可以自定义)

SetWindowText(hwnd,"love"); //修改窗口标题。

MessageBox(hwnd,"我是消息框","我是标题",MB_OKCANCEL); //设置模态对话框

( MB_OKCANCEL代表的是取消和确定按钮 )

    #include<stdio.h>
    #include<graphic.h>

    int main(){
    Initgraphic(800,750);
    HWND hs = GetHWnd();
	SetWindowText(hs, "VS2019");
	MessageBox(hs, "欢迎来到VS2019", "提示框", MB_OKCANCEL);
    
    return 0;

    }

运行效果 :

恶搞(信息轰炸):向某一个人发送重复的信息

#include<stdio.h>
#include<Windows.h>



int main() {

	HWND fkWND = FindWindow(NULL, L"恶搞对象窗口名称");

	for (int i = 0; i < 99; i++) {
	SendMessage(fkWND, WM_PASTE, 0, 0);  //fkWND 窗口发送粘贴指令
	SendMessage(fkWND, WM_KEYDOWN, VK_RETURN, 0);//fkWND 窗口发送回车按键
	
	}
	getchar();
	return 0;
}


//注意:1.使用该程序前,须先向你要恶搞的对象粘贴、回车一些东西(如图片,文字)
        2.执行代码时,恶搞对象窗口不能关闭

2. 获取鼠标

获取鼠标消息的两个函数:

getch();       //需要头文件#include<conio.h>    VS系列的编程软件最好使用 “_getch();” 

GetAsyncKeyState(键值);  //需要头文件#include<windows.h>,但是由于Easyx图形库中windows头文件,所以无需自己包含(其他需要windows头文件的函数也是如此,但是需要在graphic.h头文件下包括:比如放音乐的头文件mmsytem.h)

getch()-----这个函数是阻塞的,一次性只能接受一个,如只能上或下或左或右,不能同时上和右,(上--72,下--80,左--75,右--77)

GetAsyncKeyState(键值)中使用到的键值只有4个:VK_UP(上),VK_DOWN(下),VK_LEFT(左),VK_RIGHT(右)。        这个函数是非阻塞的,可以同时按    上键和左键-----即:左上  

#include<stdio.h>
//#include<graphics.h>
#include<easyx.h>
#include<mmsystem.h>
#include<conio.h>   
#pragma comment(lib,"winmm.lib")
	
int main() {
	initgraph(1000, 800);
	setbkmode(0);
	
	//定义
	IMAGE img;
	bool isplay; //音乐是否暂停
	
	//初始化
	isplay = true;
	loadimage(& img, L"1.jpg",1000,800);
	mciSendString(L"open 风儿吹.mp3 alias bgm", 0, 0, 0);    //alias取别名,对open 风儿吹.mp3取别名为bgm
	mciSendString(L"play bgm repeat", 0, 0, 0);				//播放风儿吹音乐

	while (1)
	{
		//绘制
		BeginBatchDraw();
		putimage(0, 0, &img);
		settextcolor(RED);
		settextstyle(50, 0, L"楷体");
		outtextxy(50, 50, L"欢迎来到easyx图形库的学习");

		if(isplay)
			outtextxy(100, 100, L"暂停音乐");
		else
			outtextxy(100, 100, L"播放音乐");

		EndBatchDraw();
		

		if (_kbhit()) {          //判断是否键盘输入
			char key = _getch();      //获取按键值,并赋值给字符型的key变量
			if (key == '1') {         //判断按键值是否为1
				mciSendString(L"pause bgm", 0, 0, 0);
				isplay = false;
			}
			if (key == '2') {
				mciSendString(L"play bgm", 0, 0, 0);
				isplay = true;
			}
		}
		if (GetAsyncKeyState(VK_UP)) {        //判断是否为上键
			outtextxy(100, 300, L"你按了上键");
			Sleep(100);                        //休眠100ms 
		}
		if (GetAsyncKeyState(VK_DOWN)) {
			outtextxy(100, 300, L"你按了下键");
			Sleep(100);
		}
		if (GetAsyncKeyState(VK_LEFT)) {
			outtextxy(100, 300, L"你按了左键");
			Sleep(100);
		}
		if (GetAsyncKeyState(VK_RIGHT)) {        
			outtextxy(100, 300, L"你按了右键");
			Sleep(100);
		}

		
	}
	
	closegraph();     //关闭easyx图形窗口
	return 0;
}

//键盘输入时记得切换为英文状态下的输入法

如有不足,望请指正,以便更改

你的点赞和关注是对作者最大的支持,不要吝啬你的点赞和关注哦🤞

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值