'SetCapture'에 해당되는 글 1건

  1. 2012.11.21 마우스 이벤트추적(SetCapture, ReleaseCapture vs _TrackMouseEvent)

마우스 이벤트를 추적하는 방법은 크게 두가지방법이 있다.

1. SetCapture ~ ReleaseCapture

2. _TrackMouseEvent

마우스 이벤트를 추적하여 메세지를 받는다는점에서 비슷하지만 엄연히 사용용도가 다르다.

 

1. SetCapture ~ ReleaseCapture

SetCapture를 호출하는 순간 마우스를 캡쳐하여 윈도우 영역을 벗어나더라도 계속해서 마우스의 메세지를 수신할수 있도록한다. 그리고 더이상 이러한 기능이 필요가 없을때 ReleaseCapture를 이용하여 마우스 이벤트의 추적을 중단한다.

 

2. _TrackMouseEvent

_TrackMouseEvent함수는 SetCapture함수처럼 마우스 이벤트를 추적할 수 있도록해준다.SetCapture함수는 응용프로그램 자신이 직접 마우스를 점유하고 계속 마우스 메세지를 수신하여 경계르 벗어났는지 검사한다. 하지만 _TrackMouseEvent함수는 운영체제에 자신의 윈도우를 등록하여 마우스가 자신의 영역을 벗어나면 메세지(WM_MOUSELEAVE)를 수신하여 경계가 벗어났음을 판단한다.

 

_TrackMouseEvent함수는 TRACKMOUSEEVENT구조체의 주소를 인자로 받는다

WORD cbSize    //구조체의 크기

DWORD dwFlags    //어떤이벤트를 추적할 것인지 명시

HWND hwndTrack    //마우스 이벤트를 추적할 윈도우 핸들

DWORD dwHoverTime    //THE_HOVER플레그를 설정했을때 타임아웃 값이 된다

 

dwFlags에 들어가는 이벤트

TME_CANCEL : 마우스의 이벤트의 추적을 취소

TME_HOVER : WM_MOUSEHOVER메세지를 수신한다.

TME_LEAVE : WM_MOUSELEAVE메세지를 수신한다.

TME_NONCLIENT :  WM_NCMOUSEHOVER와 WM_NCMOUSELEAVE메세지를 수신한다.

TME_QUERY : 현재 설정정된 추적 정보를 알아본다

'Developer > MFC' 카테고리의 다른 글

MFC Class Hierarchy Chart  (0) 2012.11.01
Posted by No names
,