|
조이스틱도 마우스와 동일하다고 보시면 됩니다.
다만 마우스가 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)
{
int button = msg.WParam;
switch ( button )
{ // 버튼에 따른 처리
case JOY_BUTTON1:
...
break;
case JOY_BUTTON2:
...
break;
case JOY_BUTTON3:
...
break;
...
}
}
//---------------------------------------------------------------------------
// 죠이스틱이 움직였을때 사용되는 함수
void __fastcall TForm1::JoyMove (TMessage &msg)
{
int button, xJoy, yJoy;
button = msg.WParam;
xJoy = msg.LParamLo; // x축 좌표
yJoy = msg.LParamHi; // y축 좌표
switch ( button )
{ // 버튼에 따른 처리
case JOY_BUTTON1:
...
break;
case JOY_BUTTON2:
...
break;
case JOY_BUTTON3:
...
break;
...
}
// 상황에 따른 처리 명령
...
}
//---------------------------------------------------------------------------
// Joystick 조정함수 : end --------------------------------------------------
//---------------------------------------------------------------------------
이상헌 님이 쓰신 글 :
: 조이스틱을 제어하여 모터를 움직이도 싶은데
: 방법을 모르겠습니다. 아시는 고수분 계시면
: 가르쳐 주시면 감사하겠습니다.
: 그럼 좋은 하루 되세여...
|