ITextServices2::TxGetNaturalSize2 메서드(textserv.h)
컨트롤의 크기를 조정하여 해당 콘텐츠에 적절하게 맞습니다. 이 메서드는 TxGetNaturalSize와 유사하지만 위쪽 텍스트 줄의 상승도 검색합니다.
구문
HRESULT TxGetNaturalSize2(
DWORD dwAspect,
HDC hdcDraw,
HDC hicTargetDev,
DVTARGETDEVICE *ptd,
DWORD dwMode,
const SIZEL *psizelExtent,
LONG *pwidth,
LONG *pheight,
LONG *pascent
);
매개 변수
dwAspect
형식: DWORD
드로잉의 측면입니다. DVASPECT 열거형의 값일 수 있습니다.
hdcDraw
형식: HDC
드로잉이 발생하는 디바이스 컨텍스트입니다.
hicTargetDev
형식: HDC
텍스트의 서식을 지정해야 하는 디바이스 컨텍스트(즉, WYSIWYG의 경우)입니다.
ptd
형식: DVTARGETDEVICE*
대상 디바이스에 대한 자세한 정보입니다.
dwMode
형식: DWORD
요청된 피팅 유형입니다. 다음 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
이 메서드의 매개 변수에 대해 픽셀 대신 영어 EMU(메트릭 단위)를 측정 단위(양방향)로 사용합니다. |
|
전달된 너비로 텍스트의 서식을 지정하여 전체 텍스트에 맞게 컨트롤 크기를 조정합니다. text services 개체는 전체 텍스트의 높이와 가장 넓은 줄의 너비를 반환합니다.
예를 들어 사용자가 컨트롤의 핸들 중 하나를 두 번 클릭할 때 이 작업을 수행해야 합니다. |
|
들여쓰기된 콘텐츠에 맞도록 컨트롤의 크기를 조정합니다. |
|
들여쓰기된 콘텐츠와 후행 공백에 맞도록 컨트롤의 크기를 조정합니다. |
|
컨트롤의 크기를 조정하여 인덱싱되지 않은 콘텐츠와 후행 공백에 맞도록 합니다. |
|
일반 텍스트 컨트롤의 경우 크기를 계산할 때 최종 캐리지 리턴의 높이를 포함합니다. |
|
컨트롤의 크기를 조정하여 정수 줄 수를 표시합니다(줄이 잘리지 않음). 전달되는 너비와 높이를 채우기에 충분한 텍스트 서식을 지정한 다음 가장 가까운 선 경계로 반올림된 높이를 반환합니다.
참고 전달되고 반환된 너비와 높이는 뷰 사각형에 해당합니다. 호스트는 필요에 따라 클라이언트 사각형으로 다시 조정해야 합니다. 이러한 값은 텍스트 개체의 범위를 나타내기 때문에 HIMETRIC 좌표(각 HIMETRIC 단위는 0.01mm)의 입력 및 출력이며 측정에는 확대/축소 인수가 포함되지 않습니다. 확대/축소 비율에 대한 자세한 내용은 TxGetExtent를 참조하세요.
|
psizelExtent
형식: const SIZEL*
확대/축소에 사용할 익스텐트 크기(HIMETRIC 단위)입니다.
pwidth
형식: LONG*
dwMode로 정의된 피팅의 너비입니다.
pheight
형식: LONG*
dwMode로 정의된 피팅의 높이입니다.
pascent
형식: LONG*
한 줄 컨트롤의 경우 는 텍스트의 위쪽 줄에 있는 문자의 상승(기준선 위의 단위)을 받습니다.
반환 값
형식: HRESULT
메서드가 성공하면 반환 값이 S_OK.
텍스트 서비스에서 개체를 활성화할 수 없는 경우 반환 값은 다음 HRESULT 코드 중 하나입니다. COM 오류 코드에 대한 자세한 내용은 COM에서 오류 처리를 참조하세요.
반환 코드 | 설명 |
---|---|
|
올바른 크기를 확인할 수 없습니다. |
|
하나 이상의 인수가 잘못되었습니다. |
|
메모리가 부족합니다. |
설명
처음 네 개의 매개 변수는 ITextServices::TxDraw 의 동일한 매개 변수와 유사하며 동일한 정보를 제공합니다. 줄을 다시 계산해야 하는 경우 TxGetNaturalSize2 는 ITextServices::TxDraw와 동일한 방식으로 이러한 값을 사용합니다.
pwidth 및 pheight 매개 변수는 in/out 매개 변수입니다. 호스트는 텍스트 개체의 자연 범위의 미정 너비와 높이를 전달합니다. text services 개체는 이러한 값을 현재 캐시된 상태와 비교하고 다른 경우 줄을 다시 계산합니다. 그런 다음 dwMode에 지정된 대로 자연 크기를 계산하고 반환합니다.
예제
다음 예제에서는 psizelExtent 매개 변수를 1:1의 확대/축소 인수로 초기화하는 방법을 보여 줍니다. 줄임표를 입력해야 하는 코드를 나타냅니다.
LONG dxpi = GetDeviceCaps(hdc, LOGPIXELSX);
LONG dypi = GetDeviceCaps(hdc, LOGPIXELSY);
LONG dyAscent = 0;
LONG dx = ... ; // Text image width, in pixels
LONG dy = ... ; // Text image height, in pixels
SIZEL sizel; // dx and dy, in HIMETRIC
ITextServices2 *pserv = ... ; // Interface for single-line control
sizel.cx = MulDiv(dx, HIMETRIC_PER_INCH, dxpi);
sizel.cy = MulDiv(dy, HIMETRIC_PER_INCH, dypi);
pserv->TxGetNaturalSize2(DVASPECT_DOCPRINT, hdc, hdcNil, pNil,
TXTNS_FITTOCONTENT, &sizel, &dx, &dy, &dyAscent)))
요구 사항
지원되는 최소 클라이언트 | Windows 8 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2012 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | textserv.h |
DLL | Msftedit.dll |