Программирование для IBM OS2




Приложение SCROLL


В приложении SCROLL мы создаем в главном окне приложения две полосы просмотра - вертикальную и горизонтальную, указывая соответствующие флаги при вызове функции WinCreateStdWindow. Эти полосы используются для просмотра метрик шрифта с названием Courier (рис. 8.5).

Рис. 8.5. Просмотра метрик шрифта Courier в окне приложения SCROLL

В одной из следующих наших книг, посвященной программированию для операционной системы IBM OS/2 Warp, мы изучим эти метрики. А пока вы можете убедиться, что кроме высоты и ширины символов для описания шрифта используется дополнительно несколько десятков других параметров.

Исходные тексты приложения SCROLL приведены в листинге 8.9.

Листинг 8.9. Файл scroll\scroll.c

// ================================================= // Определения // =================================================

#define INCL_WIN #define INCL_GPI #define INCL_WINDIALOGS #include <os2.h> #include <string.h> #include <stdio.h> #include "scroll.h"

#define YSIZE 50 #define XSIZE 50

// Прототип функции окна приложения MRESULT EXPENTRY WndProc(HWND, ULONG, MPARAM, MPARAM);

// ================================================= // Глобальные переменные // =================================================

HAB hab; HWND hWndFrame; HWND hWndClient;

CHAR szAppTitle[] = "Scroll Demo";

// Размеры окна Client Window SHORT cxClient; SHORT cyClient;

// Размеры символов выбранного шрифта SHORT cxChar, cyChar, cyDesc;

// Структура для записи метрик шрифта FONTMETRICS fm;

// Идентификаторы полос просмотра HWND hwndXScroll; HWND hwndYScroll;

// Текущие координаты движков INT nXScrollPos; INT nYScrollPos;

// Текущие координаты для вывода текста LONG cxCurrentPosition; LONG cyCurrentPosition;

// ================================================= // Главная функция приложения main // =================================================

int main() { HMQ hmq; QMSG qmsg; BOOL fRc; HPS hps;

// Флаги для создания окна Frame Window // Добавляем флаги FCF_VERTSCROLL и FCF_HORZSCROLL , // в результате чего в главном окне будут созданы // вертикальная и горизонтальная полосы просмотра ULONG flFrameFlags = FCF_SYSMENU | FCF_TITLEBAR | FCF_MINMAX | FCF_SIZEBORDER | FCF_SHELLPOSITION | FCF_TASKLIST | FCF_ICON | FCF_VERTSCROLL | FCF_HORZSCROLL ;




Содержание  Назад  Вперед