C++ 如何在C++;
在C++/OpenGL中,如何响应鼠标中键单击C++ 如何在C++;,c++,opengl,click,mouseevent,onclicklistener,C++,Opengl,Click,Mouseevent,Onclicklistener,在C++/OpenGL中,如何响应鼠标中键单击 我知道这可能与WM_mbutdown事件有关,但是我完全不知道如何使用它。我也不熟悉回调函数,所以如果必须使用回调函数,是否可以对其进行彻底解释?有人能告诉我如何实现鼠标中键点击事件的代码吗 您可以尝试使用WM\uu命令来实现旧版本,但我认为使用会容易得多(因为它确实让OpenGL的使用变得更轻松) #包括 void myMouseHandleFunction(int按钮、int状态、int x、int y){ 如果(button==GLUT\u
我知道这可能与
WM_mbutdown
事件有关,但是我完全不知道如何使用它。我也不熟悉回调函数,所以如果必须使用回调函数,是否可以对其进行彻底解释?有人能告诉我如何实现鼠标中键点击事件的代码吗 您可以尝试使用WM\uu
命令来实现旧版本,但我认为使用会容易得多(因为它确实让OpenGL的使用变得更轻松)
#包括
void myMouseHandleFunction(int按钮、int状态、int x、int y){
如果(button==GLUT\u MIDDLE\u button&&state==GLUT\u DOWN)std::cout您可以尝试使用WM\uu
命令来实现旧版本,但我认为使用会容易得多(因为它确实让OpenGL的使用变得更简单)
#包括
void myMouseHandleFunction(int按钮、int状态、int x、int y){
如果(button==GLUT\u MIDDLE\u button&&state==GLUT\u DOWN)std::cout您可以尝试使用WM\uu
命令来实现旧版本,但我认为使用会容易得多(因为它确实让OpenGL的使用变得更简单)
#包括
void myMouseHandleFunction(int按钮、int状态、int x、int y){
如果(button==GLUT\u MIDDLE\u button&&state==GLUT\u DOWN)std::cout您可以尝试使用WM\uu
命令来实现旧版本,但我认为使用会容易得多(因为它确实让OpenGL的使用变得更简单)
#包括
void myMouseHandleFunction(int按钮、int状态、int x、int y){
如果(按钮==GLUT\U中间按钮和状态==GLUT\U向下)std::cout如果你在使用OpenGL,你可能已经在使用回调函数了。基本上,你给OpenGL一个指向某个函数的指针,OpenGL会在某些情况下调用你的函数。你有没有尝试过搜索?我发现了很多有用的结果。特别是如果你正在使用。我会看一看,然后顺便说一下,谢谢!<代码> WMY-MutoNoDun.<代码>是Windows API的一部分,而不是C++或OpenGL,顺便说一下。如果你使用OpenGL到任何有用的程度,你可能已经使用了回调函数。基本上,你把OpenGL指向一个函数,而OpenGL在某些情况下调用你的函数。你试过了Selqi吗?NG?我发现了很多有用的结果。尤其是如果你在使用的话。我会看一看。谢谢!<代码> WMYMbOnDOWNDOW//COD>是Windows API的一部分,而不是C++或OpenGL。顺便说一下,如果你使用OpenGL到任何有用的程度,你可能已经使用了回调函数。离子和OpenGL在某些情况下调用你的函数。你试过了吗?我发现了很多有用的结果。特别是如果你在使用。我会看一看。谢谢!<代码> WMY-MbutnDouf/<代码>是Windows API的一部分,而不是C++或OpenGL。顺便说一下,如果你使用OpenGL到任何有用的程度,你可能是一个l已经使用回调函数了。基本上,你给OpenGL一个指向某个函数的指针,OpenGL会在某些情况下回调你的函数。你尝试过搜索吗?我发现了很多有用的结果。特别是如果你正在使用。我会看一看。谢谢!WM_mbutdown
是Windows API的一部分,并且不是C++或者OpenGL,顺便说一下,你能解释一下吗?你用四个参数创建MyouthHealLeLoad并把这个函数作为参数传递给GalMouthFunc。是这样吗?四个参数(int按钮,int状态,int x,int y)在没有我在main中显式设置它们的情况下自动检索?所有这些工作是如何进行的?是的,GLUT负责为您设置这些参数。每次您按下/释放鼠标按钮时,该函数都会自动被调用。就是这样:)我还能调用glutMouseFunc(myMouseHandleFunction)吗;没有glutInit(&argc,argv);以及所有这些Init函数?它们与处于当前状态的程序冲突。是否可以调用glutMouseFunc并避免任何错误?因为我似乎在glutMouseFunc(myMouseHandleFunction)所在的位置获取访问冲突读取位置0x000000b0;已放置。据我所知,您必须至少具有glutInit
和glutMainLoop
。在您的应用程序进入glutMainLoop
后,鼠标将被处理。如果您想编辑第一篇帖子并添加关于为什么不能使用GLUT的信息(那么谈谈冲突),也许我能提供更多帮助。好的,你能解释一下吗,你用四个参数创建myMouseHandleFunction,并将此函数作为参数传递给glutMouseFunc。是这样吗?这四个参数(int按钮、int状态、int x、int y)是否在没有我在main中显式设置它们的情况下自动检索?所有这些工作是如何进行的?是的,GLUT负责为您设置这些参数。每次您按下/释放鼠标按钮时,该函数都会自动被调用。就是这样:)我还能调用glutMouseFunc(myMouseHandleFunction)吗;没有glutInit(&argc,argv);以及所有这些Init函数?它们与处于当前状态的程序冲突。是否可以调用glutMouseFunc并避免任何错误?因为我似乎在glutMouseFunc(myMouseHandleFunction)所在的位置获取访问冲突读取位置0x000000b0;已放置。据我所知,您必须至少具有glutInit
和glutMainLoop
。在您的应用程序进入glutMainLoop
后,鼠标将被处理。如果您想编辑第一篇帖子并添加关于为什么不能使用GLUT的信息(那么谈谈冲突),也许我能帮上更多的忙。好的,那么你能解释一下吗,你创建了myMouseHandleFunction wi
#include <GL/glut.h>
void myMouseHandleFunction(int button, int state, int x, int y){
if(button==GLUT_MIDDLE_BUTTON && state==GLUT_DOWN) std::cout << "Pressed middle mouse button!";
}
int main(int argc, char *argv[]){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutInitWindowSize(500, 500);
glutInitWindowPosition(300, 200);
glutCreateWindow("Hello World!");
glutMouseFunc(myMouseHandleFunction);
glutMainLoop();
return 0;
}