-
WM_LBUTTONDBLCLKWin API/2. 메시지 처리 함수 2021. 3. 29. 09:15
윈도우 창 내에서, 마우스 더블 클릭 시 더블 클릭된 마우스의 위치를 출력하는 프로그램을 만들어 보자.
아래의 내용과 거의 같다.
designatedroom87.tistory.com/405
소스 내용
더블클릭기능을 만들려면, 아래와 같이 윈도우 스타일에서 CS_DBLCLKS를 추가해줘야 한다.
프로그램 실행결과
소스 파일
이번에는 아래와 같이 메시지 처리 함수에서 왼쪽 버튼의 클릭과 왼쪽 더블클릭이 같이 처리 된다고 해보자.
위의 프로그램을 실행해서 더블클릭을 하면, 더블클릭했을 때의 메시지가 뜨지 않는다.
이에 대한 처리는 MessageBox 함수를 통해 해결 할 수 있다.
아래에서 WM_LBUTTONDOWN, WM_LBUTTONDBLCLK 에서의 메시지 박스 함수의 첫 번째 매개변수를 보자.
위에서는 hwnd라 적었지만, 아래에서는 NULL이라 적었다.
이 둘의 차이점을 찾아보면
먼저 메시지 박스에 hWnd라고 썼을 때의 코드를 분석해보면프로그램을 실행한 상태에서( 윈도우 창이 실행된 상태 ) 마우스 좌클릭을 했을 시에, MessageBox 창이 뜬다.
여기서의 문제점은 메시지 창을 처리를 해주지 않으면( 메시지 창의 확인 버튼을 누르거나하는 행동 )다음 과정으로 넘어가지 못한다.
이번에 NULL을 썼을 시에는
메시지 창을 처리해주지 않아도 다음 행동을 할 수 있다. ( 계속 더블 클릭을 할 수 있다. )소스 파일
프로그램 실행결과1
왼쪽 클릭했을 때이다.
프로그램 실행결과2
왼쪽 더블 클릭했을 때이다.
'Win API > 2. 메시지 처리 함수' 카테고리의 다른 글
WM_LBUTTONDOWN ( 마우스 왼쪽 클릭 ) (0) 2021.03.29 WM_CREATE (0) 2021.03.29