Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在C++;_C++_Opengl_Click_Mouseevent_Onclicklistener - Fatal编程技术网

C++ 如何在C++;

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

在C++/OpenGL中,如何响应鼠标中键单击


我知道这可能与
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;
}