在C中检测OpenGL中的鼠标点击

时间:2015-10-24 16:18:45

标签: c opengl glut freeglut

有没有办法可以通过不使用glutMouseFunc()来检测鼠标点击位置?

我在网上找到的所有使用glutMouseFunc()点击鼠标的例子。但是,我不希望检测鼠标单击功能始终处于活动状态。我想在用户选择菜单中的某个选项后才记录鼠标点击位置。确切地说,我想在用户选择菜单中的选项后记录4个鼠标点击位置。

2 个答案:

答案 0 :(得分:1)

首先,OpenGL与鼠标回调无关。它是图形库。为了您的最终目标,基本上@Mikhail建议,您在glutMouseFunc内插入一个条件语句,因此,

void mouse_callback(){

if ( command_seleteced == true )
   store mouse position

}

答案 1 :(得分:0)

我阅读了有关glutMouseFunc() here的文档。如果您想在不同时间处理具有4种不同功能的鼠标事件,则可以使用glutMouseFunc调用NULL,然后使用其他功能调用glutMouseFunc。来自文档:

  

将NULL传递给glutMouseFunc会禁用鼠标回调的生成。

如果你想同时处理不同的鼠标事件,那么你必须编写一个具有所有这些条件的函数。