> 文档中心 > 键盘消息函数和窗口句柄

键盘消息函数和窗口句柄

1.窗口句柄

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

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

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

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

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

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

运行效果 :

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

#include#includeint 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    VS系列的编程软件最好使用 “_getch();” 

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

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

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

#include//#include#include#include#include   #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取别名为bgmmciSendString(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"暂停音乐");elseouttextxy(100, 100, L"播放音乐");EndBatchDraw();if (_kbhit()) {   //判断是否键盘输入char key = _getch();      //获取按键值,并赋值给字符型的key变量if (key == '1') {  //判断按键值是否为1mciSendString(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;}//键盘输入时记得切换为英文状态下的输入法

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

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