저는 win7 64bit를 사용합니다. GetKeyboardState()를 사용하여 키보드 상태를 가져옵니다.GetKeyboardState가 잘못된 결과를 반환합니다.
BYTE keyState[256];
GetKeyboardState(keyState);
BOOL leftButtonClicked = GetKeyState(VK_LBUTTON);
주요 WND 내부 클릭이 모든 일이 확인되어 있지만 주요 WND 외부 클릭이의 leftButtonClicked 여전히 해당하는 경우.
은 MSDN 말했다
응용 프로그램은 모든 가상 키의 현재 상태를 검색하려면이 함수를 호출 할 수 있습니다. 스레드가 메시지 대기열에서 키보드 메시지를 제거 할 때 상태가 변경됩니다. 키보드 메시지가 스레드의 메시지 대기열에 게시되거나 키보드 메시지가 다른 스레드의 메시지 대기열에 게시되거나 이로부터 검색 될 때 상태가 변경되지 않습니다.
주 wnd는 WM_LBUTTONDOWN을받지 못합니다. 왜이 함수가 잘못된 결과를 얻는가? 또는 내가 오해 한 것입니까?
감사합니다.
"잘못된 결과"가 아닙니다. "마우스가있는 곳을 확인하지 않았습니다."- 창 안에서 뭔가 발생했을 때 VM_LBUTTONDOWN 만 얻습니다. 그러나 GetKeyState는 보편적입니다. 요청한 시점에 상태가 무엇인지 알려주고, 창과 관련이 있는지 여부는 결정할 응용 프로그램에 달려 있습니다. –
혼란스러워. 당신은 결코 GetKeyboardState의 결과를 보지 않습니다. –