問題タブ [ccombobox]

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 投票する
3 に答える
6302 参照

c++ - CComboBox の並べ替え

そのため、既存のアプリケーションで CPP の歯を削ろうとしています。

私はちょっとした障害に遭遇しました。以下に示すように、コンボボックスの項目が順番に追加されています。ただし、出力は

ここでCComboBoxのドキュメントを見てきました。それでも、なぜこれがこの結果を生み出しているのかについて、私はまだ混乱しています。

0 投票する
2 に答える
1830 参照

c++ - MFC の CComboBox に CString 以外のオブジェクトを追加する方法はありますか?

CStringメンバー変数を持つオブジェクトを に追加しようとしていますCCombobox。のリスト項目として文字列以外の別のメンバー変数を必要とするツールとインターフェイスしようとしているため、文字列を追加することはできませんCComboBox。以下は私がやろうとしていることです。

の文字列のみを表示したいのですmyOwnObjectが、オブジェクト全体をリストボックスに入れて、他のツールが他のメンバー変数に到達できるようにします。

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

c++ - オーバードロー プロパティを使用して CCombobox を作成中にデバッグ アサーションが失敗しました

次のコードで CCombobox を作成しようとしています:

しかし、「Debug Assertion Failed」というエラーメッセージが表示されます

ファイル:f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\winctrl1.cpp, Line 271 この問題は、フラグ付きの CCombobox を作成しようとした場合にのみ発生しますCBS_OWNERDRAWFIXEDOwner Drawn プロパティをfixedに設定して CCombobox をプログラムで作成する方法を教えてください。

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

c++ - CCombo Box ドロップダウンの幅を設定する方法

CCombo Boxの子孫であるクラスを使用しています。ドロップダウン リスト の最大許容幅を設定するにはどうすればよいですか?

私がインターネットサーフィンから結論付けたのは、CCombo Boxクラスにはそのようなメソッドがないということです。誰かがこの点で私を助けてください。

前もって感謝します。

0 投票する
0 に答える
604 参照

mfc - CComboBox::SetItemHeight() は、項目とコントロールの両方の高さを増加させます

の子孫であるクラスを使用していCComboBoxます。次のコードを使用しCComboBox::SetItemHeightてコンボボックス項目の高さを設定するメソッドを呼び出すと、問題が発生します。

アイテムの高さを設定しますが、コントロール (ドロップダウン リスト) の高さも増加し、新しい高さはダイアログ ボックスで設定した高さよりも大きくなります。次のコードも試しました。

しかし、それはアイテムの高さではなく、編集コントロールの高さを設定します。ドロップダウン リストの高さを乱さずにコンボボックス項目の高さを設定するにはどうすればよいですか?

0 投票する
0 に答える
269 参照

c++ - GetSel メソッドは、CEdit コントロールで常にゼロを返します

MFC アプリケーションでCEditは、ダイアログのコントロールがサブクラス化されます。別のダイアログには、そのテキスト ボックスに値を送信する数値キーパッドがあります。エディット コントロールでテキストが強調表示されている場合、GetSelメソッドは強調表示されているテキストの開始インデックスと終了インデックスを返し、これはキーパッドからの値に置き換えられます。これはうまくいきます。

サブクラスCEditがカスタムCComboBoxコントロールの一部になると、コンボボックスGetSelのコントロールのメソッドは常に 0 を返します。CEdit

原因と解決策が分からないようです。そして、どんな助けにも感謝します。ありがとう。

アップデート:

強調表示されたテキストを取得しようとするコードは次のとおりです。

コンボは次のようにサブクラス化されます。

そして CEdit コントロール:

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

c++ - CComboBox がドロップダウン時に CurSel を選択しない

ダイアログにアルファベット順に並べ替えられたコンボボックスがあります。このコンボには複数の文字列が含まれていますが、一部は大文字と小文字が異なって重複しています。つまり、「オン」と「オン」、「オフ」と「オフ」があります。これは冗長に思えるかもしれませんが、現時点では重要ではありませんが、理由があります。

重複は明らかに、大文字の文字列が最初にリストに次々と表示されます。すなわち:

オフ

オフ

オン

の上

ユーザーが「オン」(小文字) を選択すると、正しいインデックスが設定されCurSel、正しい文字列が表示されます。ただし、コンボボックスの矢印をクリックしてリストをドロップダウンすると、強調表示されませんCurSelが、その前の大文字の文字列が強調表示されます。以下の画像を参照してください。

これは、ドロップダウンで選択されたものです。

ドロップダウン前の選択項目

これは、ドロップダウンを展開するときにコンボボックスで選択されるものです。

ドロップダウン後に選択されたアイテム

メッセージをキャプチャしON_CBN_DROPDOWN、cursel 値を確認しましたが、期待どおりです。

また、このリスト内の文字列を大文字と小文字を区別して検索できるように、このコンボボックスを既にサブクラス化しています。これは、正常に実装されていないことがわかっているため、問題の原因である可能性があります。

しかし、この段階で文字列がcursel値をオーバーライドする理由がわかりませんか? CurSel値は、関連する項目を選択するために使用される値であってはなりませんか?

これを修正する方法についてのアイデアは大歓迎です。

編集:CBN_DROPDOWNを上書きし てメッセージをキャプチャしようとしましたOnWndMsg。このメッセージが表示されると、メニューをドロップダウンする前に、現在選択されている項目 (正しい項目) を取得します。次に、メニューをドロップして、SetCurSel以前に取得したものを呼び出します。

この種の機能は機能しますが、フォーカスを消すか、ドロップダウンの矢印をもう一度クリックしてドロップダウンを非表示にすると、テキスト ボックスに間違った項目が表示されます。これは有効な方法ですか、それとも私は完全にここから外れていますか? ドロップダウンが折りたたまれたときに送信されるメッセージは?

EDIT 2:コードプロジェクト から大文字と小文字を区別するコンボボックスを実装しましたが、うまく機能します。