영어로 읽기

다음을 통해 공유


편집 컨트롤에 대한 정보

편집 컨트롤 사용자가 텍스트를 입력하고 편집할 수 있도록 대화 상자에서 일반적으로 사용되는 사각형 컨트롤 창입니다.

편집 컨트롤은 문자가 2바이트인 유니코드 문자 집합과 문자가 1바이트인 ANSI 문자 집합을 모두 지원합니다. 유니코드 및 ANSI 문자 집합에 대한 자세한 내용은 유니코드 및 문자 집합참조하세요.

리치 편집 컨트롤은 시스템 편집 컨트롤에서 사용할 수 없는 많은 기능을 지원합니다. 자세한 내용은 서식 있는 편집 컨트롤을 참조하세요.

이 개요에서는 다음 항목에 대해 설명합니다.

컨트롤 기능 편집

이 옵션을 선택하면 편집 컨트롤에 삽입 지점을 나타내는 깜박이는 캐리트가 표시됩니다. 그런 다음 사용자는 텍스트를 입력하거나, 삽입 지점을 이동하거나, 키보드 또는 마우스를 사용하여 편집할 텍스트를 선택할 수 있습니다. 편집 컨트롤은 WM_COMMAND 메시지의 형태로 부모 창에 알림 코드를 보냅니다. 편집 컨트롤 알림 메시지에 대한 자세한 내용은 을 참조하세요. 부모 창은 SendDlgItemMessage 함수를 호출하여 대화 상자에서 편집 컨트롤에 메시지를 보낼 수 있습니다. 미리 정의된 매크로를 사용하여 일부 메시지를 보낼 수도 있습니다.

시스템은 한 줄 편집 컨트롤과 여러 줄 편집 컨트롤을 모두 제공합니다. 편집 컨트롤은 EDIT 창 클래스에 속합니다.

콤보 상자는 편집 컨트롤과 목록 상자의 많은 기능을 결합하는 컨트롤입니다. 콤보 상자에서 편집 컨트롤은 현재 선택 영역을 표시하고 목록 상자에는 사용자가 선택할 수 있는 옵션이 표시됩니다. 콤보 상자에 대한 자세한 내용은 콤보 상자를 참조하세요.

대부분의 개발자는 일반 대화 상자 라이브러리(Comdlg32.dll)에 제공된 대화 상자를 사용하여 사용자 지정된 편집 컨트롤이 필요할 수 있는 작업을 수행합니다. 일반적인 대화 상자에 대한 자세한 내용은 공통 대화 상자 라이브러리참조하세요.

컨트롤 형식 및 스타일 편집

개별 편집 컨트롤에는 여러 스타일이 동시에 있을 수 있습니다. 대부분의 개발자는 도구를 사용하여 대화 상자를 개발하므로 편집 컨트롤 스타일을 명시적으로 지정할 필요가 없습니다. 그러나 애플리케이션이 CreateWindow 또는 CreateWindowEx 함수를 사용하여 편집 컨트롤을 만드는 경우 이러한 편집 컨트롤 스타일을 지정해야 합니다. 컨트롤 스타일 편집 표는 컨트롤 스타일 편집참조하세요.

모든 편집 컨트롤은 편집 컨트롤의 모양과 기능을 정의하는 스타일 값의 조합을 지정합니다. 스타일 값은 한 줄 또는 여러 줄 편집 컨트롤의 모양을 설정할 수 있습니다. 컨트롤의 텍스트를 정렬합니다. 편집 컨트롤에 텍스트가 표시되는 방법 및 경우에 따라 결정합니다.

여러 줄 스타일

편집 컨트롤에는 두 가지 선 스타일이 있습니다. 기본값은 한 줄 편집 컨트롤입니다. 애플리케이션은 ES_MULTILINE 스타일을 사용하여 여러 줄 편집 컨트롤을 만들 수도 있습니다.

스크롤 스타일

ES_AUTOHSCROLL 스타일은 사용자가 텍스트를 입력할 때 필요에 따라 텍스트를 가로로 스크롤하도록 편집 컨트롤에 지시합니다. 이 스타일을 지정하지 않으면 편집 컨트롤을 가로로 스크롤할 수 없습니다. ES_AUTOHSCROLL없는 한 줄 편집 컨트롤의 경우 컨트롤의 표시 영역을 채우는 문자만 허용됩니다. ES_AUTOHSCROLL없는 여러 줄 편집 컨트롤의 경우 사용자가 한 줄에 표시할 수 있는 것보다 많은 텍스트를 입력하면 텍스트가 다음 줄로 줄 바꿈됩니다. 여러 줄 편집 컨트롤에 대해 ES_AUTOHSCROLL 지정한 경우 사용자가 한 줄에 표시할 수 있는 것보다 많은 텍스트를 입력하면 컨트롤이 가로로 스크롤됩니다. 텍스트가 줄 바꿈되지 않습니다.

ES_AUTOHSCROLLWS_HSCROLL 스타일이 있는 왼쪽 맞춤 다중 줄 편집 컨트롤에 자동으로 적용됩니다. 즉, 가로 스크롤 막대가 있는 왼쪽 맞춤 다중 줄 편집 컨트롤은 자동으로 가로로 스크롤됩니다.

왼쪽 맞춤이 아닌 여러 줄 편집 컨트롤에서 ES_AUTOHSCROLL 무시됩니다. 가운데 맞춤 및 오른쪽 맞춤 다중 줄 편집 컨트롤은 가로로 스크롤할 수 없습니다.

ES_AUTOVSCROLL 스타일은 사용자가 편집 컨트롤에 표시할 수 있는 것보다 많은 텍스트를 입력할 때 텍스트를 세로로 스크롤하도록 편집 컨트롤에 지시합니다. 이 스타일은 여러 줄 편집 컨트롤에만 적용됩니다. 이 스타일이 여러 줄 편집 컨트롤에 지정되지 않은 경우 편집 컨트롤은 표시할 수 있는 것보다 많은 텍스트를 입력할 때 입력을 허용하지 않습니다.

정렬 스타일

시스템에서 편집 컨트롤의 텍스트를 정렬하도록 하는 세 가지 스타일이 있습니다. ES_LEFT, ES_CENTERES_RIGHT 스타일은 텍스트가 각각 왼쪽, 가운데 또는 오른쪽에 맞춰지는지 여부를 결정합니다. 오른쪽 맞춤 및 가운데 맞춤 다중 줄 편집 컨트롤은 ES_AUTOHSCROLL 스타일을 가질 수 없습니다. 즉, 가로로 스크롤할 수 없습니다.

편집 컨트롤의 맞춤 스타일을 동적으로 변경할 수는 없지만 다음 기술을 사용하여 이 제한을 해결할 수 있습니다.

  • 애플리케이션에 필요한 각 스타일에 대해 하나씩 여러 편집 컨트롤을 만들고 필요에 따라 컨트롤 간에 전환합니다.
  • 필요에 따라 원하는 스타일로 새 편집 컨트롤을 만들고 새 컨트롤로 전환합니다.

텍스트 및 입력 스타일

애플리케이션은 스타일을 사용하여 편집 컨트롤에서 텍스트를 표시하는 방법을 지정할 수 있습니다. ES_LOWERCASE 스타일을 사용하면 편집 컨트롤에 입력된 모든 대문자가 소문자로 변환됩니다. 마찬가지로 ES_UPPERCASE 스타일은 모든 소문자를 대문자로 변환합니다.

문자 집합에 대한 자세한 내용은 유니코드 및 문자 집합참조하세요.

ES_NUMBER 스타일은 입력을 편집 컨트롤의 숫자로만 제한합니다.

ES_READONLY 스타일은 편집 컨트롤을 읽기 전용 상태로 변경합니다.

ES_PASSWORD 스타일은 한 줄 편집 컨트롤의 모든 문자를 별표로 표시합니다. 애플리케이션은 이 항목의 뒷부분에 설명된 대로 EM_SETPASSWORDCHAR 메시지를 사용하여 표시할 다른 문자를 정의할 수 있습니다.

편집 컨트롤이 Comctl32.dll 버전 6의 경우 검은색 원은 ES_PASSWORD 스타일의 기본 문자입니다. 이전 버전의 공용 컨트롤의 편집 컨트롤에서 기본 문자는 별표입니다.

ES_OEMCONVERT 스타일을 사용하면 편집 컨트롤에 입력된 텍스트가 Windows 문자 집합에서 OEM 문자 집합으로 변환된 다음 다시 Windows 문자 집합으로 변환됩니다. 이렇게 하면 애플리케이션이 CharToOem 함수를 호출하여 편집 컨트롤의 Windows 문자열을 OEM 문자로 변환할 때 적절한 문자 변환이 보장됩니다. ES_OEMCONVERT 유니코드를 지원하지 않는 파일 시스템에서 사용할 파일 이름을 포함하는 편집 컨트롤에 가장 유용합니다.

대화 상자에서 여러 줄 편집 컨트롤의 경우 ES_WANTRETURN 스타일을 사용하면 사용자가 텍스트를 입력하는 동안 ENTER 키를 누를 때 컨트롤이 캐리지 리턴을 삽입합니다. 이 스타일을 지정하지 않으면 Enter 키를 누르면 대화 상자에서 기본 누름 단추를 누르는 것과 같은 효과가 있습니다. ES_WANTRETURN이 없으면, 사용자가 Ctrl+Enter를 눌러 캐리지 리턴을 삽입해야 합니다. Wordwrap 및 줄 바꿈에 대한 자세한 내용은 Wordwrap 및 줄 바꿈처리를 참조하세요.

비주얼 스타일

ES_NOHIDESEL 스타일을 사용하면 편집 컨트롤에 포커스가 없을 때 선택한 텍스트가 강조 표시된 상태로 유지됩니다. 이 스타일이 없으면 선택한 텍스트는 컨트롤이 포커스를 잃을 때 강조 표시가 손실됩니다.

기본적으로 편집 컨트롤에는 테두리가 없습니다. 이를 제공하기 위해 애플리케이션은 WS_BORDER 창 스타일을 사용할 수 있습니다.

편집 컨트롤에서 비주얼 스타일을 사용하려면 애플리케이션에 매니페스트가 포함되어야 하며 프로그램 시작 시 InitCommonControls 호출해야 합니다. 비주얼 스타일에 대한 자세한 내용은 비주얼 스타일참조하세요. 매니페스트에 대한 정보는 비주얼 스타일 사용 활성화을 참조하세요.

텍스트 버퍼

시스템은 편집 컨트롤 텍스트를 버퍼에 저장하고 필요에 따라 컨트롤에 복사합니다.

다음 항목에서는 시스템에서 버퍼를 할당 및 초기화하고 해당 특성을 변경하는 방법에 대해 설명합니다.

텍스트 버퍼 할당

시스템에서 편집 컨트롤을 만들 때 자동으로 텍스트 버퍼를 만들고 초기 크기를 설정하며 필요에 따라 크기를 늘립니다. 크기는 한 줄 편집 컨트롤의 경우 약 32KB(미리 정의된 제한)까지 가능합니다. 이 제한을 변경할 수 있으므로 소프트 제한이라고 합니다. 애플리케이션은 편집 컨트롤에 EM_SETLIMITTEXT 메시지를 전송하여 버퍼 크기에 대한 하드 제한을 설정할 수 있습니다. 버퍼가 두 제한을 초과하면 시스템에서 애플리케이션에 EN_ERRSPACE 알림 코드를 보냅니다. 애플리케이션은 EM_GETLIMITTEXT 메시지를 전송하여 현재 텍스트 제한을 검색할 수 있습니다.

시스템은 일반적으로 애플리케이션의 데이터 세그먼트 외부에 있는 메모리를 사용하여 대화 상자에 편집 컨트롤 버퍼를 만듭니다. 애플리케이션은 편집 컨트롤을 만들 때 DS_LOCALEDIT 스타일(정보 대화 상자"대화 상자 템플릿 스타일" 참조)을 사용하여 이 기본 할당 동작을 표시하지 않으며 로컬 힙에서 버퍼를 만들 수 있습니다. DS_LOCALEDIT 스타일을 사용하는 애플리케이션은 모든 버퍼 할당을 담당합니다. 초기 할당을 위해 애플리케이션은 LocalAlloc 함수를 호출하고 반환된 버퍼 핸들을 EM_SETHANDLE 메시지를 전송하여 편집 컨트롤에 전달할 수 있습니다. 예를 들어 EN_ERRSPACE 알림 코드에 대한 응답으로 후속 할당을 수행하려면 애플리케이션이 현재 버퍼 콘텐츠를 저장하고(필요한 경우) 다음과 같이 새 버퍼를 가져와야 합니다.

현재 버퍼를 저장하고 새 버퍼를 가져오려면 이 절차를 따릅니다.

  1. 컨트롤에 EM_GETHANDLE 메시지를 전송하여 다중 줄 편집 컨트롤의 텍스트에 대해 현재 할당된 메모리의 핸들을 검색합니다.
  2. LocalFree 함수를 호출하여 버퍼를 해제합니다.
  3. LocalAlloc호출하여 새 버퍼(및 버퍼 핸들)를 가져옵니다.
  4. 컨트롤에 EM_SETHANDLE 메시지를 전송하여 시스템에 버퍼 핸들을 제공합니다.

EM_SETHANDLEEM_GETHANDLE 메시지는 여러 줄 편집 컨트롤에만 적용됩니다.

기본 할당 동작을 사용하는 애플리케이션(즉, DS_LOCALEDIT 스타일을 사용하지 않음(대화 상자 정보"대화 상자 서식 파일 스타일" 참조)은 편집 컨트롤에 EM_SETHANDLEEM_GETHANDLE 메시지를 보내면 안 됩니다.

EM_SETHANDLE 메시지를 보내는 경우 몇 가지 부작용이 있습니다. 실행 취소 플래그를 지우고(EM_CANUNDO 메시지가 0으로 반환됨), 수정 플래그를 지우고(EM_GETMODIFY 메시지가 0을 반환하게 함) 편집 컨트롤 창을 다시 그립니다.

텍스트 버퍼 초기화

애플리케이션은 SetDlgItemText 함수를 호출하여 편집 컨트롤의 텍스트 버퍼를 초기화하거나 다시 초기화할 수 있습니다. 애플리케이션은 GetDlgItemText 함수를 호출하여 텍스트 버퍼의 콘텐츠를 검색할 수 있습니다.

텍스트 버퍼 읽기 전용 만들기

각 편집 컨트롤에 대해 시스템은 컨트롤의 텍스트가 읽기/쓰기인지(기본값) 또는 읽기 전용인지를 나타내는 읽기 전용 플래그를 유지 관리합니다. 애플리케이션은 컨트롤에 EM_SETREADONLY 메시지를 전송하여 텍스트에 대한 읽기/쓰기 플래그 또는 읽기 전용 플래그를 설정할 수 있습니다. 편집 컨트롤이 읽기 전용인지 여부를 확인하기 위해 애플리케이션은 GWL_STYLE 상수로 GetWindowLong 함수를 호출할 수 있습니다. EM_SETREADONLY 메시지는 한 줄 및 여러 줄 편집 컨트롤 모두에 적용됩니다.

서식 사각형 변경

편집 컨트롤 텍스트의 표시 유형은 창 사각형의 차원과 서식 지정 사각형에 의해 제어됩니다. 창 사각형은 편집 컨트롤을 포함하는 창의 클라이언트 영역입니다. 서식 지정 사각형은 창 사각형에 표시되는 텍스트의 서식을 지정하기 위해 시스템에서 유지 관리하는 구문입니다. 편집 컨트롤이 처음 표시되면 화면에서 두 사각형이 동일합니다. 애플리케이션은 서식 사각형을 창 사각형보다 크게 만들거나(편집 컨트롤 텍스트의 표시 여부를 제한) 창 사각형보다 작게 만들 수 있습니다(따라서 텍스트 주위에 공백이 추가로 생성됨).

애플리케이션은 편집 컨트롤의 서식 지정 사각형의 좌표를 EM_SETRECT 메시지를 전송하여 설정할 수 있습니다. 또한 EM_SETRECT 메시지는 편집 컨트롤의 텍스트를 자동으로 다시 그립니다. 컨트롤의 텍스트를 다시 그리지 않고 서식 사각형의 좌표를 설정하려면 애플리케이션에서 컨트롤에 EM_SETRECTNP 메시지를 보낼 수 있습니다. 서식 지정 사각형의 좌표를 검색하기 위해 애플리케이션은 컨트롤에 EM_GETRECT 메시지를 보낼 수 있습니다. 이러한 메시지는 여러 줄 편집 컨트롤에만 적용됩니다.

컨트롤 알림 메시지 편집

사용자가 키보드와 마우스를 사용하여 편집 요청을 합니다. 시스템은 각 요청을 편집 컨트롤의 부모 창에 WM_COMMAND 메시지 형식으로 보냅니다. 메시지에는 wParam 매개 변수의 하위 단어에 있는 편집 컨트롤 식별자, lParam 매개 변수의 편집 컨트롤 핸들 및 wParam 매개 변수의 상위 단어에 있는 사용자의 작업에 해당하는 편집 컨트롤 알림 코드가 포함됩니다.

애플리케이션은 각 알림 메시지와 함께 제공되는 알림 코드를 검사하고 적절하게 응답해야 합니다. 다음 표에서는 각 편집 컨트롤 알림 코드와 이를 생성하는 작업을 나열합니다.

알림 코드 사용자 작업
EN_CHANGE 사용자가 편집 컨트롤에서 텍스트를 수정했습니다. 시스템은 이 알림 코드를 보내기 전에 디스플레이를 업데이트합니다( EN_UPDATE과는 달리).
EN_ERRSPACE 편집 컨트롤은 특정 요청을 충족하기에 충분한 메모리를 할당할 수 없습니다.
EN_HSCROLL 사용자가 편집 컨트롤의 가로 스크롤 막대를 클릭했습니다. 시스템은 화면을 업데이트하기 전에 이 알림 코드를 보냅니다.
초점 지움(#EN_KILLFOCUS) 사용자가 다른 컨트롤을 선택했습니다.
EN_MAXTEXT 텍스트를 삽입하는 동안 사용자가 편집 컨트롤에 대해 지정한 문자 수를 초과했습니다. 삽입이 잘렸습니다. 이 알림 코드는 편집 컨트롤에 ES_AUTOHSCROLL 스타일이 없으며 삽입할 문자 수가 편집 컨트롤의 너비를 초과하거나 편집 컨트롤에 ES_AUTOVSCROLL 스타일이 없으며 삽입할 줄의 총 수가 편집 컨트롤의 높이를 초과하는 경우에도 전송됩니다.
EN_SETFOCUS 사용자가 이 편집 컨트롤을 선택했습니다.
EN_UPDATE 사용자가 편집 컨트롤의 텍스트를 변경했으며 시스템에서 새 텍스트를 표시하려고 합니다. 시스템에서는 텍스트 서식을 지정한 후 이 알림 코드를 보내지만 표시하기 전에 애플리케이션이 편집 컨트롤 창의 크기를 조정할 수 있도록 합니다.
EN_VSCROLL 사용자가 편집 컨트롤의 세로 스크롤 막대를 클릭했거나 편집 컨트롤 위로 마우스 휠을 스크롤했습니다. 시스템은 화면을 업데이트하기 전에 이 알림 코드를 보냅니다.
EN_SEARCHWEB 사용자가 '웹 검색' 상황에 맞는 메뉴 항목을 클릭했습니다. 시스템에서 브라우저를 시작한 후 이 알림을 보냅니다.

또한 시스템은 편집 컨트롤을 그리기 전에 편집 컨트롤의 부모 창에 WM_CTLCOLOREDIT 메시지를 보냅니다. 이 메시지에는 편집 컨트롤의 DC(표시 컨텍스트) 핸들과 자식 창의 핸들이 포함되어 있습니다. 부모 창에서는 이러한 핸들을 사용하여 편집 컨트롤의 텍스트 및 배경색을 변경할 수 있습니다.

컨트롤 기본 메시지 처리 편집

미리 정의된 편집 컨트롤 창 클래스의 창 프로시저는 편집 제어 프로시저가 처리하지 않는 모든 메시지에 대한 기본 처리를 수행합니다. 편집 제어 프로시저가 모든 메시지에 대해 FALSE 반환하는 경우 미리 정의된 창 프로시저는 메시지를 확인하고 다음 기본 작업을 수행합니다.

메시지 기본 동작
EM_CANUNDO 편집 컨트롤 작업을 실행 취소할 수 있으면 TRUE 반환합니다.
EM_CHARFROMPOS 지정된 지점에 가장 가까운 문자의 문자 인덱스 및 줄 인덱스 값을 반환합니다.
EM_EMPTYUNDOBUFFER 실행 취소 버퍼를 비우고 EM_CANUNDO 메시지에서 검색한 실행 취소 플래그를 FALSE로 설정합니다. 편집 컨트롤이 WM_SETTEXT 또는 EM_SETHANDLE 메시지를 받을 때마다 시스템에서 자동으로 실행 취소 플래그를 지웁니다.
EM_FMTLINES 여러 줄 편집 컨트롤에서 줄 바꿈이 있는 줄 끝에 부드러운 줄 바꿈 문자(캐리지 리턴 2개와 줄 바꿈 문자 1개)를 추가하거나 제거합니다. 한 줄 편집 컨트롤에 의해 처리되지 않습니다.
EM_GETFIRSTVISIBLELINE 한 줄 편집 컨트롤에서 처음 표시되는 문자의 인덱스(0부터 시작)를 반환하거나 다중 줄 편집 컨트롤에서 가장 위쪽에 표시되는 줄의 인덱스(0부터 시작)를 반환합니다.
EM_GETHANDLE 여러 줄 편집 컨트롤의 텍스트를 포함하는 버퍼를 식별하는 핸들을 반환합니다. 한 줄 편집 컨트롤에 의해 처리되지 않습니다.
EM_GETLIMITTEXT 현재 텍스트 제한을 문자로 반환합니다.
EM_GETLINE 한 줄 편집 컨트롤의 문자를 버퍼에 복사하고 복사된 문자 수를 반환합니다. 여러 줄 편집 컨트롤에서 컨트롤에서 텍스트 줄을 검색하고 복사된 문자 수를 반환합니다.
EM_GETLINECOUNT 편집 컨트롤의 줄 수를 반환합니다.
EM_GETMARGINS 왼쪽 여백과 오른쪽 여백의 너비를 반환합니다.
EM_GETMODIFY 편집 컨트롤의 내용이 수정되었는지 여부를 나타내는 플래그를 반환합니다.
EM_GETPASSWORDCHAR 편집 컨트롤이 ES_PASSWORD 스타일과 함께 사용하는 문자를 반환합니다.
EM_GETRECT 편집 컨트롤에서 서식 사각형의 좌표를 반환합니다.
EM_GETSEL 편집 컨트롤에서 현재 선택 영역의 시작 및 끝 문자 위치를 반환합니다.
EM_GETTHUMB 여러 줄 편집 컨트롤의 세로 스크롤 막대에 있는 스크롤 상자의 위치를 반환합니다.
EM_GETWORDBREAKPROC 편집 컨트롤에서 현재 Wordwrap 함수의 주소를 반환합니다.
EM_LINEFROMCHAR 지정된 문자 인덱스를 포함하는 여러 줄 편집 컨트롤에 있는 줄의 0부터 시작하는 수를 반환합니다. 이 메시지는 EM_LINEINDEX 메시지의 반대입니다. 한 줄 편집 컨트롤에 의해 처리되지 않습니다.
EM_LINEINDEX 여러 줄 편집 컨트롤에서 줄의 문자를 반환합니다. 이 메시지는 EM_LINEFROMCHAR 메시지의 반대입니다. 한 줄 편집 컨트롤에 의해 처리되지 않습니다.
EM_LINELENGTH 한 줄 편집 컨트롤의 길이를 문자로 반환합니다. 여러 줄 편집 컨트롤에서 지정된 줄의 길이를 문자 단위로 반환합니다.
EM_LINESCROLL 텍스트를 한 줄 편집 컨트롤에서 세로로 스크롤하거나 여러 줄 편집 컨트롤에서 가로로 스크롤합니다(컨트롤에 ES_LEFT 스타일이 있는 경우). lParam 매개 변수는 현재 줄에서 시작하여 세로로 스크롤할 줄 수를 지정합니다. wParam 매개 변수는 현재 문자부터 시작하여 가로로 스크롤할 문자 수를 지정합니다.
EM_POSFROMCHAR 지정된 문자의 클라이언트 좌표를 반환합니다.
EM_REPLACESEL 현재 선택을 애플리케이션에서 제공한 버퍼의 텍스트로 교체하고, 부모 창에 EN_UPDATEEN_CHANGE 알림 코드를 보내며, 실행 취소 버퍼를 업데이트합니다.
EM_SCROLL 여러 줄 편집 컨트롤에서 텍스트를 세로로 스크롤합니다. 이 메시지는 편집 컨트롤에 WM_VSCROLL 메시지를 보내는 것과 같습니다. 한 줄 편집 컨트롤에 의해 처리되지 않습니다.
EM_SCROLLCARET 편집 컨트롤에서 캐럿을 보기로 스크롤합니다.
EM_SETFONT 지원 되지 않는.
EM_SETHANDLE 텍스트 버퍼로 사용되는 메모리에 대한 핸들을 설정하고, 실행 취소 버퍼를 비우고, 스크롤 위치를 0으로 다시 설정하고, 창을 다시 그립니다.
EM_SETLIMITTEXT 사용자가 편집 컨트롤에 입력할 수 있는 최대 문자 수를 설정합니다. 한 줄 편집 컨트롤의 경우 이 값은 0x7FFFFFFE 또는 wParam 매개 변수의 값 중 더 작은 값입니다. 여러 줄 편집 컨트롤의 경우 이 값은 1이거나 wParam 매개 변수 값 중 더 작은 값입니다.
EM_SETMARGINS 왼쪽 여백과 오른쪽 여백의 너비를 설정하고 편집 컨트롤을 다시 그려 새 여백을 반영합니다.
EM_SETMODIFY 편집 컨트롤이 수정되었는지 여부를 나타내기 위해 수정 플래그를 설정하거나 지웁니다.
EM_SETPASSWORDCHAR 편집 컨트롤이 ES_PASSWORD 스타일과 함께 사용하는 문자를 정의합니다.
EM_SETREADONLY 편집 컨트롤에서 읽기 전용 스타일(ES_READONLY)을 설정하거나 제거합니다.
EM_SETRECT 여러 줄 편집 컨트롤의 서식 사각형을 설정하고 창을 다시 그립니다. 한 줄 편집 컨트롤에 의해 처리되지 않습니다.
EM_SETRECTNP 여러 줄 편집 컨트롤의 서식 사각형을 설정하지만 창을 다시 그리지는 않습니다. 한 줄 편집 컨트롤에 의해 처리되지 않습니다.
EM_SETSEL 선택할 시작 위치와 끝 위치를 설정하여 편집 컨트롤에서 문자 범위를 선택합니다.
EM_SETTABSTOPS 여러 줄 편집 컨트롤에서 탭 중지 위치를 설정합니다. 한 줄 편집 컨트롤에 의해 처리되지 않습니다.
EM_SETWORDBREAKPROC 기본 Wordwrap 함수를 애플리케이션 정의 Wordwrap 함수로 바꿉니다.
EM_UNDO 방금 삽입한 텍스트를 제거하거나 삭제된 문자를 삽입하고 선택 영역을 삽입된 텍스트로 설정합니다. 필요한 경우 EN_UPDATEEN_CHANGE 알림 코드를 부모 창으로 보냅니다.
WM_CHAR 한 줄 편집 컨트롤에 문자를 쓰고 EN_UPDATEEN_CHANGE 알림 코드를 부모 창으로 보냅니다. 여러 줄 편집 컨트롤에 문자를 씁니다. 복사를 위한 Ctrl+C, 붙여넣기용 Ctrl+V와 같은 표준 함수에 대한 가속기 키를 처리합니다. 여러 줄 편집 컨트롤에서 Tab 및 Ctrl+Tab 키 입력을 처리하여 대화 상자의 컨트롤 간에 이동하고 탭을 여러 줄 편집 컨트롤에 삽입합니다. 잘못된 문자에 MessageBeep 함수를 사용합니다.
WM_CLEAR 편집 컨트롤에서 현재 선택 영역(있는 경우)을 지웁니다. 현재 선택 영역이 없으면 캐리트의 오른쪽에 있는 문자를 삭제합니다. 사용자가 SHIFT 키를 누르면 선택 영역이 클립보드로 잘리거나 선택 영역이 없을 때 해당 문자를 캐리트 왼쪽에 삭제합니다. 사용자가 Ctrl 키를 누르면 선택 영역이 삭제되거나 선택 영역이 없으면 줄 끝에 삭제됩니다.
WM_COPY 스타일이 '', '', 'ES_PASSWORD', '', ''일 경우가 아니면 텍스트를 클립보드에 복사합니다. 해당 경우에 메시지는 0을 반환합니다.
WM_CREATE 편집 컨트롤을 생성하고 부모 창에 TRUE(성공 시) 또는 1(실패 시)로 알립니다.
WM_CUT 선택 영역을 클립보드로 잘라내거나 선택 영역이 없는 경우 커서 왼쪽의 문자를 삭제합니다.
WM_ENABLE 한 줄 편집 컨트롤의 경우 사각형이 회색으로 다시 그려지도록 합니다. 한 줄 및 여러 줄 편집 컨트롤에 사용할 수 있는 상태를 반환합니다.
WM_ERASEBKGND 여러 줄 편집 컨트롤 창을 편집 컨트롤의 현재 색으로 채웁니다.
WM_GETDLGCODE DLGC_WANTCHARS, DLGC_HASSETSEL 및 DLGC_WANTARROWS 값을 반환합니다. 여러 줄 편집 컨트롤에서는 DLGC_WANTALLKEYS를 반환하기도 합니다. 사용자가 Alt+BACKSPACE를 누르면 DLGC_WANTMESSAGE 반환됩니다.
WM_GETFONT 컨트롤에서 사용하는 글꼴의 핸들을 반환하거나, 컨트롤이 시스템 글꼴을 사용하는 경우 NULL을 반환합니다.
WM_GETTEXT 지정된 문자 수를 버퍼에 복사하고 복사된 문자 수를 반환합니다.
WM_GETTEXTLENGTH 편집 컨트롤의 텍스트 길이를 문자로 반환합니다. 길이에는 null 종료 문자가 포함되지 않습니다.
WM_HSCROLL 여러 줄 편집 컨트롤의 텍스트를 가로로 스크롤하고 스크롤 상자 이동을 처리합니다.
WM_KEYDOWN 가상 키 코드의 표준 처리를 수행합니다.
WM_KILLFOCUS 편집 컨트롤 창의 키보드 포커스를 제거하고, 캐리트를 제거하고, 현재 선택을 숨기고, 편집 컨트롤이 포커스를 잃었다는 것을 부모 창에 알립니다.
WM_LBUTTONDBLCLK 현재 선택 영역을 지우고 커서 아래에 있는 단어를 선택합니다. SHIFT 키가 눌리면 커서 아래의 단어로 선택 영역을 확장합니다.
WM_LBUTTONDOWN 현재 삽입 지점을 변경합니다. SHIFT 키가 눌리면 선택 영역을 커서의 위치로 확장합니다. 또한 여러 줄 편집 컨트롤에서 사용자가 여러 줄 편집 컨트롤 창 외부의 마우스 단추를 누를 때 타이머가 자동으로 스크롤되도록 설정합니다.
WM_LBUTTONUP 마우스 캡처를 해제하고 한 줄 편집 컨트롤에서 텍스트 삽입 지점을 설정합니다. 여러 줄 편집 컨트롤에서, WM_LBUTTONDOWN 메시지에 설정된 타이머도 종료됩니다.
WM_MOUSEMOVE 마우스 단추가 아래쪽에 있는 경우 한 줄 편집 컨트롤의 현재 선택 영역을 변경합니다. 또한 여러 줄 편집 컨트롤에서 사용자가 여러 줄 편집 컨트롤 창 바깥쪽에 있는 마우스 단추를 누른 경우 타이머가 자동으로 스크롤되도록 설정합니다.
WM_NCCREATE 창의 CREATESTRUCT 구조체에 대한 포인터입니다. 이 메시지는 창이 처음 생성되면 WM_CREATE 메시지로 전송됩니다.
WM_NCDESTROY 텍스트 버퍼, 실행 취소 버퍼, 탭 중지 버퍼 및 강조 브러시를 포함하여 편집 컨트롤 창과 연결된 모든 메모리를 해제합니다.
WM_PAINT 배경을 지우고, 편집 컨트롤 창의 현재 색으로 창을 채우고, 테두리(있는 경우)를 그리고, 글꼴을 설정하고, 텍스트를 그리고, 텍스트 삽입 캐리트를 표시합니다.
WM_PASTE 클립보드의 텍스트를 캐리트 위치의 편집 컨트롤 창에 붙여넣습니다.
WM_SETFOCUS 편집 컨트롤 창의 키보드 포커스를 설정합니다(숨겨진 경우 현재 선택 영역을 표시하고, 캐리트를 만듭니다).
WM_SETFONT 글꼴을 설정하고 필요에 따라 편집 컨트롤을 다시 그립니다.
WM_SETTEXT 텍스트를 한 줄 편집 컨트롤에 복사하고, 메모리가 부족한 경우 부모 창에 알리고, 실행 취소 버퍼를 비우고, EN_UPDATEEN_CHANGE 알림 코드를 부모 창으로 보냅니다. 여러 줄 편집 컨트롤에서 선(필요한 경우)을 다시 래프하고 스크롤 위치를 설정합니다.
WM_SIZE 편집 컨트롤 창의 크기를 설정하여 크기가 문자의 높이와 너비를 수용할 수 있도록 합니다.
WM_SYSCHAR 사용자가 ALT+BACKSPACE를 누르면 true 반환합니다. 그렇지 않으면 아무 작업도 수행하지 않습니다.
WM_SYSKEYDOWN 사용자가 Alt+BACKSPACE를 누르면 마지막 작업을 실행 취소합니다. 그렇지 않으면 아무 작업도 수행하지 않습니다.
WM_TIMER 사용자가 여러 줄 편집 컨트롤 창 바깥쪽에 있는 마우스 단추를 누른 경우 편집 컨트롤 창의 텍스트를 스크롤합니다.
WM_UNDO 방금 삽입한 텍스트를 제거하거나 삭제된 문자를 삽입하고 선택 영역을 삽입된 텍스트로 설정합니다. 필요한 경우 EN_UPDATEEN_CHANGE 알림 코드를 부모 창으로 보냅니다.
WM_VSCROLL 여러 줄 편집 컨트롤을 세로로 스크롤하고 스크롤 상자 이동을 처리합니다. 한 줄 편집 컨트롤에 의해 처리되지 않습니다.

미리 정의된 편집 제어 창 프로시저는 다른 모든 메시지를 기본 처리를 위해 DefWindowProc 함수에 전달합니다.