Завершаем работу приложения case CM_FILEEXIT:
case CM_HELPABOUT: { MessageBox(hwnd, "Font Viewer, v.1.0\n" "(C) Frolov A.V., 1994", "About FONTVIEW", MB_OK | MB_ICONINFORMATION); return 0; }
// Завершаем работу приложения case CM_FILEEXIT: { DestroyWindow(hwnd); return 0; }
default: return 0; } }
case WM_DESTROY: { PostQuitMessage(0); return 0; }
default: break; } return DefWindowProc(hwnd, msg, wParam, lParam); }
// ===================================== // Функция GetFont // =====================================
BOOL GetFont(HWND hWnd, LOGFONT *lf, CHOOSEFONT *cf) { LPSTR szFontStyle[LF_FACESIZE];
// Записываем нулевые значения во все поля // структуры, которая будет использована для // выбора шрифта memset(cf, 0, sizeof(CHOOSEFONT));
// Размер структуры cf->lStructSize = sizeof(CHOOSEFONT);
// Идентификатор окна cf->hwndOwner = hWnd;
// Указатель на структуру LOGFONT cf->lpLogFont = lf;
// Флаги, определяющие внешний вид диалоговой панели cf->Flags = CF_SCREENFONTS | CF_USESTYLE | CF_EFFECTS;
// Дополнительные данные cf->lCustData = 0L;
// Цвет текста cf->rgbColors = RGB(0,0,0);
// Адрес функции фильтра cf->lpfnHook = (FARPROC)NULL;
// Адрес шаблона диалоговой панели cf->lpTemplateName = (LPSTR)NULL;
// Идентификатор копии приложения cf->hInstance = hInst;
// Стиль шрифта cf->lpszStyle = (LPSTR)szFontStyle;
// Тип шрифта cf->nFontType = SCREEN_FONTTYPE;
// Ограничения на минимальный и максимальный // размер шрифта cf->nSizeMin = 0; cf->nSizeMax = 0;
// Вызываем функцию выбора шрифта return ChooseFont(cf); }
Текстовая строка, которая выводится на экран, находится в глобальном массиве szChars. В переменной nOrientation находится текущее значение угла поворота, которое задается при помощи меню "Orientation".
Обработчик сообщения WM_PAINT пользуется структурой lf типа LOGFONT, подготовленной при выборе шрифта.
Перед созданием шрифта обработчик устанавливает нужный угол наклона строки:
lf.lfOrientation = lf.lfEscapement = nOrientation;
Содержание Назад Вперед