Использование стандартных диалогов
Страница 2. Диалог выбора шрифта


Диалог выбора шрифта

 

Чтобы показать диалого выборя Шрифта, который позволяет пользователю настроить определённые параметры шрифта, сначала необходимо инициализировать структуру CHOOSEFONT, а затем вызвать функцию ChooseFont.

Ниже приведён пример, в котором устанавливается флаг CF_SCREENFONTS, чтобы диалоговое окошко выбора шрифта показывало только экранные шрифты. Чтобы на диалоге были видны элементы управления, позволяющие изменять зачёркнутость, подчёркивание и цвет, необходимо установить флаг CF_EFFECTS.

Если пользователь нажмёт на диалоге кнопку OK, то функция ChooseFont вернёт TRUE, а переменная lpLogFont структуры CHOOSEFONT, будет указывать на струткуру описывающую параметры шрифта, выбранного пользователем. Переменная rgbColors содержит выбранный цвет текста. Далее эта информация используется для того, чтобы задать шрифт и цвет текста для контекста устройства, связанного с родительским окном.

Пример:

HWND hwnd; // окно - владелец
HDC hdc; // контекст устройства окна владельца

CHOOSEFONT cf; // сама струткура
static LOGFONT lf; // структура, хранящая параметры шрифта
static DWORD rgbCurrent; // текущий цвет текста
HFONT hfont, hfontPrev;
DWORD rgbPrev;

// Заполняем CHOOSEFONT
ZeroMemory(&cf, sizeof(cf));
cf.lStructSize = sizeof (cf);
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);
.
.
.
}

 
« Предыдущая статья   Следующая статья »