※ OpenFrameworksのバージョンはv0.8.3です。
OpenFrameworksは標準ではマウスホイールによるスクロールイベントをハンドルしませんが、ライブラリを編集すれば簡単にスクロールイベントをハンドルするようにできます。
まず、openFrameworksのソースフォルダを開き、app/ofAppGLFWWindow.cppのscroll_cbメソッドを編集します。
ofAppGLFWWindow.cpp
void ofAppGLFWWindow::scroll_cb(GLFWwindow* windowP_, double x, double y) {
//TODO: implement scroll events
ofAppPtr->mouseScrolled(x, y);
}
次に、ofBaseApp.hを開いて、mouseReleasedメソッドの下にmouseScrolledメソッドを追加します。
ofBaseApp.h
virtual void mouseMoved( int x, int y ){}
virtual void mouseDragged( int x, int y, int button ){}
virtual void mousePressed( int x, int y, int button ){}
virtual void mouseReleased(int x, int y, int button ){}
virtual void mouseScrolled(double x, double y){}
最後に、ofApp.hにmouseScrolledメソッドを追加し、ofApp.cppにmouseScrolledメソッドの実装を記述すれば、マウスホイールをスクロールさせる度にofAppのmouseScrolledが呼び出されます。
ofApp.h
void mouseScrolled(double x, double y);
ofApp.cpp
void ofApp::mouseScrolled(double x, double y) {
// ここに、スクロール時の処理を実装します。
ofLogNotice() << "mouse scrolled: (" << x << "," << y << ")";
}