- notepad2 컴파일 삽질기 부록#7 : Shift+마우스 휠에 Page Up/Down 기능 부여
- 컴퓨터야그/notepad2
- 2009. 6. 30. 09:38
이 기능은 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으로 사용할 수 있다.
여러분~ 즐삽하세요~
'컴퓨터야그 > notepad2' 카테고리의 다른 글
notepad2 컴파일 삽질기 부록#8 : '기본 인코딩으로 다시 읽기' 메뉴로 할당 (2) | 2009.07.01 |
---|---|
notepad2 컴파일 삽질기 부록#5.1 : context-menu 기능 수정 (4) | 2009.06.30 |
Notepad2 3.1.21 정식버전 관련 패치 모음 (수정) (3) | 2009.06.29 |
notepad2 컴파일 삽질기 부록#6 : 메모장 대신 사용 (재포스팅) (2) | 2009.06.24 |
notepad2 컴파일 삽질기 부록#5 : context-menu 통합 및 수정 (#1, #2 통합) (2) | 2009.06.24 |
Recent comment