GetDialogBaseUnits 함수(winuser.h)
시스템 글꼴에서 문자의 평균 너비와 높이인 시스템의 대화 상자 기본 단위를 검색합니다. 시스템 글꼴을 사용하는 대화 상자의 경우 이러한 값을 사용하여 대화 상자 템플릿 및 픽셀에 지정된 대화 상자 템플릿 단위 간에 변환할 수 있습니다. 시스템 글꼴을 사용하지 않는 대화 상자의 경우 대화 상자 템플릿 단위에서 픽셀로의 변환은 대화 상자에서 사용되는 글꼴에 따라 달라집니다.
두 대화 상자 유형 모두 MapDialogRect 함수를 사용하여 변환을 수행하는 것이 더 쉽습니다. MapDialogRect 는 글꼴을 고려하여 사각형을 대화 상자 템플릿 단위에서 픽셀로 올바르게 변환합니다.
구문
long GetDialogBaseUnits();
반환 값
형식: LONG
함수는 대화 상자 기본 단위를 반환합니다. 반환 값의 하위 단어에는 가로 대화 상자 기본 단위가 포함되고 상위 단어에는 세로 대화 상자 기본 단위가 포함됩니다.
설명
GetDialogBaseUnits에서 반환되는 가로 기본 단위는 시스템 글꼴에 있는 문자의 평균 너비(픽셀)와 같습니다. 세로 기본 단위는 글꼴의 높이(픽셀)와 같습니다.
시스템 글꼴은 대화 상자 템플릿에서 글꼴을 지정하지 못하는 경우에만 사용됩니다. 대부분의 대화 상자 템플릿은 글꼴을 지정합니다. 따라서 이 함수는 대부분의 대화 상자에 유용하지 않습니다.
시스템 글꼴을 사용하지 않는 대화 상자의 경우 기본 단위는 대화 상자 글꼴에 있는 문자의 평균 너비와 높이(픽셀)입니다. GetTextMetrics 및 GetTextExtentPoint32 함수를 사용하여 선택한 글꼴에 대해 이러한 값을 계산할 수 있습니다. 그러나 MapDialogRect 함수를 사용하면 계산이 시스템에서 수행하는 것과 다를 경우 발생할 수 있는 오류를 방지할 수 있습니다.
각 가로 기본 단위는 4개의 가로 대화 템플릿 단위와 같습니다. 각 세로 기본 단위는 8개의 세로 대화 템플릿 단위와 같습니다. 따라서 대화 상자 템플릿 단위를 픽셀로 변환하려면 다음 수식을 사용합니다.
pixelX = MulDiv(templateunitX, baseunitX, 4);
pixelY = MulDiv(templateunitY, baseunitY, 8);
마찬가지로 픽셀에서 대화 상자 템플릿 단위로 변환하려면 다음 수식을 사용합니다.
templateunitX = MulDiv(pixelX, 4, baseunitX);
templateunitY = MulDiv(pixelY, 8, baseunitY);
예제
예제는 콤보 상자 사용의 " 콤보 상자 도구 모음 만들기"를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | winuser.h(Windows.h 포함) |
라이브러리 | User32.lib |
DLL | User32.dll |
API 세트 | ext-ms-win-ntuser-dialogbox-l1-1-2(Windows 10 버전 10.0.10240에 도입됨) |
추가 정보
개념
참조