ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Windows
         

     

    Інформатика
    ЗМІСТ
    ВСТУП
    ІСТОРІЯ СТВОРЕННЯ MICROSOFT WINDOWS
    ОГЛЯД ОСНОВНИХ ПРИНЦИПІВ ОРГАНІЗАЦІЇ інтерфейсу В WINDOWS
    Апаратно-незалежний графічний інтерфейс (GDI
    Стандартний віконно-орієнтований інтерфейс
    Вікно
    Піктограми
    Меню
    Смуги прокрутки
    Курсори
    Каретка
    Блоки діалогу
    Механізм повідомлень
    Інтерфейс графічних пристроїв (GDI
    Пристрої GDI
    Логічні об'єкти графіки GDI
    Контекст пристрою
    Основні атрибути контексту пристрою
    Перемальовування області і зображення пікселів
    Малювання ліній
    Малювання зафарбованих фігур
    Виведення тексту
    ЕЛЕМЕНТИ віконного інтерфейсу ............................< br /> Вікна Windows ............................................. 20
    Головне вікно програми ...............................< br /> Реєстрація класу вікна ...............................< br /> Функція вікна програми ...............................< br /> Створення вікна .........................................< br /> Показ і оновлення вікна .........................< br /> Типи вікна .............................................< br/> Побудова меню ..........................................
    Визначення меню ......................................
    Об'єкти діалогу ..........................................
    Кнопки та перемикачі ................................< br /> Статичні об'єкти діалогу ...........................< br /> Редактор ..............................................
    Вікно список ...........................................
    Комбінований список ................................
    Обмін даними між додатками ............................
    Засоби обміну даними між додатками ...............< br /> Динамічний обмін між додатками ....................< br /> Основні терміни ......................................
    Кілька слів про DDEML ................................
    Взаємозв'язок між клієнтом і сервером .................
    Транзакції, функція зворотного виклику DDE ..............
    Допоміжні імена й інші назви ...............
    Системний режим .......................................
    Ініціалізація .........................................
    Основне призначення і робота функції зворотного виклику.
    Обробка рядків .......................................
    Діалог між додатками .............................
    Простий Діалог ........................................
    Складний діалог ........................................
    Обмін даними між додатками ......................
    Класи транзакцій .....................................
    Визначення помилок ....................................
    Список літератури ........................................
    ВСТУП
    Для ефективної роботи системи та її великого
    купівельного попиту недостатньо тільки того, щоб апаратура та програми забезпечували правильні результати - не менш важливим фактором є зручність роботи користувача. Тому в даний час ні один програмний продукт, позбавлений більш менш зручного інтерфейсу взаємодії користувача з комп'ютером і програм між собою, не може розраховувати на успіх.
    У світі розроблена величезна кількість різних систем підтримки створення призначеного для користувача інтерфейсу. Найбільш прогресивним, на нашу думку, є обьектнооріетірованная система Turbo Vision фірми Borland і операційне середовище Windows фірми Microsoft. Розглядом можливостей системи Turbo Vision займалася в своїй роботі Фомичева Т.Л., а в представленій роботі проводиться вивчення і огляд засобів, що входять до складу операційного середовища Windows.
    Той хто написав хоча б одну комерційну програму, то знає, скільки часу і сил витрачається на організацію меню і вироблення єдиного, несуперечливого, інтуїтивно ясного і зручного для користувача інтерфейсу. Інтерфейс, розроблений корпорацією Microsoft є одним з кращих і став своєрідним еталоном для наслідування.
    У Microsoft Windows програмісту доступна вся міць цього інтерфейсу - він позбавляється від необхідності організовувати меню, роботу з клавіатурою і мишкою (достатньо скористатися стандартними засобами). Інтерфейс з користувачем Windows є повним і цілісним. У ньому вирішені не тільки проблеми організації меню, але і все спілкування з користувачем організовано стандартними засобами.
    ІСТОРІЯ СТВОРЕННЯ MICROSOFT WINDOWS
    Корпорація Microsoft оголосила про початок розробки графічної операційної оболонки Windows 10 листопада 1983, хоча ще в кінці 1982 року програмісти Microsoft почали створювати універсальний набір графічних процедур, названий графічний інтерфейс з Комп'ютером (CGI).
    Спочатку передбачалося, що CGI як набір процедур буде поставлятися з компіляторами Microsoft, дозволяючи розробникам програм виводити графіку на самі різні типи принтерів. Програмісти могли б використовувати у своїх програмах функції CGI, які потім переводилися б у команди потрібного типу принтера.
    Незабаром після початку робіт над CGI корпорація Microsoft розгорнула роботи зі створення графічної операційного середовища для комп'ютерів з MS-DOS. Створення такої оболонки було інспіровано несподіваним інтересом користувачів IBM сумісних комп'ютерів до оголошення корпорацією VISICorp про початок робіт над багатовіконний операціоннной оболонкою VisiOn. Таким чином, стара добра конкуренція зробила свою справу - у лютому 1983 року стало зрозуміло, що Microsoft створить свою власну оболонку Windows.
    Хоча багато особливостей і властивості Windows кардинально змінилися в подальшому, деякі положення були зрозумілі з самого початку. Windows повинна бути багатозадачною, тобто повинна дозволяти запускати декілька програм одночасно. Windows повинна працювати з усіма типами дисплеїв і принтерів. І оскільки користувачеві дуже важко відмовитися від звичних програмних засобів, Windows повинна дозволяти запускати програми MS-DOS. Остання мета виявилася настільки важкою в реалізації, що затримала весь проект на багато місяців.
    Завдання виявилося не з простих. Типовою машиною був комп'ютер з порівняно повільним процесором 8088 і оперативною пам'яттю 64Kb. Якщо врахувати, що MS-DOS накладає принципове обмеження за оперативною паміті в 640Kb і, на відміну від комп'ютерів Macintosh, не забезпечує программноаппаратную підтримку графіки, розробка багатозадачного графічної оболонки операційної загрожувала вирости в нездійсненне завдання. Проте Microsoft розгорнула роботи над Windows повним ходом. До осені 1983 розробкою Windows було зайнято вже 15 висококваліфікованих програмістів, залучених до проекту з різних філій Microsoft. Багато фірм відрядили своїх фахівців для одночасної участі в проекті.
    Коли роботи над CGI перейшли у фазу тестування, це не був уже самостійний продукт. CGI був переменован в GDI (the Graphics Device Interface - "Інтерфейс із графічними Пристроями") і став частиною Windows, включивши в себе процедури роботи не тільки з принтером, але і з дисплеєм. Для цього в CGI були додані функції, що забезпечують підтримку друкарською-видавничих особливостей у роботі з текстами та процедури маніпулювання графічними об'єктами.
    При презентації першого варіанту Windows було обіцяно, що комерційна продаж почнеться в травні 1984. Весною 1984 року дата початку продажів була відсунута на листопад. У листопаді ця дата була перенесена на червень 1985 року. Однак коробки з Windows з'явилися в магазинах тільки 18 листопада 1985.
    Декілька факторів призвели до настільки значним
    затримок. Проте головну роль зіграло небажання Microsoft
    виходити на ринок з сирим продуктом. У лютому 1984 року глава
    корпорації Microsoft Білл Гейтс (Bill Gates) провів семінар,
    на якому представив Software Development Kit (SDK), пакет
    для написання додатків під Windows, продемонструвавши на ньому
    можливості, які пропонує програмісту під Windows.
    SDK справив хороше враження і до червня 1984 було продано майже 100 копій. Почавши працювати під Windows, програмісти надсилали в Microsoft свої зауваження, змушуючи розробників ще і ще відшліфовувати Windows, що полегшує
    написання програм. Був замінений мова, якою створювався
    Windows (спочатку це був Microsoft Pascal, потім Lattice C і,
    нарешті, Microsoft C Compiler). Орієнтація на Microsoft C
    Compiler також була однією з причин затримки робіт над
    проектом, тому, що сам компілятор не був готовим продуктом
    і постійно удосконалювався.
    Однак, незважаючи на те, що в листопаді 1985 року Windows все ж таки вийшов на прилавки магазинів, протягом двох років (з 1985 по 1987 рік) Windows не надав великого впливу на ринок програмного забезпечення і не став альтернативою MS-DOS, як сподівався Microsoft . Велика кількість користувачів (51%) купували Windows не заради створених для нього додатків (яких було дуже мало в порівнянні зі звичайними програмами під MS-DOS) або графічного інтерфейсу, а для того, щоб мати можливість швидко переключатися з одного DOS програми на інше.
    З 1987 року ситуація почала змінюватися. Почали з'являтися потужні і відомі програми, переписані для роботи під Windows. Зараз можна назвати такі продукти як Page Maker під Windows, дуже потужна електронна таблиця Excel, Windows Graph, Word for Windows і багато інших.
    З виходом третьої версії Windows стало ясно, що Windows не просто завоює міцне місце на ринку програмного забезпечення, але стане основою стратегічної політики Microsoft у створенні програмного забезпечення. Windows 3.0 викликав справжній фурор, пропонуючи абсолютно приголомшливу графіку і нові, несподівані можливості.
    У липні 1990 року "PC Magazine" помістив статтю про нову версію Windows 3.0, в якій наголошувалося, що Microsoft Windows перетворився на блискучу багатозадачного операційну систему, якої ще намагається стати OS/2. Як і всі програмні продукти Microsoft, перші версії Windows не виправдовували сподівань не дивлячись на те, що виходили із значними затримками, але в своєму останньому варіанті залишають конкурентів далеко позаду.
    ОГЛЯД ОСНОВНИХ ПРИНЦИПІВ ОРГАНІЗАЦІЇ
    Інтерфейс в WINDOWS
    Для розуміння принципів організації інтерфейсу Windows необхідно мати уявлення про основні його елементи, на яких побудовано виконання програм та взаємодія програми і користувача. Весь інтерфейс Windows грунтується на трьох китах:
    - Апаратно-незалежна графіка;
    - Стандартний віконно-орієнтований інтерфейс;
    - Взаємодія додатків із системою Windows і між собою за допомогою передачі повідомлень;
    Дані елементи системи Windows найтіснішим чином пов'язані між собою, разом утворюють цілісну систему і окремий розгляд кожного з них у відриві від інших не має сенсу. Перераховані вище елементи системи Windows нижче будуть розглянуті більш детально, а поки коротко зупинимося на тому, що вони з себе представляють.
    Апаратно-незалежний графічний інтерфейс (GDI)
    Будь-яка програма для Windows може виконувати висновок на будь-який пристрій за допомогою одного і того ж набору викликаються підпрограм. Причому для Windows додатку всі пристрої виглядають однаково і програмісту не потрібно забодітся про управління конкретним пристроєм на низькому рівні.
    Кожен пристрій має свій драйвер, що відповідає за фактичне виконання графічного виводу. Для пристроїв, яким при цьому необхідна допомога, GDI забезпечує програмну емуляцію, що використовує для реалізації функцій високого рівня засоби низького рівня цього пристрою.
    При поданні інформації на екран дисплея GDI забезпечує віконно-орієнтовану графіком. Це означає, що кожне вікно розглядається як окрема галузь промальовування. Коли програма виконує у вікні промальовування, то координати за умовчанням встановлюються так, що точка початку координат (0,0) перебуває у верхньому лівому куті клієнтних області вікна.
    Крім того, малюнки автоматично відсікаються по межах вікна. Подібні механізм захисту працює двосторонньо, тобто ні ви не можете намалювати що-небудь поза свого вікна, ні інша програма намалювати щось у вашому вікні.
    Стандартний віконно-орієнтований інтерфейс
    Система Windows має вбудовану підтримку ряду об'єктів для користувача інтерфейсу: вікон, піктограм, меню, блоків діалогу тощо
    Вікно
    Вікно являє собою найважливішу частину
    призначеного для користувача інтерфейсу. Вона відіграє ключову роль.
    Для програміста вікно служить для організації інших об'єктів для користувача інтерфейсу і направляє проходження повідомлень у системі, вікно забезпечує область екрану для зв'язку з користувачем.
    Вікно - це самостійно існуючий об'єкт, параметри якого описані в спеціальних структурах даних, а поведінка функцією вікна.
    Кожне вікно належить класу вікон. Клас вікон - це шаблон, за яким реалізуються реальні вікна. З кожним класом вікон і, отже, з кожним вікном пов'язаний спеціальний тип підпрограми, що називається процедурою вікна. Завдання процедури вікна полягає в обробці надходять вікна повідомлень.
    Кожна програма розташовується в своєму власному вікні і має принаймні хоча б одне вікно - головне вікно програми. З додатку Windows безпосередньо не можна здійснити виведення на екран, так як екран є розділяються ресурсом, а засобом його поділу є вікна. Таким чином, перш ніж відобразити що-небудь на екрані, потрібно створити вікно, і тільки у вікні можна здійснити виведення.
    Піктограми
    Піктограма являє собою невеликий малюнок,
    який служить для користувача нагадуванням про що-небудь і
    позначають команду, програму або деякі дані.
    Меню
    Меню є список команд і функцій програми. Є п'ять типів меню:
    - Системні,
    - Горизонтальні,
    - Що випадають,
    - Вкладені,
    - Спливаючі.
    Системні меню забезпечують стандартний набір операцій, які можуть бути виконані за вікном (переміщення, зміна розмірів, закриття, перемикання на інше завдання і т.д.). Це меню обов'язково знаходиться в головному меню кожної програми.
    Горизонтальне меню фіксовано прив'язується до верху вікна.
    Що випадають меню з'являються при виборі відповідних пунктів горизонтального меню.
    Вкладені меню з'являються при виборі відповідних пунктів випадають меню. Прикладна програма може вкладати
    одне меню в другое до будь-якого рівня вкладеності.
    Спливаючі меню можуть розташовуватися в довільній позиції у вікні і фактично в будь-якій позиції на екрані дисплея.
    Смуги прокрутки
    Використовуються в тих випадках, коли об'єкт даних більше розмірів вікна. Смуги прокрутки бувають вертикальними і горизонтальними. Вони дозволяють користувачеві керувати відображенням великих обсягів даних і мати до них доступ.
    Існує обмеження на обсяг даних в скролінгу. Об `єм даних не може перевищувати 64 Кбайт.
    Курсори
    Курсор являє собою бітовий образ, переміщуваний по екрану у відповідь на переміщення миші або іншого координатного пристрою. Програма може змінити формукурсора, щоб відобразити деяка зміна в системі.
    Каретка
    Каретка - це невелика бітова матриця, яка є відміткою фокуса введення з клавіатури. Вікно, що управляє введенням з клавіатури може створити каретку, щоб повідомити користувачеві про цей факт.
    Інтерфейс користувача Windows підтримує тільки одну каретку на екрані.
    Блоки діалогу
    Блок діалогу - це стандартний спосіб прийому програмою вводу від користувача. Типовий приклад блоку діалогу - це блок діалогу для відкриття файлу.
    Блок діалогу являє собою вікно, що містить всередині себе окремі вікна, які або виводять деяку інформацію, або дозволяють прийняти введення від користувача. Кожен з цих вікон називається елементом управління діалогом.
    Система має шість наперед визначених класів вікон, на базі яких створюються елементи управління блоками діалогу:
    - Кнопки;
    - Комбіновані блоки;
    - Елементи керування редагуванням;
    - Блоки списків;
    - Смуги прокрутки;
    - Статичні елементи.
    Більш повний опис об'єктів інтерфейсу представлено нижче.
    Механізм повідомлень
    У системі Windows будь-який додаток будується як сукупність обробників різних подій, які відбуваються абсолютно незалежно один від одного. Кожна подія генерує, повідомлення, що передаються всіх програм, для яких воно може становити інтерес.
    Програма представляє собою 16-бітове значення без знака, якому для зручності надається символьний константа. Всі повідомлення мають єдиний формат і є єдиним засобом зв'язку програми з операційною оболонкою і з іншими додатками. Деякі повідомлення можуть у свою чергу породжувати інші повідомлення.
    При надходженні повідомлення про події подію, це повідомлення міститься в системну чергу Windows. Системна чергу в Windows одна. Після цього повідомлення з системної черги розподіляються між додатками. Для кожної програми Windows організовує і підтримує окрему чергу, куди пересилаються всі повідомлення, для цього пріложенія.Обработку черги програми здійснює сам додаток.
    Якщо повідомлення надійшло напрімер від пристроїв введення, таких як миша або клавіатура, то для визначення адресата повідомлення використовується поняття "фокус вводу". Так як користувач в кожний момент часу може працювати тільки з однією програмою. Таким чином, кажуть, що додаток, в яке потрапляють повідомлення від клавіатури в момент введення, має фокус вводу, тому всі повідомлення від пристроїв введення інформації надходять із системної черги в чергу програми, що має фокус введення в даний момент.
    Для обробки вхідних повідомлень у програмі
    організовується цикл повідомлень, який створюється при при
    створення вікна програми. Цикл повідомлень витягує повідомлення
    з черги і передає їх функції управління відповідним
    вікном програми, причому не безпосередньо а через Window. Про функції
    вікна програм піде мова пізніше.
    Всі стандартні повідомлення, визначені в системі Windows можна розділити на кілька груп:
    - Апаратні (вхідні дані від мишки і клавіатури);
    - Про організацію вікна (повідомлення, вимога дії, запит);
    - Про організацію інтерфейсу користувача (меню,
    вказівник, лінійка прокрутки, блоки діалогу, MDI);
    - Про завершення (закриття прикладної програми або системи);
    - Приватні (елементи управління блоком діалогу: редактор кнопка, блок списку, комбо-блок);
    - Повідомлення про системний ресурс (зміна кольору, шрифти, буферизація друку, режими роботи пристроїв);
    - Про спільне використання даних (буфер вирізаного зображення і динамічний обмін даними DDE);
    - Внутрішні системні (недокументовані повідомлення).
    Нижче будуть більш детально розглянуті перераховані класи повідомлень в контексті їх застосування. Особливу увагу буде приділено повідомленнями щодо взаємодії між додатками
    та спільного використання даних.
    Інтерфейс графічних пристроїв (GDI)
    У цьому розділі розглядаються питання пов'язані зі створенням графічного виводу, обговорюються різні типи графічного виводу, які підтримуються інтерфейсом графічних пристроїв (GDI).
    GDI являє собою бібліотеку графічного виводу Windows. GDI забезпечує графічний висновок на екран дисплея і на пристрої для отримання твердих копій, наприклад, принтери та плотери. GDI відповідає за створення відображення кожній лінії, букви або графічного знака, що виводиться програмою для Windows. Сама Windows використовує GDI при добірці елементів, що становлять для користувача інтерфейс, - вікон, піктограм, меню, блоків діалогу і т.д.
    Пристрої GDI
    Інтерфейс графічних пристроїв дозволяє виконувати графічний висновок на різні пристрої. Для того, щоб GDI працював з конкретним пристроєм, необхідний спеціальний елемент програмного забезпечення - драйвер пристрою, який перетворює запити графічного виводу в конкретні дії для малювання на конкретному пристрої.
    Крім цього, драйвер пристрою представляє GDI набір прапорів, які повідомляють, якими графічними можливостями володіє даний пристрій. Існує п'ять наборів таких прапорів: для кривих ліній, для прямих, багатокутників, бітових образів і текстів, які повідомляють GDI, коли можна направити пристрою безпосередньо запит, а коли такий запит треба попередньо перетворити в послідовність запитів низького рівня. Це залежить те можливостей конкретного пристрою.
    Крім фізичних пристроїв GDI підтримує логічні пристрої, або псевдоустройства. Псевдоустройства служать для зберігання зображень. На відміну то фізичних пристроїв, які виводять зображення на певній апаратній базі, псевдоустройства дозволяють "перехопити" образ зображення в оперативній пам'яті або на диску. GDI підтримує два типи псевдоустройств: бітові образи і метафайли.
    Бітові образи мають прямокутну форму і зберігають зображення у пам'яті в такому вигляді, в якому графічні образи зберігаються дисплейними адаптером, і забезпечують швидке одержання копії картинки. Бітові образи використовуються і для зберігання образів, які потрібно швидко виводити на екран, наприклад, піктограми, курсори і т.д.
    Метафайли створюються коштами записи-відтворення
    GDI. З точки зору витрачається пам'яті метафайли
    краще, ніж бітові образи, проте робота зніми
    відбувається повільніше. Зазвичай в метафайлу зберігаються великі
    зображення.
    Логічні об'єкти графіки GDI
    Одним із засобів досягнення апаратної незалежності GDI є використання логічних об'єктів графіки. Такий об'єкт описує, яким чином повинен виконуватися висновок, це високорівнева апаратно-незалежний запит. GDI підтримує наступні логічні об'єкти графіки:
    - Пір'я (для малювання ліній);
    - Кисті (для забарвлення областей);
    - Шрифти (для виведення текстів);
    - Логічні кольору (що описують кольору виведення).
    Після створення логічного об'єкта він може бути використаний у відношенні будь-якого пристрою, при цьому драйвер кожного пристрою по своєму інтерпретує логічний об'єкт способом, який відповідає можливостей пристрою.
    Контекст пристрою
    Контекст пристрою є деякий
    безліч атрибутів графічного виводу, до якого входить одне
    перо для малювання ліній, один пензель для забарвлення областей
    і один шрифт для виведення текстів, які можна змінити в
    будь-який момент. Разом взяті, атрибути графічного виводу дають
    повний контроль над тим, як виглядає і де виконується
    графічний висновок програми.
    Кожен контекст пристрою включає в себе 20 атрибутів графічного виводу, які наведені нижче (в дужках наведено значення за замовчуванням):
    - Колір фону (білий);
    - Режим фону (OPAQUE);
    - Логічний номер кисті (біла кисть);
    - Початок координат кисті (0,0);
    - Логічний номер області промальовування (вся поверхня);
    - Логічний номер кольорової палітри (палітра за умовчанням);
    - Поточне положення пера (0,0);
    - Режим графічного виводу (R2_COPYPEN);
    - Логічний номер шрифту (системний шрифт);
    - Міжсимвольний інтервал (0);
    - Режим отбраженія (MM_TEXT);
    - Логічний номер пера (чорне перо);
    - Режим зафарбовування багатокутників (альтернативний);
    - Режим розтягування (чорний по білому);
    - Вирівнювання кордонів тексту (по лівому і верхньому краях);
    - Колір тексту (чорний для тексту і кистей з монохромним
    шаблоном забарвлення);
    - Вирівнювання рядків тексту (0,0);
    - Протяжність вікна на цьому екрані (1,1);
    - Початок координат вікна на цьому екрані (0,0);
    - Протяжність вікна екрану (1,1);
    - Початок координат вікна екрану (0,0).
    Контекст пристрою пов'язує програму з конкретною поверхнею малювання. Таке поєднання є логічним, а не фізичною. Щоб уникнути конфліктів, пов'язаних зі спільним використанням пристроїв, програма отримує у контексту пристрою "пропуск" до пристрою. Робота системи пропусків залежить від типу пристрою. На пристроях одержання твердих копій це робиться шляхом буферизації введення, а на відеотехніка - шляхом виділення так званої області промальовування, поза межами якої програма малювати не може.
    Основні атрибути контексту пристрою
    Для малювання ліній самим важливим атрибутом контексту пристрою є перо, що визначає, як буде виглядати лінію: її колір, ширина і стиль (або шаблон, наприклад, суцільна лінія, пунктир і т.п.) і представляє з себе запит до пристрою на малювання лінії певного виду.
    При малюванні ліній також використовується атрибут - режим графічного виводу, в якому можна задати логічну операцію, щоб застосувати її при виведенні між новим і старим пікселями.
    Для забарвлення областей використовується атрибут кисть, що визначає як буде виглядати закрашується область і характеризується трьома характеристиками: стилем, кольором і шаблоном. Розмір кисті складає 8х8 пікселів.
    При зображенні тексту ключовим атрибутом є шрифт. Шрифт - сукупність шаблонів для виведення тексту. GDI розпізнає два види шрифтів: логічні і фізичні.
    Логічний шрифт описує текст стандартним не
    залежних від зовнішніх пристроїв способом. Логічний шрифт
    задається структурою LOGFONT. Логічний шрифт - це запит на
    на текст з певними характеристиками.
    typedef struct tagLOGFONT
    int lfHeight;// висота символу
    int lfWidth;// середня ширина
    int lfEscapement;// кут нахилу тексту
    int lfOrientation;// кут нахилу символу
    int lfWeight;// середнє число пікселей/1000
    BYTE lfItalic;// не 0, якщо курсив
    BYTE lfUnderline;// не 0, якщо підкреслено
    BYTE lfStrikeOut;// не 0, якщо викреслено
    BYTE lfCharSet;// набір символів ANSI, OEM
    BYTE lfOutPrecision;// точне відображення
    BYTE lfClipPrecision;// точність вирізки
    BYTE lfQuality;// якість друку
    BYTE lfPitchAndFamily;// прапор для стилю шрифту
    BYTE lfFaceName [LF_FACESIZE];// назва шрифту
    LOGFONT;
    Фізичний шрифт - це набір шаблонів, що залежить від пристрою. Він вибирається з опису, що міститься в логічному шрифт і може бути апаратно реалізований.
    Для завдання атрибуту контексту пристрою використовується функція SelectObject, описана в такий спосіб:
    HANDLE FAR PASCAL SelectObject (HDC, HANDLE);
    Тут перший параметр - логічний номер контексту пристрою, а другий - логічний номер значення ознаки.
    Для того, щоб отримати логічний номер необхідного значення ознаки контексту, використовується функція GetStockObject. Її прототип:
    HANDLE FAR PASCAL GetStockObject (int);
    Параметром є значення атрибуту контексту
    пристрою, звичайно для зручності що задається у вигляді набору
    символів.
    Програміст може використовувати або вже задані значення атрибутів, або створювати свої нові.
    Перемальовування області і зображення пікселів
    Через те, що Windows не накладає обмежень на розміри і розташування вікон додатків, що можуть виникнути ситуації, що вікно однієї програми перекриє вікно іншої програми, тому при перемиканні між додатками необхідно перерісовить пошкоджені області вікна.
    Для цієї мети використовується підпрограма BeginPaint. При отриманні повідомлення WM_PAINT, що говорить про необхідність перемальовування вікна з зміни його розмірів або відновлення пошкодженої ділянки, підпрограма BeginPaint отримує контекст пристрою і визначає область, яку треба перемалювати.
    Підпрограма BeginPaint приймає два параметри:
    логічний номер вікна і покажчик на структуру даних
    PAINTSTRUCT, Вона повертає логічний номер контексту пристрою, необхідний для малювання пікселя. Прототип підпрограми має вигляд:
    HDC FAR PASCAL BeginPaint (HWND, LPPAINTSTRUCT);
    Структура PAINTSTRUCT визначена так:
    typedef struct tagPAINTSTRUCT
    HDC hdc;
    BOOL fErase;
    RECT rcPaint;
    BOOL fRestore;
    BOOL fIncUpdate;
    BYTE rgbReserved [16];
    PAINTSTRUCT;
    hdc - логічний номер контексту пристрої;
    fErase - прапор, що задає необхідність стирання вікна; rcPaint - описує прямокутник, що обмежує
    пошкоджену область;
    fRestore, fIncUpdate і rgbReserved призначені для внутрішнього використання Windows.
    Для відображення пікселя використовується підпрограма
    SetPixel. Її прототип:
    DWORD FAR PASCAL SetPixel (HDC, int, int, DWORD);
    HDC - логічний контекст пристрою; наступні два параметри - координати пікселя; останній параметр - колір.
    Після завершення перемальовування, програма викликає функцію EndPaint, щоб повернути контекст пристрою дисплея Менеджеру Вікон і повідомити, що вікно відновлено. Коли той отримує контекст пристрою, він відновлює всі його атрибути за умовчанням, і контекст пристрою готовий до передачі інформації будь-якій програмі, якій знадобиться намалювати вікно. Підпрограма EndPaint має прототип:
    void FAR PASCAL EndPaint (HWND, LPPAINTSTRUCT);
    Малювання ліній
    Кожна лінія має початкову та кінцеву крапку, і GDI малює лінію так, початкова точка включається в лінію, а кінцева виключається з лінії.
    GDI має 4 підпрограми для малювання ліній: MoveTo, LineTo, PolyLine і Arc.
    Підпрограма MoveTo поміщає пару координат XY в атрибут контексту пристрою, який називається поточною позицією. Підпрограма має прототип:
    DWORD FAR PASCAL MoveTo (HDC, int x1, int y1);
    Підпрограма LineTo бере початкову точку з атрибуту поточної позиції і малює лінію до кінцевої точки, що передається як параметр. Після цього вона встановлює нове значення атрибуту поточної позиції. Підпрограма має прототип:
    BOOL FAR PASCAL LineTo (HDC, int x1, int y1);
    Підпрограма Polyline дозволяє намалювати ламану лінію, але для її роботи необхідно попередньо створити масив координат точок. Підпрограма має прототип:
    BOOL FAR PASCAL Polyline (HDC, LPPOINT points, int num);
    points - вказівник на масив координат, якому координати осі абсцис і осі ординат чергуються; num - число пар координат у масиві.
    Підпрограма Arc дозволяє намалювати дуги еліпса. Передані параметри визначають прямокутник, що обмежує фігуру, якщо б вона була повною, початкову точку і кінцеву. Підпрограма має прототип:
    BOOL FAR PASCAL Arc (HDC, int, int, int, int, int, int, int, int);
    Малювання зафарбованих фігур
    Для малювання зафарбованих фігур існує сім
    різних функцій.
    Функція Polygon з'єднує розташовані послідовно точки за допомогою поточного встановленого в контексті пристрою пера. Функція визначена так:
    BOOL FAR PASCAL Polygon (HDC, LPPOINT, int);
    HDC - логічний номер контексту пристрої;
    LPPOINT - вказівник на масив координат, що з'єднуються граничних точок;
    Третій параметр - число що з'єднуються точок.
    Функція PolyPolygon дозволяє намалювати за один виклик кілька багатокутників і визначена так:
    BOOL FAR PASCAL PolyPolygon (HDC, LPPOINT, LPINT, int);
    HDC - логічний номер контексту пристрої;
    LPPOINT - вказівник на масив координат, що з'єднуються граничних точок всіх створюваних багатокутників;
    LPINT - вказівник на масив типу int. Елементи масиву задають число точок у кожному багатокутнику *
    Останній параметр задає кількість точок у масиві LPINT, тобто кількість багатокутників.
    Для малювання зафарбованою еліпса використовується функція Ellipse. Вона визначається так:
    BOOL FAR PASCAL Ellipse (HDC, int, int, int, int);
    HDC - логічний номер контексту пристрої;
    Інші параметри визначають координати
    обмежує прямокутника.
    Функція Chord використовується для малювання часткової дуги, кінці якої з'єднані сегментом лінії. Для цього також використовується обмежує прямокутник. Визначення функції наступне:
    BOOL FAR PASCAL Chord (HDC,
    int, int,
    int, int,
    int, int,
    int, int);
    HDC - логічний номер контексту пристрої;
    Наступні чотири параметри визначають координати
    обмежує прямокутника.
    Далі вказуються координати початкової і кінцевої точки сегменту лінії.
    Функція Pie аналогічна функції Chord, тільки малює не хорду, а сектор еліпса. Вона визначена в такий спосіб:
    BOOL FAR PASCAL Pie (HDC,
    int, int,
    int, int,
    int, int,
    int, int);
    HDC - логічний номер контексту пристрої;
    Наступні чотири параметри визначають координати
    обмежує прямокутника.
    Далі вказуються координати початкової і кінцевої точки сектора.
    Для малювання прямокутника використовується функція
    Rectangle.Ее прототип:
    BOOL FAR PASCAL Rectangle (HDC, int, int, int, int);
    HDC - логічний номер контексту пристрої;
    Інші параметри визначають координати
    прямокутника.
    Якщо потрібно намалювати прямокутник із закругленими краями, то є функція RoundRect. Вона визначена та:
    BOOL FAR PASCAL RoundRect (HDC,
    int, int,
    int, int,
    int, int);
    HDC - логічний номер контексту пристрої;
    Наступні чотири параметри визначають координати
    прямокутника.
    Останні два параметри задають ширину і висоту обмежує прямокутника для еліпса, що використовується при скруглення кута.
    Виведення тексту
    Для перегляду тексту є п'ять основних функцій.
    Функція TextOut призначена для виведення одного рядка. Вона визначена в такий спосіб:
    BOOL FAR PASCAL TextOut (HDC, int, int, LPSTR, int);
    HDC - логічний номер контексту пристрої;
    Наступні два параметри визначають координати точки прив'язки що виводиться стоки тексту.
    LPSTR - покажчик на виведену символьну рядок.
    Останній параметр - кількість символів в рядку тексту.
    Більш потужний варіант функції TextOut є функція ExtTextOut. Вона дозволяє керувати інтервалом між рядками і вирізкою
    BOOL FAR PASCAL ExtTextOut (HDC,
    int, int,
    WORD wOptions,
    LPRECT lpRect,
    LPSTR lpString,
    WORD nCount,
    LPINT lpDx);
    HDC - логічний номер контексту пристрої;
    Наступні два параметри визначають координати точки прив'язки що виводиться стоки тексту.
    wOptions - прапор, що приймає значення 0, ETO_CLIPPED, ETO_OPAQUE і ETO_CLIPPED | ETO_OPAQUE, що дозволяє встановлювати прямокутні області вирізки і при виведенні тексту затирати фон.
    lpRect - покажчик на структуру прямокутника;
    lpString - покажчик на виведену символьно?? й рядок.
    nCount - кількість символів в рядку тексту. lpDx -
    вказівник на масив значень інтервалів між
    символами.
    Функція TabbedTextOut при виведенні тексту поширює знаки табуляції до позицій табуляції. Це забезпечує зручний спосіб вирівнювання стовпців даних. Прототип функції:
    LONG FAR PASCAL TabbedTextOut (HDC,
    int, int,
    LPSTR, int, LPINT, int);
    HDC - логічний номер контексту пристрої;
    Наступні два параметри визначають координати точки прив'язки що виводиться стоки тексту.
    LPSTR - покажчик на виведену символьну рядок.
    Наступний параметр - кількість символів в рядку тексту.
    LPINT - вказівник на масив позицій табуляції;
    Останній параметр - число елементів масиві позицій табуляції.
    Функція DrawText забезпечує деяку можливість форматування і перехід в автоматичному режимі на нову сходинку при великій кількості рядків тексту. Її прототип:
    int FAR PASCAL DrawText (HDC, LPSTR, int, LPRECT, WORD);
    HDC - логічний номер контексту пристрої;
    LPSTR - покажчик на виведену символьну рядок.
    Наступний параметр - кількість символів в рядку тексту. LPRECT - покажчик на структуру прямокутника,
    визначає позицію виводу і кордони для форматування. Останній параметр визначає режим форматування.
    Для відображення заблокованих пунктів меню і
    заблокованих елементів управління блоками діалогу Менеджер
    Вікон використовує функцію GrayString.
    ЕЛЕМЕНТИ віконного інтерфейсу
    Вікна Windows
    Головне вікно програми
    Кожна програма розташовується в своєму власному вікні і має принаймні хоча б одне вікно - головне вікно програми. З додатку Windows безпосередньо не можна здійснити виведення на екран, так як екран є розділяються ресурсом, а засобом його поділу є вікна. Таким чином, перш ніж відобразити що-небудь на екрані, потрібно створити вікно, і тільки у вікні можна здійснити виведення.
    Функція головного вікна програми виконує в програмі ту ж роль, що функція main () програми на Сі для MS-DOS. При створенні вікна функція бібліотеки SDK виконує спеціальні дії початкової підготовки в DOS, не явно здійснюваних функцією main (). Тому програма не містить функції main (), роль якої виконує функція WinMain (), що одержує керування в початковий момент завантаження програми. Функція WinMain () виконує наступні основні дії:
    - Реєстрація класу вікна програми та інші
    ініціалізації;
    - Створення основного вікна програми, але, можливо, інших, підпорядкованих вікон;
    - Запуск циклу обробки повідомлень, які розміщені в чергу програми;
    - Завершення роботи програми при витягу з черги повідомлення WM_QUIT.
    Прототип функції WinMain виглядає так:
    int PASCAL WinMain
    (
    HANDLE instance,// дескриптор попередньої копії
    HANDLE prevInstance,// попередня копія
    LPSTR cmdLine,// покажчик на командний рядок
    int cmdShow// прапор "вікно відкрито/закрито"
    );
    instance - однозначно визначає кожну копію
    додатки, якщо додаток запущено кілька разів.
    prevInstance - визначає копію цього додатка, яка була останньою активної копією. Ес
         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status