 | | WideStudio/MWT Class Reference
| |
クラスの型
WSCpopupMenu
メソッド関数仕様
registerClient 関数の説明
- 書式
- long registerClient(WSCbase* client)
- 機能
- ポップアップメニューを表示したいインスタンスを
登録する関数です。この関数で登録すると、
そのインスタンス上でマウスの右ボタンが押されたとき、
マウスが押された場所にポップアップメニューが
表示されるようになります。
- 処理
- 引数に指定されたインスタンス上で右マウスボタンが押された
場合、そのマウスが押された場所にポップアップメニューが
表示されるようになります。
- 引数
-
(in)WSCbase* client | メニューを表示させたいインスタンス |
- 返値
- WS_NO_ERR= 正常、それ以外はエラー。
- 注意
- 2度以上、同じメニューに対して登録しないでください。また、
一度登録したインスタンスを解放(delete)する場合、
登録を解除( unregisterClient() 関数を参照)してから
解放してください。
WSCscrForm や WSClist、WSCsheet クラスにおいて
スクロールするエリア内でのポップアップメニューを使用する場合、
そのクラスに存在する getScrFrame()メソッドで取得された
内部のスクロールするエリアのインスタンスをregisterClient()
メソッドに指定してください。
- サンプル
-
//通常のクラスの場合
//初期化トリガでのイベントプロシージャの例です。
#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->setProperty(WSNmenuItemHeight,(WSCushort)20);
pmenu->setProperty(WSNshadowThickness,(WSCuchar)1);
pmenu->setProperty(WSNbackColor,"gray85");
pmenu->setProperty(WSNtopShadowColor,"gray95");
pmenu->setProperty(WSNbottomShadowColor,"gray55");
//ポップアップメニューのメニュー項目を指定します。
pmenu->setProperty(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);
}
//WSCscrForm クラスでの場合
//初期化トリガでのイベントプロシージャの例です。
#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->setProperty(WSNmenuItemHeight,(WSCushort)20);
pmenu->setProperty(WSNshadowThickness,(WSCuchar)1);
pmenu->setProperty(WSNbackColor,"gray85");
pmenu->setProperty(WSNtopShadowColor,"gray95");
pmenu->setProperty(WSNbottomShadowColor,"gray55");
//ポップアップメニューのメニュー項目を指定します。
pmenu->setProperty(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);
WSCscrForm* scrform = (WSCscrForm*)client->cast("WSCscrForm");
if (scrform == NULL){
return;
}
pmenu->registerClient(scrform->getScrFrame());
scrform->getScrFrame()->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* client)
- 機能
- クライアントとして登録されたインスタンスの登録を
解除する関数です。
- 処理
-
- 引数
-
(in)WSCbase* client | 登録を解除させたいインスタンス |
- 返値
- WS_NO_ERR= 正常、それ以外はエラー。
- 注意
- なし。
- サンプル
- registerClient() を参照してください。
onActivate 関数の説明
- 書式
- virtual void onActivate()
- 機能
- メニューが選択されたとき、この関数が実行されます。
派生クラスでは、トリガ(WSEV_ACTIVATE)による
イベントプロシージャを用いる代わりに、
この関数をオーバーライドすることでも、メニュー選択に関する
イベント処理を行うことができます。
- 処理
-
- 引数
- なし。
- 返値
- なし。
- 注意
- なし。
- サンプル
-
void new_class::onActivate(){
//メニューが選択された場合に行う処理を記述します。
//処理を派生元クラスに引き継ぎます。
old_class::onActivate();
}
getItems 関数の説明
- 書式
- long getItems()
- 機能
- メニュー項目数を取得する関数です。
メニュー項目のうち、カスケードされた部分はカウントされません。
- 処理
-
- 引数
- なし。
- 返値
- メニュー項目数。
- 注意
- なし。
- サンプル
-
long num = newpopu_000->getItems();
long i;
//全項目を選択可能状態に設定します。
for(i=0; i<num; i++){
newpopu_000->setItemSensitive(i,True);
}
setItemSensitive 関数の説明
- 書式
- long setItemSensitive(short no,WSCbool fl)
- 機能
- メニュー項目の操作属性を指定する関数です。
メニュー項目は、0から始まる数値で指定します。
一番上の項目から 0,1,2となり、
一番下の項目は(メニュー項目数-1) です。
指定された項目を選択可能にする場合 True,
選択不可能にする場合 False を指定します。
- 処理
-
- 引数
-
(in)short no | 0,1,2,... で指定されるメニュー項目 |
(in)WSCbool fl | 選択属性 |
- 返値
- WS_NO_ERR = 正常、WS_ERR = 存在しない項目が指定された場合。
- 注意
-
- サンプル
- getItems() を参照してください。
getItemSensitive 関数の説明
- 書式
- WSCbool* getItemSensitive()
- 機能
- メニュー項目の操作属性状態を配列で取得する関数です。
返却された WSCbool 型の配列には、
先頭から順にメニュー項目の操作属性が保持されます。
メニュー項目のうち、カスケードされた先の部分は
含まれません。
- 処理
-
- 引数
- なし。
- 返値
- 選択属性の配列
- 注意
- 返された領域を開放してはいけません。
- サンプル
-
long num = newpopu_000->getItems();
//全項目を選択可否属性を取得します。
WSCbool* statuslist = newpopu_000->getItemSensitive();
long i;
for(i=0; i<num; i++){
WSCbool status = statuslist[i];
printf("item=%d status=%d\n",i,status);
}
getValue 関数の説明
- 書式
- long getValue()
- 機能
- 現在選択されているメニュー項目のメニュー値を取得する関数です。
- 処理
-
- 引数
- なし。
- 返値
- 現在選択されているメニューの値。
- 注意
-
- サンプル
-
//選択された項目の選択値を取得します。
long val = newpopu_000->getValue();
setValueSensitive 関数の説明
- 書式
- long setValueSensitive(short value,WSCbool fl)
- 機能
- 指定したメニュー値の操作属性を指定する関数です。
指定された値と同じメニュー値を持つメニュー項目を探し、
その項目に指定された操作属性を設定します。
操作属性が True なら選択可能に、
False なら選択不可能になります。
- 処理
-
- 引数
-
(in)short value | 選択属性を指定したいメニューの値 |
(in)WSCbool fl | 選択属性 |
- 返値
- WS_NO_ERR = 正常、WS_ERR = 存在しない値が指定された場合。
- 注意
-
- サンプル
-
//指定された値を持つ項目の選択属性を設定します。
//例えば 100 のメニュー値を持つ項目を選択不可にする場合
newpopu_000->getValueSensitive(100,False);
addItem 関数の説明
- 書式
- long addItem(char* lb,char* op,char* shortc,long id,char* icon=NULL)
- 機能
- メニューを追加します。
- 処理
- 現在のメニューに新たな項目を追加します。
- 引数
-
(in)char* lb | 項目名 |
(in)char* op | 実行するイベントプロシージャ名 |
(in)char* shortc | ショートカットキー名 |
(in)long | 選択値 |
(in)char* icon | アイコンファイル名 |
アイコンファイル名には、画像ファイル名を指定します。アイコンフ
ァイル名は省略可能です。
- 返値
- WS_NO_ERR = 正常、それ以外はエラー。
- 注意
- なし。
- サンプル
-
//現在のメニューに新たなメニュー項目を追加します。
//メニュー項目が "新しい項目(A)"、イベントプロシージャ名が、"プロシージャ1"、
//ショートカットキーが、A キー、項目選択値が100の場合
newpopu_000->addItem("新しい項目(A)","プロシージャ1","A",100);
beginCascade 関数の説明
- 書式
- long beginCascacde(char* lb)
- 機能
- サブメニューの追加を宣言します。
- 処理
- 現在のメニューに新たなサブメニュー用の項目を追加します。
- 引数
-
- 返値
- WS_NO_ERR = 正常、それ以外はエラー。
- 注意
- 一度 beginCascade() 関数を呼び出した後は、
addItem( ) でメニュー項目追加後、endCascade() 関数を呼んで、
サブメニュー終了宣言をしなければなりません。
- サンプル
-
//現在のメニューに新たなサブメニュー項目の追加を宣言します。
newpopu_000->beginCascade("新たなサブメニュー");
newpopu_000->addItem("新しいサブ項目1(A)","プロシージャ1","A",101);
newpopu_000->addItem("新しいサブ項目2(B)","プロシージャ2","B",102);
newpopu_000->endCascade();
newpopu_000->setValueToggleMenu(101,True);//トグルメニュー指定
newpopu_000->setValueToggleState(101,True);//トグル選択状態設定
endCascade 関数の説明
- 書式
- long endCascacde(char* icon=NULL)
- 機能
- サブメニューの追加を終了します。
- 処理
-
- 引数
-
アイコンファイル名には、画像ファイル名を指定します。アイコンフ
ァイル名は省略可能です。
- 返値
- WS_NO_ERR = 正常、それ以外はエラー。
- 注意
- 一度 beginCascade() 関数を呼び出した後は、
addItem( ) でメニュー項目追加後、endCascade() 関数を呼んで、
サブメニュー終了宣言をしなければなりません。
- サンプル
- beginCascade() を参照してください。
setValueToggleMenu 関数の説明
- 書式
- long setValueToggleMenu(short value,WSCbool fl)
- 機能
- メニュー項目のトグル設定を行います。
- 処理
-
- 引数
-
(in)short value | 設定したいメニュー項目の選択値 |
(in)WSCbool fl | True の場合トグル、False の場合トグルで>ない |
- 返値
- WS_NO_ERR = 正常、それ以外はエラー。
- 注意
- メニュー項目確定後に使用してください。
- サンプル
- beginCascade() を参照してください。
setValueToggleState 関数の説明
- 書式
- long setValueToggleState(short value,WSCbool fl)
- 機能
- メニュー項目のトグルの選択状態の設定を行います。
- 処理
-
- 引数
-
(in)short value | 設定したいメニュー項目の選択値 |
(in)WSCbool fl | True の場合選択状態、False の場合選択状>態でない |
- 返値
- WS_NO_ERR = 正常、それ以外はエラー。
- 注意
- メニュー項目確定後に使用してください。
- サンプル
- beginCascade() を参照してください。
getValueToggleMenu 関数の説明
- 書式
- WSCbool getValueToggleMenu(short value)
- 機能
- メニュー項目のトグルの設定状態を取得します。
- 処理
-
- 引数
-
(in)short value | 取得したいメニュー項目の選択値 |
- 返値
- True=トグルである、False=トグルでない。
- 注意
- メニュー項目確定後に使用してください。
- サンプル
-
getValueToggleState 関数の説明
- 書式
- WSCbool getValueToggleState(short value)
- 機能
- メニュー項目のトグルの選択状態の取得します。
- 処理
-
- 引数
-
(in)short value | 所得したいメニュー項目の選択値 |
- 返値
- True=選択状態である、False=選択状態でない。
- 注意
- メニュー項目確定後に使用してください。
- サンプル
- beginCascade() を参照してください。
Document Release 3.98 For Use with WideStudio/MWT Release 3.98, Summer 2008 WideStudio/MWT Home | Up to Copyright(C) WideStudio/MWT Development Team, 1999-2008 | | Last modified: June 25, 2008 | |