마우스의 왼쪽 버튼이 현재 눌려져 있거나 (뭔가 첫 번째 가능성이 있다고 생각하는) 드래그하고 있는지 어떻게 확인합니까?Mouse LButton이 다운되어 있는지 확인하십시오.
Mouse.IsDraging을 시도했지만 결과가 없습니다.
참고 : 응용 프로그램에서 마우스 메시지를 처리하므로 아무 문제없이 WM을 처리하면 작업을 완료 할 수 있습니다.
마우스의 왼쪽 버튼이 현재 눌려져 있거나 (뭔가 첫 번째 가능성이 있다고 생각하는) 드래그하고 있는지 어떻게 확인합니까?Mouse LButton이 다운되어 있는지 확인하십시오.
Mouse.IsDraging을 시도했지만 결과가 없습니다.
참고 : 응용 프로그램에서 마우스 메시지를 처리하므로 아무 문제없이 WM을 처리하면 작업을 완료 할 수 있습니다.
Windows API 함수 GetAsyncKeyState()
이 있는데, 이름에도 불구하고 마우스 버튼 상태를 가져 오는 데에도 사용할 수 있습니다. 연결된 설명서에는 질문에 대한 답변이 직접 포함되어 있습니다.
GetAsyncKeyState
기능은 마우스 버튼과 함께 작동합니다. 그러나 실제 마우스 단추의 상태를 확인하고 논리적 마우스 단추는 실제 단추가 매핑되지 않았는지 확인합니다. 예를 들어GetAsyncKeyState(VK_LBUTTON)
호출은 왼쪽 또는 오른쪽 논리 마우스 버튼에 매핑되는지 여부에 관계없이 항상 왼쪽 마우스 버튼의 상태를 반환합니다. 마우스 버튼이 교체 된 경우TRUE
을 반환하는GetSystemMetrics(SM_SWAPBUTTON)
을 호출하여 시스템의 현재 마우스 마우스 버튼과 논리 마우스 버튼의 매핑을 확인할 수 있습니다.
결과 유형은 short
입니다. 가장 중요한 비트가 값이 음수인지 테스트합니다.
매우 좋습니다. 가장 중요한 비트를 확인하는 방법에 대한 해결책을 제공하지만 공식적인 방법을 설명 할 수 있습니까? – Vassilis
@ VassilisGr : 죄송합니다. 나는이 요청을 정말로 이해하지 못합니다. 컴파일러에 타입 강제 변환을 두는 것은 아마도 32 비트 대 64 비트 컴파일과 같은 문제로부터 당신을 격리시키는 가장 좋은 (즉 공식적인) 일일 것입니다. 또는 결과의 단일 비트가 설정되었는지 여부를 테스트하는 방법을 의미합니까? '(결과 $ 8000) <> 0'과 같은 것을 사용하십시오. – mghie
은 (결과 및 $ 8000) <> 0'을 (를) 찾고있었습니다. 감사! – Vassilis
OnMouseMove(UINT nFlags, CPoint point)
{
m_LButtonPressed=nFlags & MK_LBUTTON;
CWnd::OnMouseMove(nFlags, point);
}
의
가능한 복제 [델파이 : 어떤 마우스 버튼을 누를 경우 내가 확인할 수있는 방법 - 마우스 이벤트의 바깥 (http://stackoverflow.com/questions/25681543/delphi-how-can-i -check-if-any-mouse-buttons-are-a-mouse-ev) – Johan