在 C 的 OpenGL 中检测鼠标点击
detect mouse clicks in OpenGL in C
有什么方法可以不使用 glutMouseFunc() 来检测鼠标点击位置吗?
我在网上找到的所有使用 glutMouseFunc() 获取鼠标点击的示例。但是,我不希望检测鼠标点击功能始终处于活动状态。我只想在用户在菜单中选择某个选项后才记录鼠标单击位置。确切地说,我想在用户在菜单中选择一个选项后记录 4 个鼠标单击位置。
我阅读了有关 glutMouseFunc()
here 的文档。如果你想在不同的时间用 4 个不同的函数处理鼠标事件,你可以用 NULL
调用 glutMouseFunc
,然后用另一个函数调用 glutMouseFunc
。来自文档:
Passing NULL to glutMouseFunc disables the generation of mouse callbacks.
如果你想同时处理不同的鼠标事件,那么你必须编写一个函数来满足所有这些条件。
首先,OpenGL与鼠标回调无关。它是图形库。对于您的最终目标,基本上按照@Mikhail 的建议,您在 glutMouseFunc
中插入一个条件语句,因此,
void mouse_callback(){
if ( command_seleteced == true )
store mouse position
}
有什么方法可以不使用 glutMouseFunc() 来检测鼠标点击位置吗?
我在网上找到的所有使用 glutMouseFunc() 获取鼠标点击的示例。但是,我不希望检测鼠标点击功能始终处于活动状态。我只想在用户在菜单中选择某个选项后才记录鼠标单击位置。确切地说,我想在用户在菜单中选择一个选项后记录 4 个鼠标单击位置。
我阅读了有关 glutMouseFunc()
here 的文档。如果你想在不同的时间用 4 个不同的函数处理鼠标事件,你可以用 NULL
调用 glutMouseFunc
,然后用另一个函数调用 glutMouseFunc
。来自文档:
Passing NULL to glutMouseFunc disables the generation of mouse callbacks.
如果你想同时处理不同的鼠标事件,那么你必须编写一个函数来满足所有这些条件。
首先,OpenGL与鼠标回调无关。它是图形库。对于您的最终目标,基本上按照@Mikhail 的建议,您在 glutMouseFunc
中插入一个条件语句,因此,
void mouse_callback(){
if ( command_seleteced == true )
store mouse position
}