2015-12-30 7 views
1

Недавно я программировал простую программу на C++ и GLUT, и я хотел использовать колесо прокрутки для увеличения/уменьшения скорости вращения. Я выяснил, что колесо прокрутки генерирует 3/4 callback (3 для прокрутки вверх 4 для прокрутки вниз). Моя проблема в том, что на окнах я вообще не получаю обратного вызова! левый и средний щелчок мыши генерируют 0,1 и 2, но колесо прокрутки ничего. (Я работаю над Visual Studio 2015 и Windows 10). В моей системе Ubuntu с теми же библиотеками колесо прокрутки генерирует обратные вызовы просто отлично, но ни о каких окнах ничего. вот код, который я использую на glutMouseFunc()Нет обратного вызова колесика прокрутки на glutMouseFunc

void setRotationSpeed(int button, int dir, int x, int y) 
{ 
    printf("button is %d\n", button); 
    if (button == 3) 
    { 
     rotationSpeed += 0.1; 
    } 
    if (button == 4) 
    { 
     if (rotationSpeed > 0.0) 
      rotationSpeed -= 0.1; 
    } 
} 

Я искал без везения. Сначала я подумал, что, возможно, у библиотек, которые я использовал, была проблема, но затем я взял те, которые я использовал на Ubuntu, и у меня была такая же проблема, поэтому, если у кого-то есть что предложить, я буду очень благодарен!

+0

Возможный дубликат [Использование прокрутки мыши в GLUT] (http://stackoverflow.com/questions/14378/using-the-mouse-scrollwheel-in-glut) – BDL

+1

@BDL: Как именно это дубликат? Он не спрашивает, как это сделать; он говорит, что сделал это, и это не сработало. –

+0

Извините, что не ответил ранее ... трудный день (подготовка к кануну нового года) @BDL да, я уже прочитал эту статью и попытался в обоих направлениях, но у меня все еще не было никакого обратного вызова с колеса мыши (в соответствии с if и printf, который у меня есть на моей функции). Также мой друг, у которого есть mac, имеет ту же проблему, что и я ... нет обратного вызова с колеса мыши ... только на ubuntu колесо мыши работает так, как должно было. :/ – Fotis

ответ

0

К сожалению, не гарантируется, что glutMouseFunc выдаст обратный вызов для действия колеса, проверьте спецификацию GLUT, факт, что он работает с Linux, не соответствует спецификации GLUT. Я думаю, что раньше было что-то вроде glutMouseWheelFunc, теперь нет возможности получить обратный вызов о колесе, который не является специфичным для реализации. Вы по-прежнему можете использовать библиотеку FreeGLUT, новее, а также кросс-платформенную, конечно, действия колес реализованы. Удачи.

+0

Я постараюсь и отчитаюсь назад за ответ – Fotis

+0

Я использовал библиотеку freeglut, но не повезло. Все еще нет ответа, когда я использую колесо мыши. Я считаю, что это имеет какое-то отношение к операционной системе, а не к библиотекам. Спасибо хоть – Fotis

 Смежные вопросы

  • Нет связанных вопросов^_^