Wide Studio Object Reference

Wide Studio Home
Up to

## クラスの型

WSCpopupMenu

## メソッド関数仕様

### registerClient 関数の説明

書式
  long registerClient(WSCbase* client)
機能
  ポップアップメニューを表示したいインスタンスを 登録する関数です。この関数で登録すると、 そのインスタンス上でマウスの右ボタンが押されたとき、 マウスが押された場所にポップアップメニューが 表示されるようになります。
処理
  引数に指定されたインスタンス上で右マウスボタンが押された 場合、そのマウスが押された場所にポップアップメニューが 表示されるようになります。
引数

  (in)WSCbase* client | メニューを表示させたいインスタンス

返値
  なし。
注意
  ２度以上、同じメニューに対して登録しないでください。また、 一度登録したインスタンスを解放(delete)する場合、 登録を解除( unregisterClient() 関数を参照)してから 解放してください。
サンプル

      //初期化トリガでのイベントプロシージャの例です。
      #include <WSCpopupMenu.h>
      void menu1_proc(WSCbase* client){
        //メニュー１が選択されると起動されます。
      }
      void menu2_proc(WSCbase* client){
        //メニュー２が選択されると起動されます。
      }
      void menu3_proc(WSCbase* client){
        //メニュー３が選択されると起動されます。
      }
      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,
             "メニュー１:menu1,メニュー２:menu2,メニュー３: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* client)
  機能
    クライアントとして登録されたインスタンスの登録を 解除する関数です。
  処理
  引数

    (in)WSCbase* client | 登録を解除させたいインスタンス

  返値
    なし。
  注意
    なし。
  サンプル
    registerClient() を参照してください。

  ### onActivate 関数の説明

  書式
    void onActivate()
  機能
    メニューが選択されたとき、この関数が実行されます。 派生クラスでは、トリガ(WSEV_ACTIVATE)による イベントプロシージャを用いる代わりに、 この関数をオーバーライドすることでも、メニュー選択に関する イベント処理を行うことができます。
  処理
  引数
    なし。
  返値
    なし。
  注意
    なし。
  サンプル

        void new_class::onActivate(){
          //メニューが選択された場合に行う処理を記述します。

          //処理を派生元クラスに引き継ぎます。
          old_class::onActivate();
        }

  Document Release 3.70
  For Use with Wide Studio Release 3.70, Spring 2004

  WideStudio Home | Up to

  Copyright(C) WideStudio Development Team, 1999-2004 |  | Last modified: May. 25, 2004