Share via


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

요청된 피팅 유형입니다. 다음 중 하나일 수 있습니다.

의미
TXTNS_EMU
이 메서드의 매개 변수에 대해 픽셀 대신 영어 EMU(메트릭 단위)를 측정 단위(양방향)로 사용합니다.
TXTNS_FITTOCONTENT
전달된 너비로 텍스트의 서식을 지정하여 전체 텍스트에 맞게 컨트롤 크기를 조정합니다. text services 개체는 전체 텍스트의 높이와 가장 넓은 줄의 너비를 반환합니다.

예를 들어 사용자가 컨트롤의 핸들 중 하나를 두 번 클릭할 때 이 작업을 수행해야 합니다.

TXTNS_FITTOCONTENT2
들여쓰기된 콘텐츠에 맞도록 컨트롤의 크기를 조정합니다.
TXTNS_FITTOCONTENT3
들여쓰기된 콘텐츠와 후행 공백에 맞도록 컨트롤의 크기를 조정합니다.
TXTNS_FITTOCONTENTWSP
컨트롤의 크기를 조정하여 인덱싱되지 않은 콘텐츠와 후행 공백에 맞도록 합니다.
TXTNS_INCLUDELASTLINE
일반 텍스트 컨트롤의 경우 크기를 계산할 때 최종 캐리지 리턴의 높이를 포함합니다.
TXTNS_ROUNDTOLINE
컨트롤의 크기를 조정하여 정수 줄 수를 표시합니다(줄이 잘리지 않음). 전달되는 너비와 높이를 채우기에 충분한 텍스트 서식을 지정한 다음 가장 가까운 선 경계로 반올림된 높이를 반환합니다.
참고 전달되고 반환된 너비와 높이는 뷰 사각형에 해당합니다. 호스트는 필요에 따라 클라이언트 사각형으로 다시 조정해야 합니다. 이러한 값은 텍스트 개체의 범위를 나타내기 때문에 HIMETRIC 좌표(각 HIMETRIC 단위는 0.01mm)의 입력 및 출력이며 측정에는 확대/축소 인수가 포함되지 않습니다. 확대/축소 비율에 대한 자세한 내용은 TxGetExtent를 참조하세요.
 

psizelExtent

형식: const SIZEL*

확대/축소에 사용할 익스텐트 크기(HIMETRIC 단위)입니다.

pwidth

형식: LONG*

dwMode로 정의된 피팅의 너비입니다.

pheight

형식: LONG*

dwMode로 정의된 피팅의 높이입니다.

pascent

형식: LONG*

한 줄 컨트롤의 경우 는 텍스트의 위쪽 줄에 있는 문자의 상승(기준선 위의 단위)을 받습니다.

반환 값

형식: HRESULT

메서드가 성공하면 반환 값이 S_OK.

텍스트 서비스에서 개체를 활성화할 수 없는 경우 반환 값은 다음 HRESULT 코드 중 하나입니다. COM 오류 코드에 대한 자세한 내용은 COM에서 오류 처리를 참조하세요.

반환 코드 설명
E_FAIL
올바른 크기를 확인할 수 없습니다.
E_INVALIDARG
하나 이상의 인수가 잘못되었습니다.
E_OUTOFMEMORY
메모리가 부족합니다.

설명

처음 네 개의 매개 변수는 ITextServices::TxDraw 의 동일한 매개 변수와 유사하며 동일한 정보를 제공합니다. 줄을 다시 계산해야 하는 경우 TxGetNaturalSize2ITextServices::TxDraw와 동일한 방식으로 이러한 값을 사용합니다.

pwidthpheight 매개 변수는 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

추가 정보

ITextServices2