메인 콘텐츠로 건너뛰기

Documentation Index

Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt

Use this file to discover all available pages before exploring further.

Visual Components는 Windows용 FRE에서 구현됩니다.
ABBYY FineReader Engine Visual Components에서 제공하는 대부분의 기능은 컨텍스트 메뉴와 도구 모음(있는 경우)을 통해 사용할 수 있습니다. 컨텍스트 메뉴와 도구 모음에서 제공되는 명령은 대부분의 일반적인 사용 시나리오에서 유용합니다. 하지만 작업에 맞게 이러한 요소를 사용자 지정해야 하는 경우도 있습니다. 도구 모음은 Image Viewer, Text Editor, Document Viewer에서 사용할 수 있습니다. 도구 모음에 새 버튼을 추가하고 필요 없는 버튼을 제거할 수 있습니다. 버튼은 미리 정의된 버튼일 수도 있고, 직접 만든 버튼일 수도 있습니다. Toolbar 컨텍스트 메뉴는 Image Viewer, Zoom Viewer, Text Editor, Document Viewer에서 사용할 수 있습니다. 각 구성 요소의 컨텍스트 메뉴는 표준 부분과 사용자 지정 부분으로 구성됩니다:
  • 컨텍스트 메뉴의 표준 부분은 기본적으로 구성 요소에 표시되는 메뉴입니다. 이 부분은 변경할 수 없습니다. 이 메뉴 부분은 표시하거나 숨길 수만 있습니다.
  • 컨텍스트 메뉴의 사용자 지정 부분은 편집할 수 있습니다. 기본적으로는 비어 있습니다. 구성 요소에서 사용할 수 있는 표준 명령이나 사용자 정의 명령을 이 부분에 추가할 수 있습니다. 사용자 지정 부분은 항상 표준 부분 뒤에 표시됩니다. 또한 사용자 지정 부분도 활성화하거나 비활성화할 수 있습니다.
PopupMenu

사용 가능한 명령 관리

Visual Components에서 사용할 수 있는 전체 명령 목록은 MenuItemEnum 열거형 상수에서 확인할 수 있습니다. ImageViewer, ZoomViewer, DocumentViewer, TextEditor 객체의 Commands 하위 객체를 통해 각 구성 요소에서 사용할 수 있는 명령에 액세스할 수 있습니다. 명령은 다음과 같은 방법으로 호출할 수 있습니다.
  • 컨텍스트 메뉴에서 항목 선택,
  • 도구 모음 버튼 클릭,
  • 단축키 누르기,
  • 구성 요소의 Commands 하위 객체에 있는 DoCommand 메서드 사용.
하지만 모든 명령에 대해 이 모든 방법을 사용할 수 있는 것은 아닙니다. 각 구성 요소에서 사용할 수 있는 명령 목록과 각 명령을 사용하는 방법은 다음을 참조하세요. 명령을 활성화하거나 비활성화하려면 Commands 객체의 EnableCommand 또는 DisableCommand 메서드를 사용하세요. 명령을 비활성화하면 해당 명령에 사용할 수 있는 어떤 호출 방법도 작동하지 않습니다.

미리 정의된 명령을 도구 모음에 추가하기

일부 미리 정의된 명령은 기본적으로 도구 모음에서 사용할 수 있고, 나머지는 개발자가 구성 요소의 도구 모음에 추가할 수 있습니다. 각 구성 요소에서 사용할 수 있는 미리 정의된 명령 목록을 참조하세요. 도구 모음에 미리 정의된 명령을 추가하거나 제거하려면 다음과 같이 하세요.
  1. 구성 요소의 Toolbar 속성을 통해 Toolbar 객체를 가져옵니다.
  2. Toolbar 객체의 InsertAt method를 사용해 도구 모음의 원하는 위치에 명령을 삽입하거나, Delete 또는 DeleteAt method를 사용해 제거합니다.
구분선을 사용해 도구 모음의 버튼을 그룹화할 수 있습니다. Toolbar 객체의 InsertAt method에서 MI_Separator 상수를 parameter로 사용하세요.
// Image Viewer의 도구 모음 시작 부분에 미리 정의된 명령 MI_InvertImage를 추가합니다
private FineReaderVisualComponents.AxImageViewer imageViewer;
imageViewer.Toolbar.InsertAt(FineReaderVisualComponents.MenuItemEnum.MI_InvertImage, 0);
미리 정의된 명령이 추가되면 애플리케이션에서 사용할 수 있습니다. 해당 이벤트는 ABBYY FineReader Engine에서 처리합니다. ICommandEvents 인터페이스의 OnCommand 이벤트를 사용하면 핸들러에 추가 기능을 더할 수 있습니다.

미리 정의된 명령을 컨텍스트 메뉴에 추가하기

미리 정의된 명령 중 일부는 기본적으로 컨텍스트 메뉴에서 사용할 수 있으며, 이러한 명령이 컨텍스트 메뉴의 표준 부분을 구성합니다. 구성 요소에서 사용할 수 있는 다른 모든 미리 정의된 명령은 컨텍스트 메뉴의 사용자 지정 부분에 추가할 수 있습니다. 컨텍스트 메뉴의 사용자 지정 부분에 미리 정의된 명령을 추가하거나 제거하려면 다음과 같이 하십시오.
  1. 구성 요소의 PopupMenu 속성을 통해 PopupMenu 객체를 가져옵니다.
  2. 표준 부분을 사용하지 않을 경우 PopupMenu 객체의 StandardMenuEnabled 속성을 사용하여 컨텍스트 메뉴의 표준 부분 전체를 비활성화합니다. 기본적으로 표준 부분은 활성화되어 있습니다.
  3. PopupMenu 객체의 CustomMenuEnabled 속성을 사용하여 컨텍스트 메뉴의 사용자 지정 부분을 활성화합니다.
  4. PopupMenu 객체의 InsertAt 메서드를 사용하여 컨텍스트 메뉴의 사용자 지정 부분에서 원하는 위치에 명령을 삽입하거나, Delete 또는 DeleteAt 메서드를 사용하여 제거합니다.
구분 기호를 사용해 컨텍스트 메뉴의 사용자 지정 부분에 있는 항목을 그룹으로 나눌 수 있습니다. 매개 변수로 MI_Separator 상수를 지정하여 PopupMenu 객체의 InsertAt 메서드를 사용하십시오.
// Image Viewer의 컨텍스트 메뉴 사용자 지정 부분 맨 앞에 미리 정의된 명령 MI_InvertImage를 추가합니다
private FineReaderVisualComponents.AxImageViewer imageViewer;
imageViewer.PopupMenu.StandardMenuEnabled = false;
imageViewer.PopupMenu.CustomMenuEnabled = true;
imageViewer.PopupMenu.InsertAt(FineReaderVisualComponents.MenuItemEnum.MI_InvertImage, 0);
미리 정의된 명령이 추가되면 애플리케이션에서 이를 사용할 수 있습니다. 해당 이벤트는 ABBYY FineReader Engine에서 처리합니다. ICommandEvents 인터페이스의 OnCommand 이벤트를 사용하면 처리기에 추가 기능을 보완할 수 있습니다.

사용자 정의 명령 만들기

사용자 고유의 명령을 만들어 도구 모음이나 컨텍스트 메뉴에 추가할 수도 있습니다. MenuItemEnum 열거형에는 사용자 고유 명령을 정의하는 데 사용할 수 있는 상수(MI_CustomCommand1, … MI_CustomCommand10)가 포함되어 있습니다. 사용자 정의 명령을 추가하기 전에 먼저 도구 모음 버튼에 사용할 아이콘(16х16 px)을 만들고 명령 텍스트를 정해야 합니다. 그런 다음 구성 요소에 명령을 등록하고 도구 모음 또는 컨텍스트 메뉴의 사용자 지정 부분에 추가해야 합니다. 자세한 내용은 아래를 참조하세요. 사용자 명령을 추가하려면 다음과 같이 하십시오.
  1. 구성 요소에 명령을 등록합니다. 구성 요소의 Commands 하위 객체에 있는 RegisterUserCommand 메서드를 사용하고, 매개변수로 MI_CustomCommand1, … MI_CustomCommand10 상수 중 하나를 지정합니다. 또한 이 메서드의 매개변수에서 아이콘 경로, 명령 텍스트, 단축키도 지정해야 합니다.
단축키는 두 부분으로 구성됩니다. 가상 키 코드와 키 한정자(Ctrl, Alt, Shift)입니다. 단축키를 FineReader Engine 메서드에 전달할 때는 Windows SendMessage 함수에 HKM_GETHOTKEY 메시지를 보냈을 때 반환되는 값(LRESULT)과 동일한 형식이어야 합니다. 이 형식의 단축키 값을 얻으려면 단축키의 가상 키 코드를 값의 하위 바이트에 넣고, 단축키 조합을 정의하는 키를 지정하는 키 한정자를 상위 바이트에 넣어야 합니다. 명령에 단축키를 사용할 필요가 없으면 메서드의 매개변수로 0을 전달하십시오.
  1. 새 명령의 이벤트를 처리하도록 ICommandEvents 인터페이스의 OnCommand 이벤트를 구현합니다. Working with Connectable Objects를 참조하세요.
  2. 구성 요소의 도구 모음 또는 컨텍스트 메뉴의 사용자 지정 부분에 명령을 추가합니다. 절차는 도구 모음 또는 컨텍스트 메뉴의 미리 정의된 명령과 동일합니다.
이제 이 명령을 애플리케이션에서 사용할 수 있습니다.
private FineReaderVisualComponents.AxImageViewer imageViewer;
private FineReaderVisualComponents.AxTextEditor textEditor;
private const int HotkeyShift = 1;
private const int HotkeyControl = 2;
private const int HotkeyAlt = 4;
// 단축키 값 만들기
private int makeWord(int keyCode, int modifierFlags)
{
 return (int)((uint)((byte)(keyCode)) | ((uint)((byte)(modifierFlags)) << 8));
}
// 사용자 정의 명령 추가
private void addCommands()
{

 int hotKey = makeWord((int)Keys.B, HotkeyShift);
 imageViewer.Commands.RegisterUserCommand(FineReaderVisualComponents.MenuItemEnum.MI_CustomCommand1, "MyCommand", "D:\\img.bmp", hotKey);
 imageViewer.Toolbar.InsertAt(FineReaderVisualComponents.MenuItemEnum.MI_CustomCommand1, 0);
 imageViewer.Commands.OnCommand += new FineReaderVisualComponents.DICommandEvents_OnCommandEventHandler( imageViewer_OnCommand );
 hotKey = makeWord((int)Keys.T, HotkeyAlt | HotkeyShift);
 textEditor.Commands.RegisterUserCommand(FineReaderVisualComponents.MenuItemEnum.MI_CustomCommand1, "MyTextCommand", "", hotKey);

}
// Image Viewer의 OnCommand 이벤트 처리기
private void imageViewer_OnCommand( FineReaderVisualComponents.MenuItemEnum command, out bool cancel ){
 if( command == FineReaderVisualComponents.MenuItemEnum.MI_CustomCommand1 )
 {
  ...
 }
}
이전에 추가한 사용자 명령을 제거하려면 다음과 같이 하십시오.
  1. 도구 모음 또는 컨텍스트 메뉴의 사용자 지정 부분에서 해당 명령을 제거합니다. 절차는 도구 모음 또는 컨텍스트 메뉴의 미리 정의된 명령과 동일합니다.
  2. 명령 등록을 해제합니다. 구성 요소의 Commands 하위 객체에 있는 UnregisterUserCommand 메서드를 사용합니다.

참고 항목

그래픽 사용자 인터페이스를 사용하는 애플리케이션 만들기