void RegistryReadFont(CHARFORMAT* cf) { cf->cbSize = sizeof(CHARFORMAT); cf->dwMask = CFM_BOLD | CFM_FACE | CFM_ITALIC | CFM_SIZE; cf->dwEffects = 0; RegReadStr("FontName", "Courier New", cf->szFaceName); cf->yHeight = RegReadInt("FontSize", PointToTwip(10)); if (RegReadInt("FontWeight", 0)) cf->dwEffects |= CFE_BOLD; if (RegReadInt("FontItalic", 0)) cf->dwEffects |= CFE_ITALIC; }
VOID CalculateFont(HWND hDlg, CHARFORMAT* cf) { BOOL ValidSize; INT NewSize; INT CurSel; HWND hFace = GetDlgItem(hDlg, IDC_LstFontFace); RegistryReadFont(cf); CurSel = (INT) SendMessage(hFace, CB_GETCURSEL, 0, 0); if (CurSel == CB_ERR) GetWindowText(hFace, cf->szFaceName, 32); else SendMessage(hFace, CB_GETLBTEXT, CurSel, (LPARAM) cf->szFaceName); cf->dwEffects = 0; cf->dwEffects |= (GetDlgItemBool(hDlg, IDC_ChkFontBold) ? CFE_BOLD : 0); cf->dwEffects |= (GetDlgItemBool(hDlg, IDC_ChkFontItalic) ? CFE_ITALIC : 0); // check the size NewSize = GetDlgItemInt(hDlg, IDC_TxtFontSize, &ValidSize, FALSE); if (ValidSize) cf->yHeight = PointToTwip(NewSize); }