テキスト メニューを作成する
SFRTextMenu クラスを使って、テキスト メニューを作成します。
SFMTYPEDEFCLASS(UserClass) class UserClass : public SFRPlainWindow { // コンストラクタやエラー処理は省略 private: Void Main (Void); HANDLER_DECLARE_VOIDMENU(MenuHandler) }; Void UserClass::Main(Void) { SFRTextMenuPtr menu; // テキスト メニューの作成 menu = new SFRTextMenu(SFXRectangle(40, 30, 100, 150), "メニュー", null, 0); // AVK_1 はアクセス キー、0xFBF6 は絵文字 menu->AppendItem("項目1", AVK_1, 0xFBF6); // AVK_2 はアクセス キー、0xFCF6 は絵文字 menu->AppendItem("項目2", AVK_2, 0xFCF6); // ハンドラを登録する menu->RegisterHandler(SREVT_MENU, HANDLER_BEFORE, HANDLER_FUNCTION(MenuHandler)); return; } // メニュー ハンドラ // ( メニューが選択されたとき、またはキャンセルされたときに起動する ) // 第 1 引数 : 所属クラス名 // 第 2 引数 : ハンドラの名前 // 第 3 引数 : result // 第 4 引数 : menu ( へのポインター ) HANDLER_IMPLEMENT_VOIDMENU(UserClass, MenuHandler, result, menu) { if (result == SRP16_ESCAPE) { // キャンセルされたとき TRACE("cancel"); } else { // メニューが選択されたとき( result に選択した項目の番号が入る ) TRACE("%s", SFRTextMenuPtr(menu)->GetTitle(result)); } }