マウスをクリックした時、話した時、動かしている時の状態を取得します。
#include <GL/freeglut.h> // マウス入力用コールバック(押した時、話した時) void mouseCallBack( int _button, int _state, int _x, int _y ) { // ボタンの種類。 switch( _button ) { case GLUT_LEFT_BUTTON: { switch( _state ) { case GLUT_DOWN: case GLUT_UP: break; } } break; case GLUT_MIDDLE_BUTTON: { switch( _state ) { case GLUT_DOWN: case GLUT_UP: break; } } break; case GLUT_RIGHT_BUTTON: { switch( _state ) { case GLUT_DOWN: case GLUT_UP: break; } } break; } } // マウス入力用コールバック(ドラッグ時) void motionCallBack( int _x, int _y ) { } // メイン int main( int argc, char *argv[] ) { // GLUTの初期化 glutInit( &argc, argv ); // ウィンドウの位置を指定。 glutInitWindowPosition( 100, 100 ); // ウインドウサイズ指定 glutInitWindowSize( 640, 480 ); // ウインドウの表示モード指定 glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGBA ); // ウインドウ生成 glutCreateWindow( argv[0] ); // 画面の初期色設定。 glClearColor( 1.0, 1.0, 1.0, 1.0 ); // コールバック関数の登録。 glutMouseFunc( mouseCallBack ); // マウスクリック。 glutMotionFunc( motionCallBack ); // マウスドラッグ。 // メインループ glutMainLoop(); return 0; }