0

私はこの文書を 5 時間も見つめています。ステップを接続することはできません。あなたたちが私にそのことを教えてくれるなら。

サイトは次のとおりです: http://msdn.microsoft.com/EN-US/library/bb983718(VS.110).aspx

だから私の問題は次のとおりです。コンストラクターを実装する場所と、CMFCToolbarComboBoxButton を使用する理由 手順 4 で、CFindComboButton というクラスを派生させるように求められたときです。代わりに、そのコンストラクターを作成する必要はありませんか?

-番号4(問題の番号付けが整理されていないことについて申し訳ありません)で、私がしたことは(クラスウィザードではなく)クラスの追加を使用してから、MFCクラスを選択しました。次に、CFindComboButton と想定される Base クラスを CMFCToolBarComboBoxButton として入力します。私はこれで何か間違ったことをしましたか?ID ID_EDIT_FIND_COMBO に対して何かする必要がありますか?

- ID_EDIT_FIND_COMBO を文字列テーブルに登録すると、何をしたのか正確にわかりません。将来の実装のためにIDを登録しただけですか?それとも何か他のものですか?

-手順 5 を実行できないため、手順 6 にスキップしました。求められているのは、CFindComboButton のプロパティのオーバーライド セクションで CreateCombo メソッドを探すことだけです。まあ、私は3つのオーバーライドしか見つけることができません。いずれも CreateCombo メソッドではありません。そこから、私が道に迷っていることがわかります。

私はmfcの初心者なので、それを考慮したいかもしれません。

4

2 に答える 2

1

あなたの質問は少し飛び上がっていますが、うまくいくように答えさせてください.

  1. CComboBox から派生したクラス (CFindComboBox と呼びます) と CMFCToolBarComboBoxButton から派生したクラス (CFindComboBoxButton と呼びます) の 2 つのクラスを作成します。最初のクラスは、ツールバーのドロップダウン ボタンをクリックしたときに表示される Combobox を実装します。このドロップダウン ボタンは、CFindComboBoxButton によって実装されます。これが明確であることを願っています。

  2. 次に、以下で説明する 3 つのパラメーターを使用して、CFindComboBoxButton のコンストラクターを CFindComboBoxButton(UNIT nID, int nImage, DWORD dwStyles) として定義します。

    • ID_EDIT_FIND_COMBO (または定義したいもの) になるボタンのコマンド ID。これは文字列テーブルで定義されます。ID として ID_EDIT_FIND_COMBO とプレースホルダー文字列を使用して、文字列テーブルに新しいエントリを追加するだけです。文字列値を省略しないでください。省略すると、ID が定義されません。文字列値はどこでも使用できないため、何でもかまいません。
    • 2 番目のパラメーターは、CCommandManager::GetCmdImage(ID_EDIT_FIND) への呼び出しです。これは、コンボボックスのドロップダウンを表示するために使用されるデフォルトの画像を返します。独自のカスタム イメージを使用する場合は、イメージを作成し、代わりにその ID を渡すことができます。
    • 3 番目のパラメーターは、使用するスタイルです。これらはhttp://msdn.microsoft.com/EN-US/library/7h63bxbe(v=vs.110).aspxで定義されていますが、既定値 (CBS_DROPDOWNLIST) を使用して開始できます。
  3. CMFCToolBarComboBoxButton の CreateCombo メソッドをオーバーライドし、その実装を CFindComboBoxButton に追加します。このメソッドでは、CFindComboBox (CComboBox 派生クラス) へのポインターを作成して返します。

これですべての混乱が解消されることを願っています。カスタム コンボボックスをツールバー内に埋め込む準備が整っているはずです。

于 2012-07-29T16:54:11.777 に答える
0

VisualStudioDemo サンプルを見てみましょう: http://msdn.microsoft.com/en-us/library/bb983983%28v=vs.90%29.aspx

そこにCFindComboButtonの実装があります

于 2013-07-11T08:11:57.457 に答える