IT/프로그래밍
MFC] 마우스 이벤트 중복 예약 방지
ZungTa
2015. 6. 11. 23:40
UI를 구현하다 보면 버튼을 눌러서 한 기능을 실행하는 경우에
그 기능의 처리가 끝나지 않았는데도 불구하고 마우스를 클릭했을때
이벤트들이 예약되어 남아있다가 현재 실행중인 기능이 끝났을때
그 예약되어 있던 이벤트들이 한꺼번에 처리되는것을 방지한다.
간단히 설명하면 한 버튼을 눌러서 실행되는 동안 다른 버튼의 눌림 예약을 방지하는 것이다.
코드는 간단하다. 실행중인 기능을 마칠때 마우스 클릭 관련 메시지들을 삭제해버린다.
다음 코드를 실행하는 함수의 마지막에 넣어주면 된다.
밑에 함수를 정의 한 후에 사용해주면 된다.
BOOL RemoveMouseMessage()
{
MSG msg;
while( PeekMessage(&msg, NULL, WM_LBUTTONDOWN, WM_MBUTTONDBLCLK, PM_REMOVE) );
return TRUE;
}
[출처] [MFC] 마우스 이벤트 중복 예약 방지|작성자 runner