처음에는 클립보드 기능을 추가하는 코드를 작성하고있었으나, 찾아보니 Win32 API에서
해당 기능들을 미리 구현해놓아서 아래와 같은 짧은 코드로 구현이가능하다.
case ID_EDIT_MENU1: //실행취소
SendMessage(Edit, WM_UNDO, 0, 0);
break;
case ID_EDIT_MENU2: //잘라내기
SendMessage(Edit, WM_CUT, 0, 0);
break;
case ID_EDIT_MENU3: //복사하기
SendMessage(Edit, WM_COPY, 0, 0);
break;
case ID_EDIT_MENU4: //붙여넣기
SendMessage(Edit, WM_PASTE, 0, 0);
break;
case ID_EDIT_MENU5: //삭제
SendMessage(Edit, WM_CLEAR, 0, 0);
break;
case ID_EDIT_MENU8: //모두선택
SendMessage(Edit, EM_SETSEL, 0, -1); //전체범위 선택
break;
모두 선택의 3, 4번째인자는 시작, 끝의 인덱스로 이를 이용하여 편집탭의 찾기 기능을 구현가능하다.
자세한 프로젝트는 아래 git을 확인
https://github.com/cldhfleks2/MyOwnMemo
다음으로 추가할 기능이 바로 찾기 기능이다.
현재 생각중인 방향은
- 다이얼로그창을 만들자.
- 현재 에디터의 문자열을 변수에 담아서 그중 검색, (검색알고리즘 활용)
- 찾은 인덱스들을 vector에 저장
- 찾는 방향(위, 아래)에 따라서 모든 vector를 순회하며 하나씩 보여줌
- 보여줄때 SendMessage(Edit, EM_SETSEL, 위치, 위치+길이); 이용