Эта статья описывает типовой код, который отображает диалоговое окно
Шрифт (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);
.
.
.
}
|