Эта статья описывает типовой код, который отображает диалоговое окно
Шрифт (Font), так что пользователь может выбрать атрибуты шрифта. Типовой код сначала инициализирует структуру CHOOSEFONT, а затем вызывает функцию ChooseFont, которая отображает на экране диалоговое окно.Этот пример устанавливает флажок CF_SCREENFONTS, чтобы определить какое диалоговое окно будет показывать только экранные шрифты. Он устанавливает флажок CF_EFFECTS, чтобы показать органы управления, которые позволяют пользователю выбирать параметры зачёркивания, подчёркивания и цвета шрифта.
Если
ChooseFont, возвращает значение ИСТИНА (TRUE), то это означает, что пользователь щёлкнул по кнопке OK, и что структура, указанная членом lpLogFont структуры CHOOSEFONT содержит информацию, которая описывает шрифт и его атрибуты, выбранные пользователем. Член rgbColors содержит выбранный цвет текста. Типовой код использует эту информацию, чтобы установить шрифт и цвет текста для контекста устройства, связанного с окном владельца.Пример
HWND hwnd; // окно-владелец HDC hdc; // дисплейный контекст устройства // окна владельца CHOOSEFONT cf; // структура станд. блока диалога static LOGFONT lf; // структура логического шрифта static DWORD rgbCurrent; // текущий цвет текста HFONT hfont, hfontPrev; DWORD rgbPrev; // Инициализация структуры CHOOSEFONT ZeroMemory(&cf, sizeof(CHOOSEFONT)); cf.lStructSize = sizeof (CHOOSEFONT); cf.hwndOwner = hwnd; cf.lpLogFont = &lf; cf.rgbColors = rgbCurrent; cf.Flags = CF_SCREENFONTS | CF_EFFECTS; if (ChooseFont(&cf)==TRUE) { hfont = CreateFontIndirect(cf.lpLogFont); hfontPrev = SelectObject(hdc, hfont); rgbCurrent= cf.rgbColors; rgbPrev = SetTextColor(hdc, rgbCurrent); . . . } |