이 작업을 수행해야합니다
: 예를 들어,
HFONT font = CreateFont(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, L"Arial");
당신은 매개 변수의 일부 null 이외의 값을에서 지정할해야합니다 BTW이 이해가되지 않습니다
int MyGetCharWidth(HFONT font, wchar_t wch)
{
HDC hDC = GetDC(NULL) ;
HGDIOBJ oldfont = SelectObject(hDC, font) ;
RECT rect ;
DrawText(hDC, &wch, 1, &rect, DT_CALCRECT|DT_NOPREFIX) ;
SelectObject(hDC, oldfont) ;
return rect.right - rect.left ;
}
을
CreateFont(fontsize, 0, 0, 0, FW_NORMAL, 0, 0, 0,
DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
DEFAULT_PITCH, "Arial");
간격없이 한 문자의 경계 상자 너비 만 필요합니다. 그 기능은 HFONT가 아닌 HDC가 필요합니다. 그 이유는 무엇입니까? – sashoalm
장치 컨텍스트로 글꼴을 선택한 다음 텍스트를 측정하도록 선택한 함수를 호출해야합니다. 이유는 텍스트를 표시 할 특정 장치에 따라 답이 달라지기 때문입니다. 디스플레이 장치의 해상도 및 기능과 같은 것들이 대답에 영향을 미칠 수 있습니다. 화면의 10 점 Arial "X"는 화면이나 프린터의 크기와 약간 다를 수 있습니다. –