扬声器1:现在,让我们写一个程序 不知怎的,我的鼠标交互。 尤其是,让我们实例化, 或创建一个窗口。 然后让我们来听听,可以这么说, 在该窗口的鼠标点击。 而一旦我们检测到鼠标点击, 让我们用printf的打印 坐标是鼠标x逗号Ÿ 点击,相对于窗口。 在这里,我们走了。 让我们首先包括gevents.h,这是 在斯坦福大学的另一头文件 这涉及便携库 以图形化的事件。 让我们也包括gwindow.h,这 包含与Windows的功能。 现在让我们来宣告主 在通常的方式。 而且,我们现在实例化该窗口。 Gwindow - 我们会打电话给它的窗口 - 等于newGwindow。 我会指定有点任意一个 宽度为320像素和的高度 240像素。 现在,我们需要继续听 对于鼠标事件,所以要 该窗口内的话语,。 现在事件可以包括点击 或拖动或移动。 但现在我们将集中 只有在点击。 我要故意诱导 无限循环用whil​​e结构, 只是让这个程序运行 永远的,或至少直到我点击 中的X右上角的角落。 要做到这一点,让我们做的,而真实的。 然后该循环内, 让首次检查 鼠标事件,如下所示。 我们将宣布GEVENT,可以这么说。 我们会打电话给该变量的事件。 而我们将要存储在该 返回getNextEvent的价值,传递 在一个特殊的恒定的,它通过 惯例是用全部大写, 所谓MOUSE_EVENT。 换句话说,在某处这 斯坦福便携图书馆,有一个 常数,称为MOUSE_CLICED。 并没有定义,这是一个函数 所谓getNextEvent,其目的在 生活就是这样做。 倾听,然后当它听到之一, 返回下一个活动,其 被触发由用户的鼠标。 现在,让我们检查是否 该事件为null。 因为它不是空的,就是我们 从实际听到的东西 用户的鼠标,我们将继续进行 现在检查什么类型 事件是。 如果getEventType,传递一个事件 作为参数,等于等于 MOUSE_CLICKED,这恰好是一个 事件,这仅仅是特定类型的 在声明的另一个常量 斯坦福便携库。 现在,作为承诺的,现在让我们打印出来的 坐标的鼠标点击。 printf的“%.0 f。 换句话说,我要打印 出一个浮点值。 但我不希望看到任何东西 小数点后。 所以我会指定.0。 逗号,%.0 f表示y坐标 为好。 反斜线N分别闭合引号。 现在,让我们的x坐标 该事。 即x坐标 鼠标点击。 然后让我们事件的Y, 这是y坐标 鼠标点击。 现在,让我们保存,编译, 并运行此程序。 当我这样做,它应该是这样的 无论在哪里我点击内 这个320×240像素的范围 窗口,我应该再上看到我 控制台窗口的X逗号y坐标 在那里我点击。 使点击。 。/点击。 还有的,我们预测该窗口。 现在让我一下大致顶部 左手角落的窗口。 在我的控制台屏幕上,我看到我 碰巧点击x坐标7 和y坐标7。 现在,让我们按一下大致的底部 右上角的窗口。 而我似乎已经点击了 像素坐标314,229。 现在,让我们做的左下角。 我看到6,233。 和右上角,305,4。 换句话说,似乎是这种情况 该顶部左上角 我们的窗口是0,0。 和右下角的角落 我的窗户是320,240。 换句话说,我会看到 正是这些价值观,原来我只是 完全对齐我的鼠标光标 在每个那些角落。 这是真实的,一般在图形 编程,是否使用 斯坦福便携库或任何最 其他的,据此,我们所代表的顶级 转角为0,0,并且底 右上角的宽度逗号 高度,用正数,甚至 虽然它的向下和向右移动。