現在地 >> メニュー >> 基本編18
INDEX:基本編17 << 基本編18 >> 基本編19

ポップアップメニュー


glutでは簡単な「ポップアップメニュー」を作成する事ができる。

リファレンス >> メニュー操作

手順

  1. ポップアップメニューに対応するコールバック関数を登録、定義
  2. メニューを項目作る
  3. マウスとの動作と関連づける

【例】
//コールバック関数
void menu(int val)
{
	std::cout <<"name "<< val <<" click!\n";
}
			... ...
	glutCreateMenu(menu);   //コールバック登録
	glutAddMenuEntry("name 1", 1); //項目と与える引数の設定 
	glutAddMenuEntry("name 2", 2);
	glutAddMenuEntry("name 3", 3);
	glutAttachMenu(GLUT_RIGHT_BUTTON); //マウスの右ボタンでポップアップ
			... ...


サブメニュー


メニュー項目に階層をつける場合、サブメニューを使う事ができる。

手順

  1. サブメニューを作成
  2. メインメニューにサブメニューを追加

【例】
//メニューコールバック関係
void menu(int val)
{
... ...
}
//サブメニュー1
void sub_menu_1(int val)
{
... ...
}
//サブメニュー2
void sub_menu_2(int val)
{
... ...
}

	int MENU_ID[2];

	//サブメニュー1
	MENU_ID[0] = glutCreateMenu(sub_menu_1);
	glutAddMenuEntry("sub 1_1", 1);
	glutAddMenuEntry("sub 1_2", 2);

	//サブメニュー2
	MENU_ID[1] = glutCreateMenu(sub_menu_2);
	glutAddMenuEntry("sub 2_1", 1);
	glutAddMenuEntry("sub 2_2", 2);

	//ここから、メインメニューの並び
	glutCreateMenu(menu);
	glutAddSubMenu( "Sub menu part 1", MENU_ID[0] );//サブメニューとして設定
	glutAddMenuEntry("name 1", 1);
	glutAddMenuEntry("name 2", 2);
	glutAddMenuEntry("name 3", 3);
	glutAddSubMenu( "Sub menu part 2", MENU_ID[1] );//サブメニューとして設定

	glutAttachMenu(GLUT_RIGHT_BUTTON);

サンプルコード

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます