이 기능은 okto 님께서 건의하신 기능임. 구버전에 있었다고 주장하시지만, 그건 아니더라. ㅋㅋ
notepad2에 있는 마우스 휠 기능은 Ctrl키(확대/축소)가 전부다.
(Shift키와 함께 휠을 굴리면 아무런 동작을 하지 않는다)
그런데, Shift키와 함께 휠을 굴리면 Page Up/Down 기능이 동작되게 해달라는 요청이 있었다.
처음엔 그냥 못 들은 척 하려고 했지만(ㅎㅎㅎ) 사용자의 건의를 무시할 수 없어 기능을 부여하게 되었다.
이 기능을 부여하려면 아래처럼 수정하면 된다.
수정 대상 파일은 ScintillaWin.cxx 하나이며, 수정할 함수는 sptr_t ScintillaWin::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam)입니다.
그리고, 이 함수는 전체가 하나의 switch-case 문으로 되어있는데, 이 중 case WM_MOUSEWHEEL: 부분만 수정하면 된다.
case 바로 아래를 보면 아래와 같은 내용이 있다.
이 곳은 Shift키와 함께 휠을 굴리면 무시하는 부분인데, 이 내용을 삭제한다.
다음으로, case 문의 끝부분에 있는 아래와 같은 내용을 찾는다.
이 부분을 아래와 같이 수정한다.
앞에서 무력화시킨 Shift의 처리를 여기에 추가하는 것이다.
그리고, 이 함수는 전체가 하나의 switch-case 문으로 되어있는데, 이 중 case WM_MOUSEWHEEL: 부분만 수정하면 된다.
case 바로 아래를 보면 아래와 같은 내용이 있다.
if (wParam & MK_SHIFT) {
return ::DefWindowProc(MainHWND(), iMessage, wParam, lParam);
}
이 곳은 Shift키와 함께 휠을 굴리면 무시하는 부분인데, 이 내용을 삭제한다.
다음으로, case 문의 끝부분에 있는 아래와 같은 내용을 찾는다.
} else {
// Scroll
ScrollTo(topLine + linesToScroll);
}
이 부분을 아래와 같이 수정한다.
} else if (wParam & MK_SHIFT) {
int topLineNew=topLine;
if (linesToScroll < 0)
topLineNew -= LinesToScroll();
else
topLineNew += LinesToScroll();
ScrollTo(topLineNew);
} else {
// Scroll
ScrollTo(topLine + linesToScroll);
}
앞에서 무력화시킨 Shift의 처리를 여기에 추가하는 것이다.
이렇게 하면 Shift+휠을 Page Up/Down으로 사용할 수 있다.
여러분~ 즐삽하세요~
해주실 줄 알았다능ㅋㅋ
답글삭제너무 좋아요~ 흐응~ *=_=*
구버전...은 제가 착각했습니다ㅠㅠ
사용중인 다른 프로그램에서 [shift+휠]로 모든 프로그램에 페이지 단위 스크롤을 해주는게 있더군요;;
착각은 발명의 어머니라는 말도 있잖습니까? 허허허허~~
@okto - 2009/06/30 16:54
답글삭제뭐, 이 쯤이야... [emo=101]