|
조이스틱으로 모터를 움직이게 할려고 합니다.
찾아보니 빌더에서 조이스틱 이벤트를 발생시키거나 값을 읽어오는
방법이 없는것 같은데,
똑같은 글을 올리신 걸 보고 질문 드립니다.
금목암 님이 쓰신 글 :
: 조이스틱 값을 읽어보려고하는데
:
: vc++에서는 directx를 사용하여
: m_XAxis.Format("%d,joy->lx); //조이스틱 x축값
: 이런식으로 읽거나
:
: 하느리님이 아래와 같이 하라고 써있는데 c++builder6에서 에러가 나고
: 폼에 조이스틱 이벤트가 없네요
:
: c++빌더에서 usb-joystick 을 사용하려면 어떤식으로 해야 하는지
: 자세히 좀 알려주시기 바랍니다 ,
:
: MM_JOY1BUTTONUP 등을 어디서 선언해야하나요?
: 라이브러리 이름이나 다이렉트x에서 불러오는 방법 좀 알려주세요 api나
:
: ---------- 아 래 -----------------------------------------------
: 조이스틱도 마우스와 동일하다고 보시면 됩니다.
: 다만 마우스가 WM_LBUTTONDOWN, WM_MOVE 등의 이벤트를 발생시키는 것에 반하여 조이스틱은 MM_JOY1BUTTONUP, MM_JOY1MOVE 등의 이벤트를 발생시킵니다. 도움말을 참조해 보시면 아시겠지만, 무수히 만흥 이벤트가 준비되어 있습니다. MFC 형태의 Windows API 도움말을 참조하세요.
: 아래는 하나의 예입니다. 제가 옛날에 만들었던 것에서 뽑아서 올립니다.
:
: 폼 h 헤더파일 내...
: class TForm1 : public TForm
: {
: private: // Start of User declarations
: bool __fastcall JoyConnect (void);
: void __fastcall JoyButton (TMessage &msg);
: void __fastcall JoyMove (TMessage &msg);
: ...
:
: public: // Start of User declarations
: // 폼에 메세지를 추가한다.
: BEGIN_MESSAGE_MAP
: MESSAGE_HANDLER (MM_JOY1BUTTONUP, TMessage, JoyButton)
: MESSAGE_HANDLER (MM_JOY1MOVE, TMessage, JoyMove)
: END_MESSAGE_MAP (TForm)
: }
: 폼의 cpp 소스파일 내...
: //---------------------------------------------------------------------------
: // Joystick 조정함수 : start ------------------------------------------------
: //---------------------------------------------------------------------------
: bool __fastcall TForm1::JoyConnect (void)
: { // 조이스틱 연결여부 확인
: JOYINFOEX JoyInfo;
:
: if ( joyGetNumDevs () )
: {
: joyGetPosEx (JOYSTICKID1, &JoyInfo);
: if ( joyGetPosEx (JOYSTICKID1, &JoyInfo) == JOYERR_NOERROR )
: {
: joySetCapture (Handle, mJoyID, 55, FALSE);
: return true;
: }
: }
:
: return false;
: }
: //---------------------------------------------------------------------------
: // 죠이스틱 버튼이 눌려졌을때 사용되는 함수
: void __fastcall TForm1::JoyButton (TMessage &msg)
: {
|