|
조이스틱 값을 읽어보려고하는데
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)
{
|