ITextServices::TxDraw 메서드(textserv.h)
텍스트 서비스 개체를 그립니다.
구문
HRESULT TxDraw(
[in] DWORD dwDrawAspect,
LONG lindex,
[in] void *pvAspect,
[in] DVTARGETDEVICE *ptd,
[in] HDC hdcDraw,
[in] HDC hicTargetDev,
[in] LPCRECTL lprcBounds,
[in] LPCRECTL lprcWBounds,
[in] LPRECT lprcUpdate,
BOOL(* )(DWORD) pfnContinue,
DWORD dwContinue,
LONG lViewId
);
매개 변수
[in] dwDrawAspect
형식: DWORD
그릴 모양, 즉 개체 표현 방법을 지정합니다. 그리기 측면은 다음 값 중 하나일 수 있습니다.
lindex
형식: LONG
지원되지 않습니다.
[in] pvAspect
형식: void*
그리기 최적화에 대한 정보입니다.
[in] ptd
형식: DVTARGETDEVICE*
대상 디바이스입니다.
[in] hdcDraw
형식: HDC
디바이스 컨텍스트 렌더링.
[in] hicTargetDev
형식: HDC
대상 정보 컨텍스트입니다.
[in] lprcBounds
형식: LPCRECTL
경계(클라이언트) 사각형입니다.
[in] lprcWBounds
형식: LPCRECTL
메타파일의 클리핑 사각형입니다.
[in] lprcUpdate
형식: LPRECT
lprcBounds 내의 업데이트 지역입니다.
pfnContinue
형식: BOOL 콜백*
지원되지 않습니다.
dwContinue
형식: DWORD
함수를 계속하기 위해 전달할 매개 변수입니다.
lViewId
형식: LONG
그릴 보기를 지정합니다.
값 | 의미 |
---|---|
|
위치 활성 보기를 그립니다. |
|
현재 위치 보기 이외의 뷰를 그립니다. 예를 들어 인쇄 미리 보기입니다. |
반환 값
형식: HRESULT
반환 값은 일반적으로 S_OK.
설명
이 메서드는 text services 개체를 렌더링합니다. 추가 lprcUpdate 및 lViewId 매개 변수를 사용하여 OLE의 해당 IViewObject::D raw 메서드와 동일한 매개 변수를 허용합니다. 호스트가 활성 상태이거나 비활성 상태인 동안 사용할 수 있습니다.
lprcBounds 매개 변수는 렌더링할 사각형을 클라이언트 사각형이라고도 합니다. 이 사각형은 그릴 텍스트 서비스 개체의 전체 이미지 위치와 범위를 나타냅니다. hdcDraw의 논리적 좌표계로 표현됩니다. lprcBounds가 NULL이면 컨트롤이 활성 상태여야 합니다. 이 경우 text services 개체는 현재 위치 활성 보기(즉, 호스트에서 TxGetClientRect 를 호출하여 가져올 수 있는 클라이언트 사각형)를 렌더링해야 합니다.
lprcUpdate 매개 변수가 NULL이 아닌 경우 hdcDraw의 논리적 좌표계에서 해당 클라이언트 사각형 내에서 업데이트할 사각형을 제공합니다. lprcUpdate가 NULL이면 전체 클라이언트 사각형을 그려야 합니다.
text services 개체는 클라이언트 사각형 및 TxGetExtent에서 제공하는 네이티브 크기에서 가져올 수 있는 적절한 확대/축소 인수를 사용하여 렌더링해야 합니다. 확대/축소 비율에 대한 자세한 내용은 TxGetExtent를 참조하세요.
OLE 호스트 및 ITextServices::TxDraw ( ITextServices::OnTxSetCursor 및 ITextServices::TxQueryHitPoint의 경우)에 대한 일반 설명:
OLE 호스트는 렌더링 디바이스 컨텍스트 또는 클라이언트 사각형을 사용하여 언제든지 ITextServices::TxDraw 메서드를 호출할 수 있습니다. 비활성 상태인 OLE 개체는 익스텐트만 유지합니다. 렌더링할 사각형을 가져오기 위해 호스트는 IViewObject::D raw 메서드를 호출합니다. 이 사각형은 해당 메서드의 scope 대해서만 유효합니다. 따라서 동일한 컨트롤은 화면의 다른 보기에 동시에 표시되므로 다른 사각형 및 다른 디바이스 컨텍스트에서 연속적으로 렌더링할 수 있습니다.
일반적으로 ITextServices::TxDraw 에 전달된 클라이언트 사각형 및 디바이스 컨텍스트는 캐시되지 않아야 합니다. 텍스트 서비스 개체가 모든 그리기 동안 줄을 다시 계산하여 성능을 저하시킬 수 있기 때문입니다. 대신 text services 개체는 특정 클라이언트 사각형 및 디바이스 컨텍스트(예: 줄 바꿈)에 대해 계산되는 정보를 캐시할 수 있습니다. 그러나 ITextServices::TxDraw에 대한 다음 호출에서 캐시된 정보의 유효성을 검사해야 사용되며 필요한 경우 업데이트된 정보를 다시 생성해야 합니다.
또한 컨트롤이 활성 상태일 때는 주의하세요. ITextServices::TxDraw를 호출하여 현재 위치 활성 뷰가 아닌 다른 보기를 렌더링할 수 있으므로 이 문제는 훨씬 더 복잡합니다. 즉, ITextServices::TxDraw 에 전달된 클라이언트 사각형이 활성 사각형과 같지 않을 수 있습니다( ITextServices::OnTxInPlaceActivate에 전달되고 호스트의 TxGetClientRect 를 통해 획득됨).
요구 사항
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | textserv.h |
DLL | Msftedit.dll |
추가 정보
개념
기타 리소스
참조