다음을 통해 공유


IAutoComplete 인터페이스(shldisp.h)

자동 완성 개체(CLSID_AutoComplete)에 의해 노출됩니다. 이 인터페이스를 사용하면 애플리케이션에서 개체를 초기화, 사용 및 사용하지 않도록 설정할 수 있습니다.

상속

IAutoComplete 인터페이스는 IUnknown 인터페이스에서 상속됩니다. IAutoComplete 에는 다음과 같은 유형의 멤버도 있습니다.

메서드

IAutoComplete 인터페이스에는 이러한 메서드가 있습니다.

 
IAutoComplete::Enable

자동 완성을 사용하거나 사용하지 않도록 설정합니다.
IAutoComplete::Init

자동 완성 개체를 초기화합니다.

설명

자동 완성은 편집 컨트롤 에 부분적으로 입력된 문자열을 전체 문자열로 확장합니다. 예를 들어 사용자가 Windows 인터넷 Explorer 도구 모음에 포함된 주소 편집 컨트롤에 URL을 입력하기 시작하면 자동 완성은 문자열을 기존 부분 문자열과 일치하는 하나 이상의 완전한 URL로 확장합니다. "mic"와 같은 부분 URL 문자열을 "http://www.microsoft.com" 또는 "http://www.microsoft.com/windows"로 확장할 수 있습니다. 자동 완성은 일반적으로 편집 컨트롤이나 콤보박스ex 컨트롤과 같은 포함된 편집 컨트롤이 있는 컨트롤과 함께 사용됩니다.

자동 완성에는 완료된 문자열을 표시하는 두 가지 모드가 있습니다. 모드는 독립적이므로 또는 둘 다를 사용하도록 설정할 수 있습니다. 모드를 지정하려면 IAutoComplete2::SetOptions를 호출합니다. 모드는 다음과 같습니다.

  • 자동 적용 모드에서 자동 완성은 가장 가능성이 높은 후보 문자열의 나머지를 기존 문자에 추가하여 추가된 문자를 강조 표시합니다. 편집 컨트롤은 사용자가 전체 문자열을 수동으로 입력한 다음 추가된 문자를 강조 표시한 것처럼 동작합니다. 사용자가 문자를 계속 입력하면 기존 부분 문자열에 추가됩니다. 사용자가 강조 표시된 다음 문자와 동일한 문자를 추가하면 해당 문자의 강조 표시가 꺼집니다. 나머지 문자는 계속 강조 표시됩니다. 사용자가 강조 표시된 다음 문자와 일치하지 않는 문자를 추가하는 경우 자동 완성은 더 큰 부분 문자열을 기반으로 새 후보 문자열을 생성하려고 시도합니다. 이전과 같이 새 후보 문자열의 나머지 부분을 현재 부분 문자열에 추가합니다. 후보 문자열을 찾을 수 없는 경우 입력된 문자만 나타나고 자동 완성 없이 편집 상자가 동작합니다. 이 프로세스는 사용자가 문자열을 수락할 때까지 계속됩니다.
  • autosuggest 모드에서 자동 완성은 하나 이상의 제안된 전체 문자열을 사용하여 편집 컨트롤 아래에 드롭다운 목록을 표시합니다. 사용자는 일반적으로 해당 문자열을 클릭하거나 계속 입력하여 제안된 문자열 중 하나를 선택할 수 있습니다. 입력이 진행됨에 따라 현재 부분 문자열에 따라 드롭다운 목록이 수정될 수 있습니다. IAutoComplete2::SetOptionsdwFlag 매개 변수에서 ACO_SEARCH 플래그를 설정하면 드롭다운 목록의 맨 아래에 "XXX 검색" 항목이 추가됩니다. 제안된 문자열이 없더라도 표시됩니다. "XXX"는 현재 부분 문자열로 설정되며 사용자가 계속 입력할 때 업데이트됩니다. 사용자가 "'...' 검색"을 선택하면 애플리케이션에서 사용자를 지원하기 위해 검색 엔진을 시작해야 합니다.
자동 완성을 구현하는 가장 간단한 방법은 SHAutoComplete를 호출하는 것입니다. 시스템 편집 컨트롤에 대해 이 함수를 호출하면 컨트롤이 부분적으로 입력한 파일 시스템 경로 또는 URL을 자동으로 완성합니다. 다른 유형의 문자열에 대해 자동 완성을 사용하도록 설정하거나 자동 완성의 작동 방식을 보다 잘 제어하려면 기본 자동 완성 개체를 직접 사용할 수 있습니다.

이 인터페이스는 일반적으로 애플리케이션에서 구현되지 않습니다. 셸의 자동 완성 개체에 의해 노출되며 애플리케이션에서 사용됩니다.

자동 완성 개체의 IAutoComplete 인터페이스를 사용하여 개체를 초기화하고 자동 완성을 사용하거나 사용하지 않도록 설정합니다.

자동 완성 개체를 사용하여 편집 컨트롤에 대한 자동 완성을 구현하려면 다음을 수행합니다.

  1. IEnumString 인터페이스를 내보내는 COM(구성 요소 개체 모델) 개체 문자열 목록을 구현합니다. 이 문자열 목록 개체는 자동 완성 개체가 완료된 문자열의 후보로 사용할 문자열 목록을 제공합니다.
  2. CoCreateInstance를 사용하여 자동 완성 개체의 instance 만듭니다. IAutoComplete 인터페이스에 대한 포인터를 요청합니다.
  3. IAutoComplete::Init를 호출합니다. hwndEdit 매개 변수를 편집 컨트롤의 창 핸들로 설정합니다. 편집 컨트롤이 다른 컨트롤에 포함된 경우 편집 컨트롤 자체에 대한 핸들을 검색해야 합니다. 예를 들어 콤보박스 컨트롤에 포함된 편집 컨트롤에 대한 핸들을 검색하려면 CBEM_GETEDITCONTROL 메시지를 보냅니다. IAutoComplete::InitpunkACL 매개 변수를 문자열 목록 개체의 IUnknown 포인터로 설정합니다.
  4. 기본 옵션을 사용하지 않으려면 자동 완성 개체의 IAutoComplete2 인터페이스에 대한 포인터를 검색합니다. IAutoComplete2::SetOptions를 호출하여 원하는 옵션을 설정합니다.
  5. 자동 완성 개체는 3단계에서 punkACL로 전달된 문자열 목록 개체의 IUnknown 포인터를 사용하여 해당 개체의 IEnumString 인터페이스에 대한 포인터를 검색합니다. 그런 다음 자동 완성 개체는 해당 인터페이스를 호출하여 후보 문자열 목록을 생성합니다. 컨트롤의 부분 문자열과 일치하는 문자열을 해당 목록에서 선택합니다. 자동 적용 모드에서는 문자열을 완료하는 데 필요한 문자가 부분 문자열에 추가되고 강조 표시됩니다. 자동 제안 모드에서는 하나 이상의 가능한 문자열 목록이 있는 드롭다운 상자가 편집 컨트롤 아래에 표시됩니다.
  6. 사용자가 자동 완성된 문자열을 수락하면 편집 컨트롤은 문자열을 수동으로 입력한 것처럼 동작합니다.
자동 완성은 기본적으로 사용하도록 설정됩니다. 애플리케이션은 IAutoComplete::Enable 를 호출하여 자동 완성을 사용하지 않도록 설정하거나 사용하지 않도록 설정한 경우 다시 사용하도록 설정하면 됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional, Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 shldisp.h

추가 정보

IACList

IACList2

IAutoComplete2

ICurrentWorkingDirectory

IObjMgr