Share via


잉크 컬렉션

잉크 컬렉션은 디지타이저로 시작합니다. 사용자가 디지타이저에 펜을 놓고 쓰기 시작합니다. API의 잉크 컬렉션 기능을 사용하여 펜에서 "흐르는" 잉크 데이터 컬렉션을 관리할 수 있습니다. Tablets 컬렉션 및 Tablet 개체를 통해 태블릿 PC에서 사용 가능한 하드웨어에 대한 정보에 액세스할 수 있습니다. 그런 다음 InkCollector 개체를 사용하여 디지타이저에서 가져온 데이터를 가져옵니다.

태블릿 및 태블릿 개체

태블릿은 태블릿 PC의 디지타이저 디바이스를 나타냅니다. 태블릿 PC에는 디지타이저가 두 개 이상 있을 수 있습니다. Tablet 개체를 사용하여 태블릿 PC 및 해당 하드웨어 기능에 연결된 사용 가능한 디지타이저 디바이스를 쿼리할 수 있습니다. 예를 들어 작업 중인 태블릿 이 디스플레이와 통합되어 있는지 또는 별도의 외부 디바이스인지 확인할 수 있습니다.

InkCollector 개체

InkCollector 개체는 사용 가능한 태블릿 디바이스에서 잉크 입력을 캡처합니다. InkCollector 개체는 특정 창에 입력된 잉크 및 제스처만 수집합니다. 매우 효율적인 이벤트 싱크는 이 입력을 실시간으로 렌더링합니다. InkCollector 개체는 입력을 캡처하여 Ink 개체로 전달합니다.

참고

디지타이저 디바이스의 하드웨어 기능에 따라 여러 펜으로 잉크를 동시에 배치하면 작동하거나 작동하지 않을 수 있습니다.

 

잉크 수집기 작동 방식

InkCollector 개체는 알려진 애플리케이션 창에 자신을 연결합니다. 그런 다음 사용자가 사용 가능한 태블릿 PC 장치(마우스 포함)를 사용하여 해당 창에서 실시간으로 잉크를 배치할 수 있습니다. 수집하는 잉크 스트로크는 연결된 Ink 개체에 저장됩니다. 그런 다음 이러한 스트로크를 조작하거나 인식기를 통해 인식기로 보낼 수 있습니다. 또한 InkCollector 개체는 사용 중인 태블릿 PC 디바이스 범위에 커서가 들어올 때 애플리케이션에 알린다.

InkCollector 개체가 잉크 사용 창 내에서 마우스 커서를 정확하게 설정하려면 해당 창이 WM_SETCURSOR 메시지를 받을 수 있어야 합니다. 이는 모든 일반 창에 성공하지만 대화 상자 내의 컨트롤의 경우 컨트롤의 대화 부모가 이 메시지를 필터링합니다. 컨트롤이 메시지를 수신하려면 SS_NOTIFY 스타일을 설정합니다.

InkOverlay 개체

앞에서 설명한 InkCollector 개체는 애플리케이션이 선택, 지우기 및 기타 사용자 상호 작용을 위한 자체 모델을 제공하는 데 유용합니다. InkOverlay 개체는 편집 지원을 제공하는 InkCollector 개체의 상위 집합입니다. 이는 애플리케이션이 개체가 제공하는 표준 잉크 선택 모델 집합을 사용하여 잉크 그리기 및 편집을 자체 문서 캔버스에 통합하는 데 유용합니다.

InkCollector 개체와 InkOverlay 개체(InkPicture 컨트롤)는 모두 Ink 개체 및 DrawingAttributes 컬렉션과 같은 일반적인 구문을 사용하므로 잉크 색을 변경하는 기본 방법은 모든 곳에서 동일합니다. 이렇게 하면 코드를 다시 사용하고 일반적인 프로그래밍 방식으로 액세스할 수 있으며, 애플리케이션에서 스크립팅 지원을 제공하는 경우 특히 중요할 수 있습니다.

InkOverlay 는 사용자가 잉크에서 인식을 수행하는 데 관심이 없지만 잉크의 크기, 모양, 색 및 위치에 관심이 있는 주석 시나리오에 유용한 COM 개체입니다. 노트 작성 및 기본 낙서에 적합합니다. 기본 사용자 인터페이스는 불투명 잉크가 있는 투명한 사각형입니다.

InkOverlay 는 세 가지 방법으로 InkCollector 클래스를 확장합니다.

  • 시작 스트로크, 끝 스트로크 및 잉크 특성 변경에 대한 이벤트를 발생합니다.
  • 이를 통해 사용자는 잉크를 선택, 지우기 및 크기를 조정할 수 있습니다.
  • 잘라내기, 복사 및 붙여넣기 명령을 지원합니다.

InkOverlay가 유용한 일반적인 시나리오는 프레젠테이션 슬라이드 또는 이미지를 표시하는 것입니다. InkOverlay 개체를 사용하면 이 시나리오에 필요한 잉크 및 레이아웃 기능을 쉽게 구현할 수 있습니다.

InkOverlay로 작업하려면 다음을 수행합니다.

  1. InkOverlay 개체를 인스턴스화합니다.
  2. 창의 hWnd(관리 코드에서 핸들)를 InkOverlay 개체의 hWnd 속성(관리 코드의 핸들 속성)에 연결합니다.
  3. InkOverlay 개체의 Enabled 속성을 TRUE로 설정합니다.

InkOverlay 개체에는 기본 인쇄 지원이 포함되어 있지만 인쇄 미리 보기 또는 기타 고급 인쇄 기능을 구현해야 합니다.

InkOverlay 는 잉크를 ISF(직렬화된 잉크 형식)로 유지합니다.

참고

InkOverlay 개체의 EditingModeDelete 또는 Select로 설정된 경우 다른 이벤트(예: InkAdded, InkDeletedStroke)가 트리거됩니다. 이러한 이벤트는 사용자 고유의 삭제 또는 선택 모드를 구현하려는 경우에 유용합니다.

 

잉크 선택

InkOverlay 개체를 사용하면 사용자가 올가미 도구를 사용하여 추적된 영역에 포함된 잉크 개체를 선택할 수 있습니다. 사용자는 Ink 개체를 탭하여 잉크를 선택할 수도 있습니다.

Selection 속성을 사용하여 사용자의 선택을 조작하는 데 사용할 수 있는 Strokes 컬렉션을 반환합니다.

Ink 개체 또는 Ink 개체 집합을 선택하면 잉크 경계 상자의 네 모서리와 인접한 모서리 사이의 모든 중간 지점에 크기 조정 핸들이 나타납니다. 사용자가 선택한 영역 내의 아무 곳이나 끌면 잉크가 컨트롤 내에서 이동 가능해집니다.

기본 동작

InkOverlay 개체는 기본적으로 잉크를 수집하도록 설정됩니다. 잉크는 잉크 공간 단위 너비가 53개입니다(여기서 잉크 공간 단위 1개 = HIMETRIC 1개). 사용자가 고대비 모드에서 실행되지 않는 경우 잉크는 검은색입니다. 그렇지 않으면 잉크가 COLOR_WINDOWTEXT 값(관리 코드의 WindowText )으로 설정됩니다. FitToCurveFALSE입니다.

커서 및 단추 개체

커서는 태블릿 PC에서 사용되는 펜의 끝에 해당합니다. instance 연필에는 두 끝이 있습니다. 일반적으로 한쪽 끝은 쓰기에 사용되고 다른 쪽 끝은 지우기 위해 사용됩니다. 이 두 끝은 두 개의 커서에 해당합니다. 커서 클래스는 System.Windows.Forms.Cursor와 혼동되지 않습니다.

태블릿 PC에서 커서는 일반적으로 쓰기 또는 지우기용으로 정의됩니다. 애플리케이션에서 이 기능을 사용하도록 설정하면 커서가 역할을 변경할 수 있습니다. 일부 태블릿 PC 장치는 여러 펜을 허용합니다. 각 커서에는 시스템에서 고유한 연결된 커서 ID가 있습니다. 커서에는 0개 이상의 연결된 단추가 있을 수 있습니다. 이러한 단추는 CursorButton 개체로 애플리케이션에 제공됩니다. 애플리케이션은 지정된 커서에 대해 특정 DrawingAttributes 개체를 제공할 수 있습니다.

그리기 특성 개체

DrawingAttributes 개체는 알려진 잉크 집합을 그리는 방법을 설명합니다. DrawingAttributes 개체에는 Color, WidthPenTip과 같은 기본 속성이 포함됩니다. 또한 흥미로운 효과를 제공하거나 잉크 가독성을 향상시킬 수 있는 가변 투명도 및 베지어 스무딩과 같은 고급 매개 변수를 포함할 수 있습니다.

PenInputPanel 개체

참고

PenInputPanel 클래스는 더 이상 사용되지 않습니다. PenInputPanel 클래스가 TextInputPanel 클래스로 대체되었습니다.

 

PenInputPanel 개체를 사용하면 애플리케이션에 현재 위치 펜 입력을 쉽게 추가할 수 있습니다. PenInputPanel은 기존 컨트롤에 태블릿 PC 입력 패널 기능을 추가할 수 있는 연결 가능한 개체로 사용할 수 있습니다. 사용자 인터페이스는 주로 현재 입력 언어에 의해 위임됩니다. 필기 또는 키보드 중에서 PenInputPanel의 기본 입력 방법을 선택할 수 있습니다. 최종 사용자는 사용자 인터페이스의 단추를 사용하여 입력 메서드 간에 전환할 수 있습니다.

InkCollector 클래스(C++)

InkOverlay 클래스(C++)

Microsoft.Ink 네임스페이스