WideStudio/MWT Class Reference

WideStudio/MWT Home
Up to


クラスの型

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)
機能
サブメニューの追加を宣言します。
処理
現在のメニューに新たなサブメニュー用の項目を追加します。
引数
(in)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)
機能
サブメニューの追加を終了します。
処理
引数
(in)char* icon アイコンファイル名
アイコンファイル名には、画像ファイル名を指定します。アイコンフ ァイル名は省略可能です。
返値
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