2011-06-13 2 views
0

키 누르기 (이 예에서는 'S'문자 사용)를 감지하고 싶은 Windows C++ 응용 프로그램을 작성하고 있습니다. 키를 누르면 프로그램은 bool 값을 켜거나 끕니다 (현재 상태에 따라 다름).keypress를 사용하여 bool 전환

콘솔 앱에서는 cin.get을 사용할 수 있지만 Win32 API에는 익숙하지 않습니다. 또한 키를 눌렀을 때 이벤트가 한 번만 등록된다는 것을 확인하고자합니다. 즉 사용자가 'S'를 누르고 잠시 동안 키를 누르고 있으면 프로그램은 'S'만 감지해야합니다. 'SSSSSSS'가 아닙니다.

+0

자동 반복 실행을 원하지 않는 이유를 설명하십시오. 그것은 당신이 쓰고있는 게임입니까? –

+0

내가 쓰는 과학 실험이다. 이벤트를 켜거나 끄려고합니다. 우연히 버튼을 눌렀을 때 한 번만 이벤트를 켜고 끄는 것을 원하지 않습니다. – CaptainProg

답변

0

그래서 Windows 메시지 루프가 진행되고 있습니까? WM_KEYDOWN을 캡처하고 자동 반복 여부를 확인하십시오.

하지만 실제로 MFC, QT 또는 다른 어떤 프레임 워크를 사용하고있는 것 같습니다. 프레임 워크는 Windows 메시지 루프를 감싸고 핵심 이벤트를 캡처 할 수있게 해줍니다. 그러나 우리가 어떻게하면되는지 알려면 우리는 어떤 프레임 워크를 사용하고 있는지 말해야합니다.

+0

바보 같은 질문 일지 모르지만 프레임 워크가 무엇인지 전혀 모릅니다 ... 내가 사용하는 것을 어떻게 찾습니까? 나는 작업중인 프로그램으로 시작하여 그것을 편집 중입니다 ... – CaptainProg

+0

다음과 같이 고려하십시오. 1) 사용중인 컴파일러/개발 환경을 알려주십시오. Visual Studio 버전 중 하나를 추측 할 수는 있지만 어떤 버전입니까? 2) 기본 사항에 대해 배웁니다. 다양한 프로젝트 유형 (http://msdn.microsoft.com/en-us/library/6765tta0(v=vs.71).aspx)의 다양한 결과를 살펴보고 예제 프로젝트와 비교하십시오. 3) SO에 대한 귀하의 질문 중 35 % 이상에 대한 답변 수락. –