6 返信 最新の回答 日時: Mar 27, 2006 5:23 PM ユーザー:(なや)

    listboxのダブルクリックイベント

    Level 1
      皆様、
      お世話になります。

      listboxについて教えて下さい。

      listbox上をダブルクリックした時のイベントを取得したいのですが、どのようにしたら良いのでしょうか?
      kWidgetListBoxWidgetNewBossを継承したBossを作成しIID_IEVENTHANDLERの実装も試してみましたが、まるで反応がありません。CellPane lでもだめでした。

      もしやリストのダブルクリックイベントを取ることはできないのでしょうか?
      SDKサンプル"PanelTreeView"のようにTreeViewでないとイベントは取れないのでしょうか?
      アドバイスよろしくお願いいたします。
        • 1. Re: listboxのダブルクリックイベント
          > もしやリストのダブルクリックイベントを取ることはできないのでしょうか?<br /><br />そうではないと思います。<br /><br />kWidgetListBoxWidgetNewBossの定義を見てみると、すでにIID_IEVENTHANDLER, kWidgetListBoxEHImplが集約されているのがわかりますよね。もしかしてデフォルトのイベントハンドラーの振る舞いを保つことが必要なのかも知れません。<br /><br />こんなことを試してみてはいかがでしょう。<br />* kWidgetListBoxWidgetNewBossから派生したボスにて、独自のイベントハンドラーはIID_IEVENTHANDLERのIIDで集約させる。<br />* 同じボスにて、kWidgetListBoxEHImplは、別のIID(例:IID_IORIGEVENTHANDLER)で集約させる。<br />* 独自のイベントハンドラーの実装では、まずInterfacePtr<IEventHandler> origEH(this, IID_IORIGEVENTHANDLER); でオリジナルのイベントハンドラーをクエリーし、同じメソッドにデレゲートしてから、独自の処理を行う。<br /><br />こんな感じでやってみてはいかがでしょうか。
          • 2. Re: listboxのダブルクリックイベント
            Norio Kawamura Level 4
            リストボックスでダブルクリック等のイベントを得ることは可能です。kListBoxEventHandlerImplを使用してみて下さい。
            • 3. Re: listboxのダブルクリックイベント
              Level 1
              例動問答様、kawamura様回答ありがとうございました。

              kawamuraさんのおっしゃるとおり、kListBoxEventHandlerImplを使ってみたところ、イベントを取ることができました。

              しかし、そうするとリスト部分が真っ白になり何も表示されなくなってしまいました。
              スクロールバーのサイズから推測するに、データはきちんと入っているようです、しかし何も表示されません。
              困りました。私の頭の中も真っ白になってしまいそうです。

              どうしたら良いのでしょうか?
              • 4. Re: listboxのダブルクリックイベント
                Level 1
                > 私の頭の中も真っ白になってしまいそうです。

                (笑)

                ディベロッパーサポートインシデントをあけていただくのがベストではないでしょうか?
                • 5. Re: listboxのダブルクリックイベント
                  Norio Kawamura Level 4
                  コードを見ないとなんとも言えないですが、以下も参照して下さい。
                  http://www.adobeforums.com/cgi-bin/webx?128@@.3bbdcf4c
                  • 6. Re: listboxのダブルクリックイベント
                    Level 1
                    ご回答ありがとうございました。

                    kawamuraさんご提供サイトに書いてあるとおり、WidgetListBoxWidgetNにではなくCellPanelWidgetに対してイベントハンドラーを実装すると、成功しま した。

                    これにで解決です。頭の中も元に戻りました。

                    ありがとうございました。