본문 바로가기

Enginius/C / C++

MFC - 포커스를 옮겨보자


 MFC에서 마우스휠이나 키보드 입력을 처리하다보면 꼭 생기는 문제가 slider control등이 그 키에 반응을 한다는 것이다. 

 예전에 키보드의 방향키에 의해서 silder control이 옮겨질 때는 pretranslate message에서 아예 return을 시키는 편법을 썼었는데 마우스 휠은 그렇게 하기 귀찮더라.

 그래서 devpia를 뒤지던 중 고마우신 분이 아주 cool하게 4줄자리 소스를 써 주셨다.


  HWND hWnd = ::GetFocus();
  HWND NextWnd;

  NextWnd = ::GetNextDlgTabItem(m_hWnd, hWnd, TRUE);
  ::SetFocus(NextWnd);


 해당 Item의 바로 옆으로 포커스가 옮겨지게 된다.