小编Spo*_*oot的帖子

GLUT:错误的鼠标坐标?

使用 SCREEN_WIDTH = 1200 和 SCREEN_HEIGHT = 800。

首先,我在 (x = 0, y = 0, w = 40, h = 40) 处绘制一个框到屏幕上;

然后我使用 handleMouse 函数返回单击鼠标的位置的 x 和 y 坐标。

问题是,当程序以非最大化窗口模式启动时,当我点击(看起来是什么)框的右下角时,返回的坐标是 x = 40, y = 32。当我认为它应该返回 x = 40,y = 40。

我不知道问题是否是绘制不正确,或者函数返回了错误的 x/y。

我相信我了解 openGL 渲染、转换和 glOrth 的工作原理,但我可能完全错了。我在网上看到一些建议说 Windows 装饰(使用 Windows 7)会导致这个问题,但很少解释,也没有提供解决方案。

这是我的全部源代码。我已经剥离了从游戏到基础的所有内容,但问题仍然存在:(。我添加了两张图片,以便人们可以看到我的问题。在非最大化窗口(顶部图片)中,单击右下角时, 返回的坐标为 41,32; y 坐标小于应有的值。并且在 MAXIMIZED WINDOW(底部图片)中,单击同一个角时,返回正确的坐标 40, 40。这些结果发生在两者上我的原始源代码和 genpfault 的建议代码。

//原来我不能发布图片:(,而是链接。

非最大化窗口

最大化窗口

main.cpp
int main( int argc, char* args[] )
{
    //Initialize FreeGLUT
    glutInit( …
Run Code Online (Sandbox Code Playgroud)

c++ windows opengl mouse glut

5
推荐指数
1
解决办法
1923
查看次数

标签 统计

c++ ×1

glut ×1

mouse ×1

opengl ×1

windows ×1