CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

请帮写一个小程序好吗?是关于捕捉游戏杆信息的,我自己写的程序在bcb6中怎么也通不过?????

楼主jlcclyc(lyc)2003-11-04 20:28:02 在 C++ Builder / 基础类 提问

请帮写一个小程序好吗?是关于捕捉游戏杆信息的,我自己写的程序在bcb6中怎么也通不过?????  
  请各位BCB高手们相助。(在线急等,不解决不下线。)  
   
  请给我写一个简单的BCB的程序,用于捕捉消息MM_JOY1BUTTONDOWN(按下游戏杆的键)   和消息MM_JOY1MOVE(转动游戏杆)的,要求:在一个普通的Form1上运行,如收到相应消息,出个MessageBox告知。  
  许多高手们可能没有游戏杆,下面我简要把我知道的写一下。1、多媒体用的是mmsystem.h   和winmm.lib  
  消息名是对的,我从MSDN上COPY下来的。问题解决后再给100分答谢。 问题点数:100、回复次数:7Top

1 楼jlcclyc(lyc)回复于 2003-11-04 20:45:18 得分 0

my   email   is:  
  chengmingcompany@sohu.comTop

2 楼jishiping(JSP 季世平)回复于 2003-11-04 22:42:44 得分 100

class   TForm1   :   public   TForm  
  {  
  __published: //   IDE-managed   Components  
          void   __fastcall   FormDestroy(TObject   *Sender);  
  private: //   User   declarations  
  protected:  
          void   __fastcall   WndProc(TMessage&);  
  public: //   User   declarations  
          __fastcall   TForm1(TComponent*   Owner);  
  };  
   
  __fastcall   TForm1::TForm1(TComponent*   Owner)  
          :   TForm(Owner)  
  {  
          if   (joySetCapture(Handle,JOYSTICKID1,0,FALSE))   {  
                  //这儿的JOYSTICKID1表示是第一个游戏杆插口  
                  MessageBeep(MB_ICONEXCLAMATION);  
                  MessageBox(Handle,   "Couldn't   capture   the   joystick.",  
                          Caption.c_str(),   MB_OK   |   MB_ICONEXCLAMATION);  
          }  
  }  
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm1::FormDestroy(TObject   *Sender)  
  {  
          joyReleaseCapture(JOYSTICKID1);  
  }  
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm1::WndProc(TMessage&   Msg)  
  {  
          TForm::WndProc(Msg);  
          if   (Msg.Msg==MM_JOY1BUTTONDOWN)   {  
                  ShowMessage("按下了游戏杆按键");  
          }  
          else   if(Msg.Msg==MM_JOY1MOVE)   {  
                  ShowMessage("转动游戏杆");  
          }  
  }Top

3 楼jishiping(JSP 季世平)回复于 2003-11-04 22:43:16 得分 0

我没有游戏杆,没法测试。Top

4 楼netsys2(来电!)回复于 2003-11-05 09:38:24 得分 0

有季头在,我就不发言了Top

5 楼jlcclyc(lyc)回复于 2003-11-05 13:28:26 得分 0

在季版主的帮助下,我已完成了。现将我用的代码放在下面,愿和我有相同困惑的朋友们分享。  
  游戏杆编程  
  **********Unit1.cpp***************  
  //---------------------------------------------------------------------------  
   
  #include   <vcl.h>  
  #include   <mmsystem.h>  
  #pragma   hdrstop  
  #include   "Unit1.h"  
  //---------------------------------------------------------------------------  
  #pragma   package(smart_init)  
  #pragma   resource   "*.dfm"  
  TForm1   *Form1;  
   
  //---------------------------------------------------------------------------  
   
  __fastcall   TForm1::TForm1(TComponent*   Owner)  
                  :   TForm(Owner)  
  {  
  if   (joySetCapture(Handle,JOYSTICKID1,0,FALSE))  
  {  
                  MessageBeep(MB_ICONEXCLAMATION);  
                  MessageBox(Handle,   "Couldn't   capture   the   joystick.",  
                          Caption.c_str(),   MB_OK   |   MB_ICONEXCLAMATION);  
          }  
  }  
   
  //---------------------------------------------------------------------------  
   
  void   __fastcall   TForm1::WndProc(TMessage   &Message)  
  {  
  if(Message.Msg==MM_JOY1BUTTONDOWN)  
        {  
          ShowMessage("按下了游戏杆按键");  
        }  
        if(Message.Msg==MM_JOY1MOVE)  
        {  
          ShowMessage("移动游戏杆");  
        }  
        TForm::WndProc(Message);  
  }  
   
  //---------------------------------------------------------------------------  
   
   
  ***********   Unit1.h   ***********************  
   
  //---------------------------------------------------------------------------  
   
  #ifndef   Unit1H  
  #define   Unit1H  
   
  //---------------------------------------------------------------------------  
   
  #include   <Classes.hpp>  
  #include   <Controls.hpp>  
  #include   <StdCtrls.hpp>  
  #include   <Forms.hpp>  
   
  //---------------------------------------------------------------------------  
   
  class   TForm1   :   public   TForm  
  {  
  __published: //   IDE-managed   Components  
                  TLabel   *Label1;  
  private: //   User   declarations  
                  void   __fastcall   WndProc(TMessage   &Message);  
  public: //   User   declarations  
                  __fastcall   TForm1(TComponent*   Owner);  
   
  };  
   
  //---------------------------------------------------------------------------  
   
  extern   PACKAGE   TForm1   *Form1;  
   
  //---------------------------------------------------------------------------  
   
  #endif  
   
  *************   Project1.cpp   ********************  
   
  //---------------------------------------------------------------------------  
   
  #include   <vcl.h>  
  #pragma   hdrstop  
  USERES("Project1.res");  
  USEFORM("Unit1.cpp",   Form1);  
  //---------------------------------------------------------------------------  
  WINAPI   WinMain(HINSTANCE,   HINSTANCE,   LPSTR,   int)  
  {  
                  try  
                  {  
                                    Application->Initialize();  
                                    Application->CreateForm(__classid(TForm1),   &Form1);  
                                    Application->Run();  
                  }  
                  catch   (Exception   &exception)  
                  {  
                                    Application->ShowException(&exception);  
                  }  
                  return   0;  
  }  
  //---------------------------------------------------------------------------  
  Top

6 楼yjy1001(蓝鲸--优秀得郁闷的鱼)回复于 2003-11-05 13:28:47 得分 0

.....有道理  
  Top

7 楼jlcclyc(lyc)回复于 2003-11-05 13:30:02 得分 0

多谢各位。Top

相关问题

  • 求proxy小程序
  • 小程序上载
  • 简单小程序!
  • 看个小程序
  • 一个小程序
  • 求解小程序...
  • 小程序请教
  • 一个小程序
  • 小程序求助
  • Servlet的小程序!

关键词

  • 游戏
  • bcb
  • 消息
  • cpp
  • application
  • tform
  • fastcall
  • 游戏杆
  • joystickid
  • 捕捉

得分解答快速导航

  • 帖主:jlcclyc
  • jishiping

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo