[VC++] SystemParametersInfo로 SPI_GETNONCLIENTMETRICS 오류시 방법(VS2008 이상)
잘 돌아가던 함수가 안돌아가는 현상~ ㅡ,.ㅡ
출처 http://blog.hanafos.com/blogView.asp?blogerid=yeamaec&cateNo=73026&serialNo=699
SystemParametersInfo로 SPI_GETNONCLIENTMETRICS 값 얻어올때 실패 나는 오류 해결방법(VS2008이상 버전)
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, ...) problem
// Initially use the system message font for the GridCtrl font
NONCLIENTMETRICS ncm;
memset(&ncm,0,sizeof(NONCLIENTMETRICS));
ncm.cbSize = sizeof(NONCLIENTMETRICS);
#if (WINVER >= 0x0600)
ncm.cbSize -= 4; //<== ADD HERE!!
#endif
BOOL f = SystemParametersInfo(SPI_GETNONCLIENTMETRICS,sizeof(NONCLIENTMETRICS), &ncm, 0);
VERIFY(f);
if(f){
memcpy (&m_LogFont, &ncm.lfMessageFont, sizeof (LOGFONT));
m_LogFont.lfHeight = -MulDiv (11, dc.GetDeviceCaps (LOGPIXELSY), 72);
m_LogFont.lfWeight = FW_NORMAL;
m_LogFont.lfOutPrecision = OUT_DEFAULT_PRECIS;
m_LogFont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
m_LogFont.lfQuality = DEFAULT_QUALITY;
m_LogFont.lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;
m_LogFont.lfCharSet = ANSI_CHARSET;
_tcscpy (m_LogFont.lfFaceName, _T ("Courier New"));
}