Попытка прикрепить курсор к моему окну не работает?

#c #opengl #freeglut

#c #opengl #freeglut

Вопрос:

Я пытаюсь заставить курсор Windows оставаться внутри моего окна. Я использую freeglut, и C Пока все работает отлично, за исключением той части, где я пытаюсь использовать ClipCursor, чтобы удерживать курсор заблокированным в моем окне, он перемещается свободно, как будто команда даже не была вызвана. Это отлично работало в моем проекте, который вообще не использует glut, но я хотел попробовать glut.

Вот соответствующий код:

  int main(int argc, char* argv[])
 {
      glutInit(amp;argc, argv);
      glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);
      glutInitWindowSize(WIDTH,HEIGHT);
      glutInitWindowPosition(50,50);
      glutCreateWindow("Indie Game 01");
      glewInit();
      GLenum err = glewInit();
      if(GLEW_OK != err) {
         cout << "glewInit failed, aborting." << endl;
         exit(1);
      }
      cout << "Status: Using GLEW " << glewGetString(GLEW_VERSION) << endl;
      cout << "OpenGL version " << glGetString(GL_VERSION) << " supported" << endl;

      HWND hwnd;
      hwnd = FindWindow("GLUT","Indie Game 01");
      RECT r;
      GetWindowRect(hwnd,amp;r);
      ClipCursor(amp;r);

      init();
      glutDisplayFunc(display);
      glutMouseFunc(mouse);
      glutKeyboardFunc(keyboard);
      glutReshapeFunc(reshape);

      glutMainLoop();
      return 0;
 }
  

Я не понимаю, почему ClipCursor не работает: / любая помощь приветствуется!

Комментарии:

1. Вместо добавления «РЕШЕНО» к заголовку, все, что нужно, это пометить ответ как принятый.

2. Я знаю, но это было решено так быстро, что stack не позволил мне принять ответ

Ответ №1:

Должно быть, сбой в FindWindow. Попробуйте передать 0 в качестве первого параметра.

Комментарии:

1. ого! Это исправлено. Но затем, сразу после того, как я опубликовал это, я понял, что использую freeglut, а не glut. Изменение первого параметра на «freeglut» исправило это: P спасибо! Я одобрю ваш ответ, когда stack позволит мне!