有時候需要修改某一個按鈕上的字體,可用如下方法:
//令控件字體變大變粗
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));//最後將創建的邏輯字體刪除掉