>> Виступаючий 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, а нижній правий кут, як по ширині коми
Висота, з допомогою позитивні числа, навіть хоча це вниз і вправо.