ocx コントロールを配置した vb6 フォームがあります。フォームに NegotiateMenus を設定すると、ocx のコントロールが表示されます (これが必要です)。次に、独自のコントロールをフォームに追加します。そのコントロールにフォーカスがあると、ocx のメニューが消えます。
誰がフォーカスを持っているかに関係なく、常に ocx からメニューを表示したままにするにはどうすればよいですか?
ダン、私は何年も前に似たようなことをしようとしたことを覚えていますが、それを達成できませんでした. 私がやったことは、OCX コントロールのメニューと同じキャプションを持つ空のトップ レベル メニューを追加し、それを常に無効にすることでした。次に、OCX がフォーカスされたら、無効なメニュー項目を非表示にして、OCX をクリックするとメニュー項目が有効になったかのように見せます。これにより、メニューが表示されたり消えたりするたびに見苦しいジャンプがすべて保存されます (明らかに、OCX がフォーカスを失うと、無効なメニューが再び表示されます)。
それでもメニュー項目を有効にしたい場合は、それをフォームに正確に複製し、Ocx がアクティブなときにそのバージョンを非表示にする必要があります (OCX で利用可能な機能を複製するために、すべての独自のイベントを配線する必要もあります)。 .
私が知っている限り、これを行う簡単な方法はありません。
申し訳ありませんが、これ以上役に立ちません。