Как я могу ответить на средний щелчок мыши в C ++ / OpenGL?
Я знаю, что это может быть связано с WM_MBUTTONDOWN
Однако, я совершенно не понимаю, как его использовать. Я также не знаком с функциями обратного вызова, поэтому, если это нужно использовать, это может быть подробно объяснено? Может кто-нибудь показать мне, как реализовать код для события щелчка средней мыши?
Вы можете попробовать и реализовать версию oldschool с помощью WM_
команды, но я думаю, что это будет намного проще в использовании GLUT (с тех пор действительно делает жизнь с OpenGL проще).
#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;
}
Если вы делаете простое приложение, GLUT будет достаточно. Если вы хотите сделать что-то более сложное, попробуйте freeglut или же openglut. Старый, основной GLUT не обрабатывает колесико мыши, так что если вы хотите проверить это — вам понадобится один из этих двух.
Других решений пока нет …