이것저것/My_Work

[MFC] - 메시지 정보(마우스 & 키보드)

우담바라 2009. 3. 3. 21:55


 

1.클라이언트 영역 메시지 - 뷰 클래스 

메시지         : 메시지 핸들러    : 설명 생략
WM_LBUTTONDOWN   : OnLButtonDown
WM_LBUTTONUP     : OnLButtonUp
WM_LBUTTONDBLCLK : OnLButtonDblClk
WM_MBUTTONDOWN   : OnMButtonDown
WM_MBUTTONUP     : OnMButtonUp
WM_MBUTTONDBLCLK : OnMButtonDblClk
WM_RBUTTONDOWN   : OnRButtonDown
WM_RBUTTONUP     : OnRButtonUp
WM_RBUTTONDBLCLK : OnRButtonDblClk
WM_MOUSEMOVE     : OnMouseMove

 메시지 핸들러 : void On~~ (UINT nFlags, CPoint point);

 1)UINT nFlags  : 메시지 생성시의 키보드&마우스버튼의 상태(비트 매스크)
  MK_CONTROL   : Ctrl키가 눌렸을때
  MK_SHIFT     : Shift키가 눌렸을때 
  MK_LBUTTON   : 마우스 왼쪽 버튼이 눌렸을 때
  MK_MBUTTON   : 마우스 가운데 버튼이 눌렸을 때
  MK_RBUTTON   : 마우스 오른쪽 버튼이 눌렸을 때

 2)CPoint point : 메시지 생성시의 마우스 좌표.(클라이언트 기준)

 함수 이름(::는 API) : 역할
SetCapture()        : 마우스 캡쳐를 시작한다.(CWnd클래스)
::ReleaseCapture()  : 마우스 캡처를 해제한다.
GetCapture()        : 어느 윈도우가 현재 마우스 캡쳐를 하고 있는지 알아본다.(CWnd클래스)

 
2.비 클라이언트 영역 메시지 - 프레임윈도우 클래스

 메시지            : 메시지 핸들러        : 설명 생략
WM_NCLBUTTONDOWN     : OnNcLButtonDown
WM_NCLBUTTONUP       : OnNcLButtonUp
WM_NCLBUTTONDBLCLK   : OnNcLButtonDblClk
WM_NCMBUTTONDOWN     : OnNcMButtonDown
WM_NCMBUTTONUP       : OnNcMButtonUp
WM_NCMBUTTONDBLCLK   : OnNcMButtonDblClk
WM_NCRBUTTONDOWN     : OnNcRButtonDown
WM_NCRBUTTONUP       : OnNcRButtonUp
WM_NCRBUTTONDBLCLK   : OnNcRButtonDblClk
WM_NCMOUSEMOVE       : OnNcMouseMove

 메시지 핸들러 : void OnNc~~ (UINT nHitTest, Cpoint point);

 1)UINT nFlags : 기능은 위와 동일.(비트 매스크)
  HTCAPTION    : 타이틀바
  HTCLIENT     : 클라이언트 영역
  HTCLOSE      : 종료 버튼
  HTHSCROLL    : 가로 스크롤 바
  HTMENU       : 메뉴
  HTMAXBUTTON  : 최대화버튼
  HTMINBUTTON  : 최소화버튼
  HTSYSMENU    : 시스템 메뉴
  HTVSCROLL    : 세로 스크롤바

 2)CPoint point : 메시지 생성시의 마우스 좌표(모니터 기준)

 3.키보드 포커스 메시지 - 프레임윈도우 & 뷰 클래스

 메시지       : 메시지 핸들러  : 설명
WM_SETFOCUS    : OnSetFocus     : 윈도우가 포커스를 받았을 때
WM_KILLFOCUS   : OnKillFocus     : 윈도우가 포커스를 잃었을 때

 메시지 핸들러 : void On~~Focus(CWnd* p~~Wnd);

 1)CWnd* p~~Wnd : 디폴트 처리를 위한 윈도우 객체 정보

 함수 이름(::는 API)   : 역할
CreateCaret()         : 비트맵을 이용하여 캐럿을 생성한다.
CreateGrayCaret()     : 회색 사각형 모양의 캐럿을 생성한다.
CreateSloidCaret()    : 검정색 사각형 모양의 캐럿을 생성한다.
ShowCaret()           : 캐럿이 보이도록 한다.
HideCaret()           : 캐럿을 숨긴다.
GetCaretPos()         : 캐럿의 좌표(클라이언트 기준)를 얻는다.
SetCaretPos()         : 캐럿의 좌표(클라이언트 기준)를 변경한다.
::DestoryCaret()      : 캐럿을 파괴한다.
::GetCaretBlinkTime() : 캐럿이 깜박이는 간격을 얻는다.
::SetCaretBlinkTime() : 캐럿이 깜박이는 간격을 설정한다.

  

4.키 누름 메시지 - 뷰 클래스

 메시지       : 메시지 핸들러 : 설명
WM_KEYDOWN     : OnKeyDown     : F10,Alt이외의 키를 누를때
WM_KEYUP       : OnKeyUp       : F10,Alt이외의 키를 땔 때
WM_SYSKEYDOWN  : OnSysKeyDown  : F10,Alt,(Alt+키 조합) 키를 누를때
WM_SYSKEYUP    : OnSysKeyUp    : F10,Alt,(Alt+키 조합) 키를 땔 때
WM_CHAR        : OnChar        : WM_KEYDOWN 메시지 발생후(아스키 코드값이 발생)
WM_SYSCHAR     : OnSysChar     : WM_SYSKEYDOWN 메시지 발생후(아스키 코드값이 발생)

 메시지 핸들러 : void On~~ (UINT nChar,UINT nRepCnt, UINT nFlags);

 1)UINT nChar : a.키에 할당된 가상 키코드값을 가진다.(winuser.h에 정의) - WM_KEY~~경우
               b.키에 할당된 문자 메시지값을 가진다. - WM_~~CHAR경우

 2)UINT nRepCnt : 키를 계속 누르고 있을경우 1보다 큰 값을 가진다.

 3)UINT nFlags : 키에 관련된 다양한 정보를 담고있다.