원본 링크: http://p7kell.wikidot.com/mfc-how-to-change-point-fontsize-to-logfont-size
계산 공식에 대해서는 원본 글 작성하신 분이 설명을 잘 해놓으셨군요.
다른 참고 내용도 많던데, 방문하셔서 보세요.
// mfc 에서 폰트가 너무 적게 나오는 문제,
// 전에 이와 같은 처리를 했던 것 같은데, 기억이 안남 --;;
// 위 내용을 참고해서 대략 다음과 같은 형태로 다이얼로그 내에서 사용하면 됨.
class CFontMaker
{
public:
CFontMaker()
{
int nFontHeight = 8;
HDC hDC = ::GetDC( this->GetSafeHwnd() );
nFontHeight = -MulDiv( nFontHeight, GetDeviceCaps( hDC, LOGPIXELSY ), 72 );
::ReleaseDC(this->GetSafeHwnd(), hDC);
m_pfont_default = new CFont();
m_pfont_default->CreateFont(
-nFontHeight, // nHeight
0, // nWidth
0, // nEscapement
0, // nOrientation
FW_NORMAL, // nWeight
FALSE, // bItalic
FALSE, // bUnderline
FALSE, // cStrikeOut
DEFAULT_CHARSET, // nCharSet
OUT_DEFAULT_PRECIS, // nOutPrecision
CLIP_DEFAULT_PRECIS, // nClipPrecision
DEFAULT_QUALITY, // nQuality
DEFAULT_PITCH | FF_DONTCARE, // nPitchAndFamily
_T("Tahoma") // lpszFacename
);
}
~CFontMaker()
{
if( NULL != m_pfont_default )
{
m_pfont_default->DeleteObject();
delete m_pfont_default;
m_pfont_default = NULL;
}
}
void OnInitDialog()
{
SetFont(m_pfont_default);
}
public:
CFont* m_pfont_default = NULL;
};
계산 공식에 대해서는 원본 글 작성하신 분이 설명을 잘 해놓으셨군요.
다른 참고 내용도 많던데, 방문하셔서 보세요.
// mfc 에서 폰트가 너무 적게 나오는 문제,
// 전에 이와 같은 처리를 했던 것 같은데, 기억이 안남 --;;
// 위 내용을 참고해서 대략 다음과 같은 형태로 다이얼로그 내에서 사용하면 됨.
class CFontMaker
{
public:
CFontMaker()
{
int nFontHeight = 8;
HDC hDC = ::GetDC( this->GetSafeHwnd() );
nFontHeight = -MulDiv( nFontHeight, GetDeviceCaps( hDC, LOGPIXELSY ), 72 );
::ReleaseDC(this->GetSafeHwnd(), hDC);
m_pfont_default = new CFont();
m_pfont_default->CreateFont(
-nFontHeight, // nHeight
0, // nWidth
0, // nEscapement
0, // nOrientation
FW_NORMAL, // nWeight
FALSE, // bItalic
FALSE, // bUnderline
FALSE, // cStrikeOut
DEFAULT_CHARSET, // nCharSet
OUT_DEFAULT_PRECIS, // nOutPrecision
CLIP_DEFAULT_PRECIS, // nClipPrecision
DEFAULT_QUALITY, // nQuality
DEFAULT_PITCH | FF_DONTCARE, // nPitchAndFamily
_T("Tahoma") // lpszFacename
);
}
~CFontMaker()
{
if( NULL != m_pfont_default )
{
m_pfont_default->DeleteObject();
delete m_pfont_default;
m_pfont_default = NULL;
}
}
void OnInitDialog()
{
SetFont(m_pfont_default);
}
public:
CFont* m_pfont_default = NULL;
};
댓글
댓글 쓰기