有时候需要修改某一个按钮上的字体,可用如下方法:
//令控件字体变大变粗
HWND m_hName=::GetDlgItem(m_hWnd,IDC_PRTSTP_SET);//通过控件ID获取控件句柄
HFONT hFont = (HFONT)::SendMessage( m_hName, WM_GETFONT, 0, 0 ); //得到设备字体
if(hFont==0)
hFont=(HFONT)::GetStockObject(SYSTEM_FONT);
LOGFONT dtLogFont;//声明一个逻辑字体,因为创建太痛苦了,15个字段都要设置,要人的命
::GetObject( hFont, sizeof(dtLogFont), &dtLogFont );//填充逻辑字体结构,这样大大减少了代码
dtLogFont.lfWidth = 16;//下面按自己的需求修改对应字段
dtLogFont.lfHeight = 52;
//dtLogFont.lfItalic=1;
dtLogFont.lfWeight = FW_BLACK;
strcpy_s(dtLogFont.lfFaceName, "calibri");
hFont = ::CreateFontIndirect(&dtLogFont); //创建一个逻辑字体
::SendMessage( m_hName, WM_SETFONT, (WPARAM)hFont, MAKELONG(TRUE,0) );//设置字体
DeleteObject(GetStockObject(DEFAULT_GUI_FONT));//最后将创建的逻辑字体删除掉