Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#15| Dragon God
Demon's Souls |#14| Flamelurker
Demon's Souls |#13| Storm King
Demon's Souls |#12| Old Monk & Old Hero

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Стивенс Ал. Весь текст 495.21 Kb

Техника программирования на турбо-С

Предыдущая страница Следующая страница
1 ... 4 5 6 7 8 9 10  11 12 13 14 15 16 17 ... 43
¦                                                               ¦
¦                                                               ¦
¦                                                               ¦
¦                                                               ¦
¦                              . ЪДДДДДДДДД¬                    ¦
¦                        .       ГДДДДДДДДДґ                    ¦
¦                 .              ¦ is the  ¦ Буфер сохранения В ¦
¦          .                     ¦         ¦                    ¦
¦         ЪДДДДДДД¬              АДДДДДДДДДЩ                    ¦
¦ ЪДДДДДДДґ B     ГДДДДДД¬             .                        ¦
¦ ¦ A     ¦    ЪДДБДДДДДДБД¬.    .                              ¦
¦ ¦   now ¦    ¦ C         ¦.              .                    ¦
¦ ¦       АДДДДґ           ¦                            .       ¦
¦ АДДДДДДДДДДДДґ           ¦           ЪДДДДДВДДДДДДДДВДД¬      ¦
¦              АДДДДДДДДДДДЩ           ¦     ¦   time ¦  ¦      ¦
¦               .                      ГДДДДДЩ        ¦  ¦      ¦
¦                      .               ГДДДДДДДДДДДДДДЩ  ¦      ¦
¦                                 .    АДДДДДДДДДДДДДДДДДЩ      ¦
¦                                       Буфер сохранения С      ¦
¦                                                               ¦
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

            Рисунок 6.2. Слоеные окна с текстом.


     Рисунок 6.3. показывает, что происходит при уничтожении окна
В.    Часть   окна  А  из  его  буфера   сохранения  поступает  в
видеопамять,   и   слово   "is"   может  теперь   быть  прочитано
пользователем.  Однако, поскольку часть окна В была покрыта окном
С,   то  часть  буфера  сохранения  окна  В  копируется  в  буфер
сохранения окна С, следовательно,  буфер сохранения окна С теперь
содержит слова "the time".

ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД¬
¦                                                               ¦
¦                                                               ¦
¦                                                               ¦
¦                                                               ¦
¦ ЪДДДДДДДДДДДДДДДДДДДДДД¬                                      ¦
¦ ¦  A         ЪДДДДДДДДДБДДДДДД¬ .                             ¦
¦ ¦            ¦  C             ¦        .                      ¦
¦ ¦    now is  ¦                ¦                 .             ¦
¦ ¦            ¦                ¦                          .    ¦
¦ АДДДДДДДДДДДДґ                ¦      ЪДДДДДДДДДДДДДДДДДДДВДД¬ ¦
¦              АДДДДДДДДДДДДДДДДЩ      ¦  the time         ¦  ¦ ¦
¦               .                      ¦                   ¦  ¦ ¦
¦                     .                ¦                   ¦  ¦ ¦
¦                            .         ГДДДДДДДДДДДДДДДДДДДЩ  ¦ ¦
¦                                    . АДДДДДДДДДДДДДДДДДДДДДДЩ ¦
¦                                         Буфер сохранения С    ¦
¦                                                               ¦
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

          Рисунок 6.3. Уничтожение слоеного окна.


     Независимо от  использования  стековых  или  слоеных   окон,
работа  их  будет  зависеть  от требований вашей системы.  Каждый
подход имеет свои преимущества и недостатки.  Если вы  начали  со
стековых  окон  и обнаружили позже,  что вам нужны дополнительные
свойства  слоеной  оконной  архитектуры,  вы   можете   выполнить
изменение  путем  перекомпиляции  оконных функций без определения
FASTWINDOWS и перередактировать связи ваших программ.

               Оконные функции
-----------------------------------------------------------------

     Эти функции   включены  в  оконную  библиотеку.  Для  каждой
функции  описаны  ее  назначение  и  способ   применения.   Далее
приводятся примеры использования этих функций.


        WINDOW *establish_window(x,y,h,w)
        ---------------------------------

     Эта функция создает окно,  но не отображает его. (Для показа
окна воспользуйтесь функцией display_window).  Параметры  x  и  y
являются  координатами  верхнего левого угла окна.  Эти параметры
выражаются в символьных позициях экрана,  где  координаты  левого
верхнего угла самого экрана равны (0,0). Параметры h и w являются
высотой и шириной окна в  символьных  позициях.  Эта  функция  не
вызовет  никакого  изменения  экрана.  Если  вы  создадите  окно,
позиция и  размеры  которого  не  позволяют  ему  быть  полностью
видимым,  программное обеспечение установит позицию,  при которой
оно полностью поместится на экране.  Если ширина  больше  80  или
высота  больше 25,  функция преобразует соответствующий размер до
максимально допустимого значения.

     Окно создается  с  умалчиваемыми   атрибутами.   Его   рамка
образуется  одинарными линиями,  цвет содержимого - ярко-белый на
черном фоне,  а заголовок отсутствует.  Эти атрибуты  могут  быть
изменены  соответствующими  вызовами  других  функций,  описанных
ниже.

     Окна располагаются в  обратном  порядке  по  отношению  к их
созданию. Окно, созданное самым последним, является верхним окном
экрана и будет (при выдаче)  закрывать окна, созданные ранее. Эта
иерархия зависит от порядка,  в котором окна образуются,  а не от
порядка их показа.

     Функция establish_window   возвращает указатель на структуру
WINDOW,  которая  определена во включаемом  файле twindow.h. Этот
указатель используется  при последующих  вызовах  оконных функций
для идентификации окна,  к которому относится  вызов. Передавайте
указатель NULL  другим  оконным функциям,  если хотите работать с
окном, образованным последним.



          void set_border(WINDOW *wnd, int btype)
          ---------------------------------------

     Эта функция устанавливает тип оконной  рамки.  Целочисленный
параметр btype должен принимать одно из следующих значений:

.  0 - одинарные линии (по умолчанию);
.  1 - двойные линии;
.  2 - одинарные верх и низ, двойные боковые;
.  3 - двойные верх и низ, одинарные боковые;
.  4 - специальное проталкиваемое вниз окно меню с одинарными
       линиями и t-блоком от верхнего левого до верхнего
       правого угла.

void set_colors(WINDOW *wnd, int area, int bg, int fg, int inten)
-----------------------------------------------------------------

     Эта функция устанавливает  цвета  для  окна.  Параметр  area
может принимать следующие значения:

.  ALL
.  BORDER
.  TITLE
.  ACCENT
.  NORMAL

     Этот    параметр    определяет    части   окна,   на которые
распространяется действие.  ALL соответствует всем частям. BORDER
устанавливает  цвета рамки окна,  которая занимает односимвольный
ряд  позиций вокруг  него.  TITLE  устанавливает цвета заголовка,
размещаемого на  верхней  границе  окна.  ACCENT  -  это область,
используемая   для  блоков  меню  и  другого  выделенного текста,
который  появляется  в  качестве  временно  подсвечиваемых частей
области NORMAL,  где отображается весь текст.  Целые  числа bg  и
fg   задают   цвета для фона  и  переднего плана различных частей
окна. Допускаются следующие цвета:

.  RED      - алый;
.  GREEN    - зеленый;
.  BLUE     - голубой;
.  WHITE    - белый;
.  YELLOW   - желтый;
.  AQUA     - аквамариновый;
.  MAGENTA  - красный;
.  BLACK    - черный.

     Целое число    inten   определяет   интенсивность   символов
переднего плана и может принимать два значения:

.  BRIGHT   - яркая
.  DIM      - обычная

     Все значения  определены в исходном файле twindow.h, который
рассматривается позже в этой главе.


           void set_title(WINDOW *wnd, char *title)
           ----------------------------------------

     Эта функция    устанавливает    значение   заголовка   окна.
Передаваемая вами  строка  должна  сохраняться  в  течение  всего
существования окна, поэтому используйте литеральную константу или
внешний массив символов.



           void set_intensity(WINDOW *wnd, int inten)
           ------------------------------------------

     Эта функция устанавливает интенсивность фона для всех частей
окна. Значениями inten могут быть BRIGHT или DIM.


           void display_window(WINDOW *wnd)
           --------------------------------

     Эта функция  отображает  окно,  которое  было ранее создано.
Чтобы избежать  неудачного  отображения,  вызывайте  эту  функцию
после установки всех атрибутов и,  если возможно, после того, как
окно заполнено текстом, который оно должно выдавать.



            void delete_window(WINDOW *wnd)
            -------------------------------

     Эта  функция  уничтожает  созданное  ранее  окно.  Если окно
является  видимым  (выдано  с  помощью  display_window),  то  оно
очищается, и экран восстанавливается к его предыдущему образу.



            void clear_window(WINDOW *wnd)
            ------------------------------

     Эта функция заполняет текстовую область окна пробелами.



             void hide_window(WINDOW *wnd)
             -----------------------------

     Эта функция очищает выданное окно,  восстанавливая на экране
его предыдущее содержимое.  Окно остается  существующим  и  может
модифицироваться любым способом. Последующий вызов display_window
восстановит  его  на  экране   в   соответствующем   расположении
относительно других окон.



              void wcursor(WINDOW *wnd, int x, int y)
              ---------------------------------------

     Каждое окно  обладает  логической  позицией курсора, которая
изменяется от 0,0  (верхний левый угол текстовой области окна) до
граничных размеров окна. Эта функция переставляет курсор в  окне.

     Функции wputehar и wprintf выдают текст относительно  данной
позиции курсора. Они изменяют позицию  курсора точно  также,  как
это происходило бы,  если бы управление курсором осуществлялось с
помощью   клавиатуры   дисплея.    Символ   новой   строки   (\n)
устанавливает   курсор  в  нулевой   столбец   следующей  строки,
перемещая  текст в  окне  вверх на  одну строку,  если курсор уже
находится в нижней строке окна.  Символ табуляции (\t) перемещает
курсор   к   следующей   позиции  табуляции  в  окне.   Табуляции
располагаются с интервалом в четыре символа.


               void wprintf(WINDOW *wnd, char *fmt, ...)
               -----------------------------------------

     Эта  функция  является  оконной  версией стандартной функции
printf языка Си.  Она использует стандартную  функцию sprintf для
построения   строки,    выдаваемой   в   окно.   Убедитесь,   что
результирующая строка не длиннее 100 символов, или измените длину
в массиве dlin функции wprintf в исходном файле twindow.c.


                void wputchar(WINDOW *wnd, int ch)
                ----------------------------------

     Эта функция является оконной версией putchar. Она записывает
символ из ch  в окно в  текущую позицию курсора.  Курсор при этом
продвигается дальше.  Если символ является  символом новой строки
(\n),  курсор переставляется в нулевую  позицию следующей строки.
Если  символ  является  табуляцией  (\t),  курсор  продвигается к
следующей  позиции  табуляции  окна.  Оконные  позиции  табуляции
располагаются в каждой четвертой позиции окна.



                 void reverse_video(WINDOW *wnd)
                 -------------------------------

     После обращения к этой функции все вызовы wprintf и wputchar
будут при отображении использовать цвета ACCENT вместо NORMAL.



                  void normal_video(WINDOW *wnd)
                  ------------------------------

     После обращения к этой функции все вызовы wprintf и wputchar
будут при отображении  использовать  цвета  NORMAL.  Эта  функция
используется  для возврата к нормальному отображению после вызова
Предыдущая страница Следующая страница
1 ... 4 5 6 7 8 9 10  11 12 13 14 15 16 17 ... 43
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (1)

Реклама