ГДИ + је начин за цртање облика, фонтова, слика или опћенито било чега графичког Вижуал бејзик .НЕТ.
Овај чланак је први део потпуног увода за коришћење ГДИ + у Висуал Басиц .НЕТ.
ГДИ + је необичан део .НЕТ-а. Овдје је био прије .НЕТ (ГДИ + је издан са Виндовс КСП) и не дијели исте циклусе ажурирања као .НЕТ Фрамеворк. Мицрософтова документација обично каже да је Мицрософт Виндовс ГДИ + АПИ за Ц / Ц ++ програмера у Виндовс ОС. Али ГДИ + такође укључује просторе имена који се користе у ВБ.НЕТ за графичко програмирање засновано на софтверу.
ВПФ
Али није то само графички софтвер који пружа Мицрософт, посебно од Фрамеворк 3.0. Када су представљени Виста и 3.0, са њом је представљен и потпуно нови ВПФ. ВПФ је графички убрзани хардверски приступ високог нивоа. Како то изјављује Тим Цахилл, члан тима Мицрософт ВПФ софтвера, уз ВПФ „описујете своју сцену помоћу конструкција високог нивоа, а ми ћемо се бринути о одмори се. "А чињеница да је хардверски убрзан значи да не морате да повлачите рад рачунара на цртежу облика на екран. Велики део стварног посла обавља ваша графичка картица.
Међутим, већ смо били овде раније. Сваки „велики скок напријед“ обично прати неколико спотицања уназад, а осим тога, требаће година да ВПФ прође кроз милионе бајтова ГДИ + кода. То је посебно тачно јер ВПФ претпоставља да радите са снажним системом са пуно меморије и врућом графичком картицом. Зато многи рачунари нису могли да покрећу Висту (или бар користе графику Висте „Аеро“) када је први пут представљена. Тако је ова серија и даље доступна на веб локацији за све и све који је и даље требају да је користе.
Добри Ол код
ГДИ + није нешто што можете превући на образац као друге компоненте у ВБ.НЕТ. Уместо тога, ГДИ + објекти се генерално морају додати на стари начин - кодирањем испочетка! (Иако ВБ .НЕТ садржи неколико врло згодних исјечака кода који вам заиста могу помоћи.)
Да бисте кодирали ГДИ +, користите објекте и њихове чланове из великог броја .НЕТ прозора имена. (Тренутно су то само кодови омота за Виндовс ОС објекте који заправо раде.)
Имена простора
Простори имена у ГДИ + су:
Систем. Цртање
Ово је тхе тхе цоре ГДИ + простор имена. Дефинише објекте за основно приказивање (фонтови, оловке, основне четкице итд.) и најважнији предмет: Графика. Више ћемо видети у само неколико одломака.
Систем. Цртање. Дравинг2Д
Ово вам даје предмете за напреднију дводимензионалну векторску графику. Неки од њих су градијентне четкице, капке за оловке и геометријске трансформације.
Систем. Цртање. Имагинг
Ако желите да промените графичке слике - то јест, промените палету, извучете метаподате слике, манипулишете метафилијама и тако даље - ово вам је потребно.
Систем. Цртање. Штампање
Да бисте слике ставили на штампану страницу, комуницирали са самим штампачем и форматирали целокупни изглед задатка за штампање, користите овде предмете.
Систем. Цртање. Текст
Можете користити колекције фонтова с овим простором имена.
Графички објекат
Мјесто за почетак са ГДИ + је Графика објекта. Иако се ствари које цртате приказују на монитору или штампачу, графички објект је „платно“ на које цртате.
Али, Грапхицс објект је такође један од првих извора збрке када се користи ГДИ +. Објект Грапхицс је увијек повезан с одређеним контекст уређаја. Дакле, први проблем с којим се практично сваки нови студент ГДИ + суочава је: "Како да добијем графички објект?"
У основи постоје два начина:
- Можете користити е параметар догађаја који се просљеђује у ОнПаинт догађај са ПаинтЕвентАргс објекта. Неколико догађаја је прошло ПаинтЕвентАргс а можете користити да бисте се позвали на графички објект који већ користи контекст уређаја.
- Можете користити ЦреатеГрапхицс метода за контекст уређаја за креирање графичког објекта.
Ево примера првог метода:
Заштићени поништавања Суб ОнПаинт (_. БиВал е као систем. Виндовс. Обрасци. ПаинтЕвентАргс) Дим г као графика = е. Графика г. ДравСтринг ("О Висуал Басиц" & вбЦрЛф _. & "и ГДИ +" & вбЦрЛф & "Сјајан тим", _. Нови фонт ("Тимес Нев Роман", 20), _. Четке. Фиребрицк, 0, 0) МиБасе. ОнПаинт (е) Енд Суб
Кликните овде да прикажете илустрацију
Додајте ово у класу Форм1 за стандардни Виндовс програм да бисте га сами кодирали.
У овом примјеру, образац је већ креиран за графички објект Форм1. Све што ваш код треба да уради је да креирате локалну инстанцу тог објекта и користите га за цртање на истом обрасцу. Примјетите да је ваш код Поништавања тхе тхе ОнПаинт метод. Зато МиБасе. ОнПаинт (е) се извршава на крају. Морате бити сигурни да ако базни објект (онај који надјачавате) ради нешто друго, добија шансу да то и учините. Често код функционише и без тога, али то је добра идеја.
ПаинтЕвентАргс
Такође можете добити Грапхицс објект користећи ПаинтЕвентАргс објект предао на ваш код у ОнПаинт и ОнПаинтБацкгроунд методе форме. Тхе ПринтПагеЕвентАргс прошао у ПринтПаге догађај ће садржати графички објект за штампање. За неке слике је чак могуће добити објект Грапхицс. Ово вам може омогућити да сликате право на слици на исти начин као што сте је сликали на обрасцу или компоненти.
Евент Хандлер
Друга варијација првог начина је додавање алата за обраду догађаја Паинт догађај за форму. Ево како тај код изгледа:
Привате Суб Форм1_Паинт (_. БиВал пошиљалац Као предмет, _. БиВал е као систем. Виндовс. Обрасци. ПаинтЕвентАргс) _. Хандлес Ме. Паинт. Дим г као графика = е. Графика г. ДравСтринг ("О Висуал Басиц" & вбЦрЛф _. & "и ГДИ +" & вбЦрЛф & "Сјајан тим", _. Нови фонт ("Тимес Нев Роман", 20), _. Четке. Фиребрицк, 0, 0) Енд Суб
ЦреатеГрапхицс
Други начин да добијете графички објект за свој код користи а ЦреатеГрапхицс метода која је доступна са многим компонентама. Код изгледа овако:
Приватно пот дугме1_Цлицк (_. БиВал пошиљалац Ас Систем. Објекат, _. БиВал е као систем. ЕвентАргс) _. Хандле Буттон1.Цлицк. Дим г = Ја. ЦреатеГрапхицс. г. ДравСтринг ("О Висуал Басиц" & вбЦрЛф _. & "и ГДИ +" & вбЦрЛф & "Сјајан тим", _. Нови фонт ("Тимес Нев Роман", 20), _. Четке. Фиребрицк, 0, 0) Енд Суб
Овде постоји неколико разлика. Ово је у Буттон1.Цлицк догађај јер када Форм1 пребарује се у Оптерећење догађај, наша графика је изгубљена. Дакле, морамо их додати у каснијем догађају. Ако ово кодирате, примијетићете да се графика изгуби када Форм1 мора да се изнова црта. (Мимизирајте и поново максимизирајте да бисте то видели.) То је велика предност од употребе прве методе.
Већина референци препоручује употребу прве методе, јер ће се ваша графичка аутоматски поново офарбати. ГДИ + може бити тежак!