텍스트 버퍼 할당

시스템 편집 컨트롤을 만들 때 자동으로 텍스트 버퍼, 설정 하는 초기 크기로 만들고 필요에 따라 크기를 증가 시킵니다. 크기는 약 32 kb 단일 줄 편집 컨트롤에 대 한 미리 정의 된 제한 될 수 있습니다. 이 제한을 변경할 수 있기 때문에 소프트 한계를 라고 합니다. 응용 프로그램 편집 컨트롤에 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_SETHANDLE 및 EM_GETHANDLE 메시지를 여러 줄 편집 컨트롤에만 적용.

기본 할당 동작을 사용 하는 응용 프로그램 (즉, 사용 하지 않는 DS_LOCALEDIT 스타일) 편집 컨트롤에 EM_SETHANDLE 및 EM_GETHANDLE 메시지를 보내야 합니다.

여러 가지 부작용이 있다 EM_SETHANDLE 메시지 보내기: 그것 실행 취소 플래그 (0을 반환 하는 EM_CANUNDO 메시지 만들기), (0을 반환 하는 EM_GETMODIFY 메시지 만들기) 수정 플래그를 지웁니다 지우고 편집 제어 창을 다시 그립니다.

 

Index