Wide Studio Object Reference

| Wide Studio Object Reference |
Wide Studio Home
Up to
  ## クラスの型 WSCpopupMenu ## メソッド関数仕様 ### registerClient 関数の説明 書式 long registerClient(WSCbase* client) 機能 ポップアップメニューを表示したいインスタンスを 登録する関数です。この関数で登録すると、 そのインスタンス上でマウスの右ボタンが押されたとき、 マウスが押された場所にポップアップメニューが 表示されるようになります。 同じメニューに同じインスタンスを二度以上登録してはいけません。 また、一度登録したインスタンスを解放する場合、あらかじめ unregisterClient 関数で登録を抹消しておく必要があります。 処理 引数に指定されたオブジェクト上で右マウスボタンが押された 場合、そのマウスが押された場所にポップアップメニューが 表示されるようになります。 引数
  (in)WSCbase* client | メニューを表示させたいオブジェクト

返値
  なし。
注意
  ２度以上、同じメニューに対して登録しないでください。また、 一度登録したオブジェクトを解放(デストロイ)する場合、 登録を抹消( 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->setPropertyV(WSNmenuItemHeight,(WSCushort)20);
        pmenu->setPropertyV(WSNshadowThickness,(WSCuchar)1);
        pmenu->setPropertyV(WSNbackColor,"gray85");
        pmenu->setPropertyV(WSNtopShadowColor,"gray95");
        pmenu->setPropertyV(WSNbottomShadowColor,"gray55");
        //ポップアップメニューのメニュー項目を指定します。
        pmenu->setPropertyV(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*)
  機能
    クライアントとして登録されたインスタンスの登録を 抹消する関数です。
  処理
  引数

    (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