問題タブ [cmfctoolbar]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
winapi - MFC: CMFCToolBarComboBoxButton を CMFCToolBar に表示するにはどうすればよいですか?
簡単にできると思っていたことが仕事にならない。ComboBox を に表示するにはどうすればよいCMFCToolBar
ですか? これが私がやったことですが、うまくいきません(つまり、元のプレースホルダーボタンに円が付いているだけです(グレー表示されています))。
1 - リソース エディターのツールバーにボタンを追加し、ID_EDIT_FIND_COMBO という ID を付けました (使用中であることを知るために丸も入れました)。
2-メッセージマップと以下の関数CMainFrame
に追加しました:ON_REGISTERED_MESSAGE(AFX_WM_RESETTOOLBAR, OnToolbarReset)
OnToolbarReset()
それReplaceButton()
がそれを置き換えたと言って1を返します。
私は何が欠けていますか?
明確にするために、MSが行うように言っているのは、上記で行われていることです。
1 - 親ツールバー リソース内のボタンのダミー リソース ID を予約します。Visual Studio でツールバー エディターを使用してボタンを作成する方法の詳細については、ツールバー エディターの記事を参照してください。
2 - 親ツールバーのすべてのビットマップ内のボタンのツールバー イメージ (ボタン アイコン) を予約します。
3 - AFX_WM_RESETTOOLBAR メッセージを処理するメッセージ ハンドラーで、次の手順を実行します。
を。CMFCToolbarButton の派生クラスを使用して、ボタン コントロールを構築します。
b. CMFCToolBar::ReplaceButton を使用して、ダミー ボタンを新しいコントロールに置き換えます。ReplaceButton はボタン オブジェクトをコピーし、そのコピーを維持するため、スタック上にボタン オブジェクトを作成できます。
ティア!!
動作しないサンプル プロジェクトを次に示します。コンボボックスではなく、ツールバーのボタンのみ。MSサンプルからコードサンプルを取得しました。
visual-c++ - MFC: ツールバーのボタンをデフォルトでツールバーのボタン全体のサブセットに設定するために使用される方法は?
menu items
すべてをに追加したいのですtoolbar
が、デフォルトでそれらのサブセットのみを表示します (ユーザーがカスタマイズする必要はありません)。この方法では、すべてのメニュー項目の横にアイコンが表示されますが、ユーザーが追加しない限り、ほとんど使用されない項目はツールバーに表示されません。
可能であれば、それはどのように行われCMFCToolBar
ますか?