Thrustmaster Hotas Warthog/猪杆/疣猪飞行操作杆开发(2)

原创 2015年11月18日 20:00:47

距离《Thrustmaster Hotas Warthog/猪杆/疣猪飞行操作杆开发》的出生已经过去了半年了,最近项目上又要用到飞行操作杆,所以,我也乘此机会进一步整理一下上一次没有说完整的后续开发细节,也就是关于 显示更多的操作杆数据的方法—使用图形设备接口函数’windows.h’(并不是MFC奥)

上一次只是显示了操作杆的X、Y轴的数据,这一次就以添加显示一个按钮为例,来直接进入主题。

接着,按步骤说明:

一、在 resource.h 文件中的:

#define IDD_DIALOG1                     101
#define IDD_Joystick                    101
#define IDC_COORDINATES                 1001

代码下面添加:

#define IDC_COORDINATES1                1002

目的:定义一个文本框边界设定“对象”


二、将对应的资源文件*.rc 文件中的:

IDD_Joystick DIALOGEX 0, 0, 120, 37
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CLASS   "JoystickClass"
CAPTION "Joystick Example"
FONT 12, "Segoe UI", 400, 0, 0x0
BEGIN
    LTEXT           "Joystick Coordinates",IDC_STATIC,7,5,100,10
    LTEXT           "",IDC_COORDINATES,7,18,103,12,WS_BORDER
END

修改为:

IDD_Joystick DIALOGEX 0, 0, 120, 137
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CLASS   "JoystickClass"
CAPTION "Joystick Example"
FONT 12, "Segoe UI", 400, 0, 0x0
BEGIN
    LTEXT           "Joystick Coordinates",IDC_STATIC,7,5,100,10
    LTEXT           "",IDC_COORDINATES,7,18,103,12,WS_BORDER
    LTEXT           "",IDC_COORDINATES1,7,35,103,12,WS_BORDER
END

目的:
1、修改对话框大小为 120x137,位置(0,0)不变
2、在原有文本框(坐标为(7,18))下面(坐标为(7,35))的位置添加一个大小同样是 103x12 的文本框


三、在对应的C++文件 *.cpp 中 Main function 的 WinMain 函数中做如下更改:
1、添加用来存储按钮状态的变量 ,添加代码: BYTE rButtons0 = 0;
2、将其中的:

if(is_first_render || (joystick_x != joy_state.lX || joystick_y != joy_state.lY ))
{
    is_first_render = FALSE;

    sprintf(text, "%ld, %ld", joy_state.lX, joy_state.lY);
    SetWindowText(GetDlgItem(g_hwnd, IDC_COORDINATES), text);
}     

joystick_x = joy_state.lX;
joystick_y = joy_state.lY;

更改为:

if(is_first_render || (joystick_x != joy_state.lX || joystick_y != joy_state.lY || rButtons0 != joy_state.rgbButtons[0]))
{
    is_first_render = FALSE;

    sprintf(text, "%ld, %ld", joy_state.lX, joy_state.lY);
    SetWindowText(GetDlgItem(g_hwnd, IDC_COORDINATES), text);

    sprintf(text, "%d", (int)joy_state.rgbButtons[0]);
    SetWindowText(GetDlgItem(g_hwnd, IDC_COORDINATES1), text);

}     

joystick_x = joy_state.lX;
joystick_y = joy_state.lY;

rButtons0 = joy_state.rgbButtons[0];

保存,运行。。。
至此,便完成了 使用图形设备接口函数’windows.h’添加显示操作杆其他按钮或轴状态的工作了。。。

补充:
Joystick开发的例程可以在安装 Microsoft DirectX SDK 之后,在安装路径下…\Microsoft DirectX SDK \Samples\C++\DirectInput文件夹里找到,这个是微软的DirectX SDK中最原始的Joystick开发例程。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Thrustmaster Hotas Warthog/猪杆/疣猪飞行操作杆开发

(第一次写博客,还望大家批评指正!!!) 法拓士/Thrustmaster Hotas Warthog 猪肝/猪杆/A10C/疣猪飞行操作杆(最顶尖的飞行摇杆) 猪杆是美国空军授权按照美国A10C...

开发疣猪飞行摇杆A10C(第一章)

趁着6.18京东降价,买了疣猪飞行摇杆A10C,准备对它进行一些开发,现将开箱图贴上。...

游戏手柄(JoyStick)编程学习笔记(2)

在我的上一篇博客中(http://blog.csdn.net/liyuanbhu/article/details/51714045),介绍了通过 multimedia joystick API 来访问...

(2)PX4开发指南——飞行模式/操控

飞行模式定义了系统在任意时间的状态。用户可以通过遥控器的开关或者地面控制站切换飞行模式...

微软模拟飞行操作

  • 2013年01月24日 10:22
  • 12KB
  • 下载

微软模拟飞行操作指南

  • 2013年03月14日 22:53
  • 33KB
  • 下载

Java飞行记录器 JRockit Flight Recorder JFR诊断JVM的历史性能和操作

需要展开子树,复制堆栈跟踪,就可以查看到代码调用链,看到自己的业务代码,从而定位到最耗时的代码位置:...
  • unix21
  • unix21
  • 2016年10月13日 10:47
  • 1272

Android飞行模式灰显不能操作问题分解

在移植Android的系统中,遇到了飞行模式中在操作一次之后,globalaction(长按power键出来的 dialog就是globalaction)中的item变成了灰色,并且不可操作,之后对...

[002]还在做游戏的飞行操作....

飞机侧飞和

android飞行模式灰显不能操作问题分解

在移植Android的系统中,遇到了飞行模式中在操作一次之后,globalaction(长按power键出来的dialog就是globalaction)中的item变成了灰色,并且不可操作,之后对代码...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Thrustmaster Hotas Warthog/猪杆/疣猪飞行操作杆开发(2)
举报原因:
原因补充:

(最多只允许输入30个字)