需求: 1、显示的文字字体和桌面图标一样 2、显示的文字字体和系统右键菜单的一样 说白了就是要取到系统字体设置中的对应字体: 实现: 找来找去,结果答案一直在眼皮底下。 // 取系统桌面图标字体 CFont m_fontIcon; LOGFONT logFont; ZeroMemory ((PVOID) &logFont,sizeof (LOGFONT)); ICONMETRICS im; im.cbSize = sizeof (ICONMETRICS); SystemParametersInfo (SPI_GETICONMETRICS,im.cbSize,&im,0); logFont = im.lfFont; m_fontIcon.CreateFontIndirect (&logFont); // 取系统右键菜单的字体 CFont m_fontMenu; LOGFONT logFont; ZeroMemory ((PVOID) &logFont,sizeof (LOGFONT)); NONCLIENTMETRICS nm; nm.cbSize = sizeof (NONCLIENTMETRICS); SystemParametersInfo (SPI_GETNONCLIENTMETRICS,nm.cbSize,&nm,0); logFont = nm.lfMenuFont; m_fontMenu.CreateFontIndirect (&logFont); ICONMETRICS im; im.cbSize = sizeof (ICONMETRICS); SystemParametersInfo (SPI_GETICONMETRICS,im.cbSize,&im,0); logFont = im.lfFont; --The End--