다음을 통해 공유


컨트롤에 대한 키보드 처리

컨트롤이 키보드 가속기에 응답하므로 최종 사용자가 컨트롤에서 수행하는 작업을 시작할 수 있습니다. 컨테이너는 모든 포함된 컨트롤에 대한 키보드 작업을 관리합니다. 복합 문서를 사용하면 키보드 가속기가 현재 활성 개체에만 적용됩니다. 컨트롤을 사용하면 컨트롤이 현재 UI 활성 상태가 아니더라도 키보드 니모닉에 응답할 수 있도록 메커니즘이 추가되었습니다.

IOleControl::GetControlInfoIOleControl::OnMnemonic 메서드 및 IOleControlSite::OnControlInfoChanged 메서드는 컨트롤의 키보드 니모닉을 처리합니다. CONTROLINFO 구조체는 컨트롤의 니모닉 가속기를 설명하고 GetControlInfo 메서드를 통해 전달된 플래그는 Enter 키와 Esc 키를 사용하여 컨트롤 동작을 설명합니다. 컨트롤이 니모닉을 변경하면 컨테이너가 필요한 경우 구조를 다시 로드할 수 있도록 OnControlInfoChanged 를 호출합니다.

컨트롤이 UI 활성 상태이면 포커스가 있는 컨트롤이기도 합니다. 현재 위치 활성 상태와 UI 활성 상태 간에 컨트롤이 활성화되고 비활성화되면 컨트롤 은 IOleControlSite::OnFocus 를 호출하여 컨테이너에 이러한 변경 내용을 알릴 수 있습니다.

또한 컨트롤이 UI 활성 상태이면 키 입력을 처리할 수 있습니다. 컨트롤 앞에 키 입력을 처리할 수 있는 기회를 컨테이너에 제공하기 위해 컨트롤 은 IOleControlSite::TranslateAccelerator를 호출합니다. 컨테이너가 키 입력을 처리하지 않으면 컨트롤이 이를 처리합니다.

ActiveX 컨트롤