自己实现的一个directxinput键盘的封装

本文记录了作者使用DirectX9封装键盘输入的过程,包括cKbState类和cKeyboard类的设计与实现,以及如何初始化、获取键盘状态和处理资源释放。通过创建设备,设置数据格式和合作级别,实现了在窗口失去焦点后再获取键盘输入的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前段时间花了点时间研究directx9,写了点代码,在这里做个记录。

 

以下是自己封装的keyboard的代码:

 

 

cKbState类,保存每次查询的键盘按键信息,提供某个键被按下等查询。

 

首先是cKbState.h

 

 

 cKbState.cpp

 

 

 

cKeyboard类,directxinput的一些初始化和释放资源的工作在这里做。

 

cKeyboard.h

 

 

cKeyboard.cpp

 

 

使用方法:

 

 

定义全局变量:

 

//键盘

cKeyboard g_keyboard;

//键盘状态

cKbState g_kbstate;

 

初始化:

 

g_keyboard.Init_Keyboard(inst,hwnd);//inst为程序实例,hwnd为窗口句柄

 

 

使用:如

 

   g_kbstate=g_keyboard.Get_kbState();

    if(g_kbstate.Is_KeyPressed(DIK_LEFT) )
        g_camera.yaw(-1.0f * time_delta);

 

释放:

 

g_keyboard.Release();

 

解决切换活动窗口后重新获取键盘资源的问题,需要在窗口过程函数里做设置,代码如下:

 

 

需要处理WM_ACTIVATE消息时重新请求键盘资源。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值