問題タブ [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.

0 投票する
1 に答える
425 参照

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サンプルからコードサンプルを取得しました。

サンプルプロジェクト

0 投票する
1 に答える
129 参照

visual-c++ - MFC: ツールバーのボタンをデフォルトでツールバーのボタン全体のサブセットに設定するために使用される方法は?

menu itemsすべてをに追加したいのですtoolbarが、デフォルトでそれらのサブセットのみを表示します (ユーザーがカスタマイズする必要はありません)。この方法では、すべてのメニュー項目の横にアイコンが表示されますが、ユーザーが追加しない限り、ほとんど使用されない項目はツールバーに表示されません。

可能であれば、それはどのように行われCMFCToolBarますか?