프로그래밍/MFC , WinAPI

[MFC]에디터 컨트롤 엔터 누를시 개행

친루엄 2018. 6. 7. 14:03

BOOL CDlgHome::PreTranslateMessage(MSG* pMsg) { if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN) { if (GetDlgItem(IDC_EDIT_MEMO) == GetFocus()) {//에디트 컨트롤 엔터 누를시 개행. CEdit* edit = (CEdit*)GetDlgItem(IDC_EDIT_MEMO); edit->ReplaceSel(_T("\r\n")); } } return CDlgBase::PreTranslateMessage(pMsg); }

코드를 봐보자. 

 

1.PreTranslateMessage 함수로 메세지를 가로첸다.

2.키다운 이벤트와 엔터버튼일시 실행되는 IF문을 만든다.

3.현재 포커스가 에디터컨트롤 일시 실행되는 IF문을 만든다.

4. ReplaceSel 함수를 사용해 개행을 한다.

 

참고로 에디터컨트롤 속성에서 멀티라인값을 TRUE로 줘야한다.