Выступоўца 1: Давайце зараз напісаць праграму што так ці інакш ўзаемадзейнічае з маёй мышы. У прыватнасці, давайце асобнік, або стварыць акно. А потым давайце паслухаем, так бы мовіць, у гэтым акне для пстрычак мышы. І як толькі мы выяўляем пстрычка мышы, давайце друкаваць з Printf каардынуе х коскамі ў гэтага мышы націсніце, па адносінах да гэтага акна. Тут мы ідзем. Давайце спачатку ўключаюць gevents.h, што іншы файл загалоўка ў Стэнфардзе партатыўны бібліятэка, якая адносіцца да графічных падзей. Давайце таксама ўключаць gwindow.h, які ўтрымлівае функцыі, звязаныя з Windows. Давайце зараз аб'явіць галоўным звычайным спосабам. І давайце цяпер асобнік гэтага акна. Gwindow - мы будзем называць яго вокны - роўная newGwindow. І я буду паказваць некалькі адвольна шырыня 320 пікселяў і вышынёй 240 пікселяў. Цяпер нам трэба працягнуць слухаць для падзей мышы, так кажуць, у гэтым акне. Цяпер падзеі могуць ўключаць клікаў або цягне або руху. Але цяпер мы засяродзімся толькі за клікі. Я збіраюся наўмысна выклікаць бясконцы цыкл з падчас канструкцыі, проста так, што гэтая праграма працуе назаўжды, або па крайняй меры, пакуль я не націсніце X ў верхнім правым куце. Каб зрабіць гэта, давайце зробім той час як праўда. А потым ўнутры гэтай завесы, давайце спачатку чэк на Мерапрыемства наступным мышы. Мы будзем аб'яўляць GEvent, так бы мовіць. Мы назавем зменную падзея. І мы збіраемся захоўваць у тым, што вярнуцца значэнне getNextEvent, праходзячы ў спецыяльным пастаяннай, якая па Канвенцыя напісана вялікімі літарамі, называецца mouse_event. Іншымі словамі, дзесьці ў гэтай Стэнфардскі пераносная бібліятэка, ёсць пастаянная называецца MOUSE_CLICED. І ёсць функцыя, пэўная вось называецца getNextEvent, мэта якога ў жыццё, каб зрабіць менавіта гэта. Прыслухайцеся да, а затым, калі ён чуе адно, вяртае наступны падзея, якое былі выкліканыя мышы карыстальніка. Зараз давайце праверыць гэта падзея з'яўляецца несапраўдным. Таму што гэта не нуль, і гэта мы на самай справе чулі нешта з мышы карыстальніка, мы збіраемся прыступіць праверыць зараз, які тып падзеі, што было. Калі getEventType, праходзячы падзея ў якасці аргументу, роўна роўных MOUSE_CLICKED, якія, здараецца, Канкрэтны тып падзей, што з'яўляецца проста іншая канстанта аб'яўлена ў Стэнфардскі пераносная бібліятэка. Цяпер, як і абяцалі, давайце зараз раздрукаваць каардынаты гэтай мышы. Printf "% .0 е. Іншымі словамі, я збіраюся друкаваць са значэння з якая плавае кропкай. Але я не хачу бачыць нічога пасля коскі. Так што я буду казаць 0,0. Коска,% 0,0 е для каардынаты ў , А таксама. Зваротная касая рыса п блізка цытата. А цяпер давайце каардынаты х аб гэтай падзеі. Гэта значыць каардынаты х пстрычкі мышы. А потым давайце ў падзеі, які з'яўляецца Y-каардыната пстрычкі мышы. Давайце зараз захаваць, скампіляваць, і запусціць гэтую праграму. І калі я раблю, гэта павінна быць так, што незалежна ад таго, дзе я націскаю ў межы гэтай 320 па 240 пікселя вокны, я павінны ўбачыць на маім Кансоль Акно х коска у-каардынаты ад таго, дзе я націснуў. Зрабіць кнопку. . / Націснуць кнопку. І ёсць, што акно мы і прадказвалі. Цяпер дазвольце мне націсніце прыкладна ў верхняй левым куце акна. У маім экране кансолі, я бачу, што я здараецца, націсніце на х-каардыната сем і у-каардынатаў сем. Давайце зараз націсніце прыкладна на дне правам куце акна. І я, здаецца, націснулі на піксель каардынатаў 314, 229. Давайце цяпер рабіць ніжні левы кут. І я бачу, 6, 233. І ў правым верхнім куце, 305, 4. Іншымі словамі, гэта, здаецца, справа што верхняя левая кут наша акно роўна 0, 0. І ў ніжнім правым куце з майго акна складае 320, 240. Іншымі словамі, я б бачылі Менавіта гэтыя каштоўнасці, калі б я проста ідэальна роўныя мой курсор мышы у кожным з гэтых кутоў. Гэта дакладна ў цэлым у графічным праграмаванне, як пры выкарыстанні Стэнфардскі пераносная бібліятэка з большасці аднаго, у выніку чаго мы ўяўляем лепшых кут як 0, 0, а ніжні правы кут, як па шырыні коскі Вышыня, з дапамогай станоўчыя колькасці, нават хоць гэта ўніз і направа.