 | | Wide Studio Object Reference
| |
クラスの型
WSCpopupMenu
メソッド関数仕様
registerClient 関数の説明
- 書式
- long registerClient(WSCbase* client)
- 機能
- ポップアップメニューを表示したいインスタンスを
登録する関数です。この関数で登録すると、
そのインスタンス上でマウスの右ボタンが押されたとき、
マウスが押された場所にポップアップメニューが
表示されるようになります。
同じメニューに同じインスタンスを二度以上登録してはいけません。
また、一度登録したインスタンスを解放する場合、あらかじめ
unregisterClient 関数で登録を抹消しておく必要があります。
- 処理
- 引数に指定されたオブジェクト上で右マウスボタンが押された
場合、そのマウスが押された場所にポップアップメニューが
表示されるようになります。
- 引数
-
(in)WSCbase* client | メニューを表示させたいオブジェクト |
- 返値
- なし。
- 注意
- 2度以上、同じメニューに対して登録しないでください。また、
一度登録したオブジェクトを解放(デストロイ)する場合、
登録を抹消( unregisterClient() 関数を参照)してから
解放してください。
- サンプル
-
//初期化トリガでのイベントプロシージャの例です。
#include <WSCpopupMenu.h>
void menu1_proc(WSCbase* client){
//メニュー1が選択されると起動されます。
}
void menu2_proc(WSCbase* client){
//メニュー2が選択されると起動されます。
}
void menu3_proc(WSCbase* client){
//メニュー3が選択されると起動されます。
}
void init_event_proc(WSCbase* client){
//ポップアップメニューの生成
WSCpopupMenu* pmenu = new WSCpopupMenu(NULL,"menu");
pmenu->initialize();
//ポップアップのプロパティを設定します。
pmenu->setPropertyV(WSNmenuItemHeight,(WSCushort)20);
pmenu->setPropertyV(WSNshadowThickness,(WSCuchar)1);
pmenu->setPropertyV(WSNbackColor,"gray85");
pmenu->setPropertyV(WSNtopShadowColor,"gray95");
pmenu->setPropertyV(WSNbottomShadowColor,"gray55");
//ポップアップメニューのメニュー項目を指定します。
pmenu->setPropertyV(WSNmenuItems,
"メニュー1:menu1,メニュー2:menu2,メニュー3:menu3");
WSCprocedure*
pmop = new WSCprocedure("menu1",WSEV_NONE);
pmop->setFunction(menu1_proc,"_menu1_proc");
pmenu->addProcedure(pmop);
pmop = new WSCprocedure("menu2",WSEV_NONE);
pmop->setFunction(menu2_proc,"menu2_proc");
pmenu->addProcedure(pmop);
pmop = new WSCprocedure("menu3",WSEV_NONE);
pmop->setFunction(menu3_work,"menu3_proc");
pmenu->addProcedure(pmop);
pmenu->registerClient(client);
client->setUserData("popmenu",(void*)pmenu);
}
void delete_event_proc(WSCbase* client){
WSCpopupMenu* pmenu = (WSCpopupMenu*)client->getUserData("popmenu");
pmenu->unregisterClient(client);
delete pmenu;
client->setUserData("popmenu",(void*)NULL);
}
unregisterClient 関数の説明
- 書式
- long unregisterClient(WSCbase*)
- 機能
- クライアントとして登録されたインスタンスの登録を
抹消する関数です。
- 処理
-
- 引数
-
(in)WSCbase* client | 登録を抹消させたいオブジェクト |
- 返値
- なし。
- 注意
- なし。
- サンプル
- registerClient() を参照してください。
onActivate 関数の説明
- 書式
- void onActivate()
- 機能
- メニューが選択されたとき、この関数が実行されます。
派生クラスでは、トリガ(WSEV_ACTIVATE)による
イベントプロシージャを用いる代わりに、
この関数をオーバーライドすることでも、メニュー選択に関する
イベント処理を行うことができます。
- 処理
-
- 引数
- なし。
- 返値
- なし。
- 注意
- なし。
- サンプル
-
void new_class::onActivate(){
//メニューが選択された場合に行う処理を記述します。
//処理を派生元クラスに引き継ぎます。
old_class::onActivate();
}
Document Release 3.20 For Use with Wide Studio Release 3.20, Winter 2002 WideStudio Home | Up to Copyright(C) T. Hirabayashi, 1999-2002 | | Last modified: Nov. 28, 2002 | |