1

したがって、ここでは、ボタンを作成し、ビットマップとテキストを配置してから、イベントハンドラーをフックするという簡単なセットアップを行います。

@scanButton = Wx::Button.new(self, -1, '', @@SCAN_BUTTON_POS, :size => @@SCAN_BUTTON_SIZE)
@scanBitmap = Wx::StaticBitmap.new(@scanButton, -1, bitmap, @@SCAN_BITMAP_POS)
@scanHint = Wx::StaticText.new(@scanButton, -1, 'Scan', @@SCAN_HINT_POS, :style => Wx::ALIGN_CENTER)

ここでのデフォルトの動作は、ボタンがテキストまたはビットマップ上にある場合でも(静的/フォーカス不可であるため)、ボタンの任意の場所をクリックすると、イベントが親(ボタン)に転送されることになると思います。ボタンがクリックされます。

代わりに、静的テキスト/静的ビットマップの境界の外側にあるボタンをクリックすることが、ボタンをクリックする唯一の方法です。ビットマップまたはテキストをクリックしても効果はありません。ビットマップ/テキストから親にイベントを転送しようとしましたが、それも機能しません。誰か提案はありますか?おそらく、私が知らないwxWidgetsのデフォルトの動作がいくつかありますか?

4

2 に答える 2

1

Wx :: BitmapButtonを使用しないのはなぜですか?http://wxruby.rubyforge.org/doc/bitmapbutton.html

「ヒント」には、@scanButtonhttp : //wxruby.rubyforge.org/doc/tooltip.htmlに関連付けられたWx::ToolTipを使用します。

于 2011-03-29T02:57:52.760 に答える
0

現在、これに対する答えはないようです。含まれているテキスト要素はマウスイベントをブロックします。ややハックな解決策は、必要なテキストがビットマップに埋め込まれているビットマップを含む単一のビットマップボタンを作成することです。これは、テキストが静的で変更されない場合にのみ機能します。

于 2011-08-01T20:22:53.417 に答える