2011-10-13 54 views
2

これは些細なことですが、MFCではいつも私のワークフローを止めるばかげた些細な問題に終わります。コンボボックスに文字列を追加できないのはなぜですか?

_AFXCMN_INLINE int CComboBoxEx::AddString(LPCTSTR lpszString) 
    { UNUSED_ALWAYS(lpszString); ASSERT(FALSE); return CB_ERR;} 

私はそうのように初期化時にコンボボックスにいくつかの文字列を追加しようとしています:

BOOL myDialog::OnInitDialog() 
{ 
    CDHtmlDialog::OnInitDialog(); 
    cb_direction.AddString(CString("North")); 
} 

は、私はエラーがafxcmn2.inlライン352を指して、「デバッグアサートに失敗しました」取得しています

Googleの答えのほとんどは、AddStringがOnInitDialogの前に起こっていることを示唆しているようですが、ここではそうではありません。 Googleで答えの別のシリーズは、データ交換が起きていないか、それは間違っている示唆してますが、そうではありません。

void myDialog::DoDataExchange(CDataExchange* pDX) 
{ 
    CDHtmlDialog::DoDataExchange(pDX); 
    DDX_Control(pDX, IDC_WHEDIT_DIR, cb_direction); 
} 

もう一つの提案は、コンボボックスがまだ作成されていないということでしたが、私は使用してコンボボックスを無効にした場合次のコードは、私はエラーを取得しないだけでなく、実際に動作し、ボックスを無効にします!

BOOL myDialog::OnInitDialog() 
{ 
    CDHtmlDialog::OnInitDialog(); 
    cb_direction.EnableWindow(FALSE); 
} 

解決策をクリーンアップして再構築しました。他に何が欠けているのか分かりません。私がしたいのは、.Net(このプログラムは何年か前に書かれたもので、これは.NETではなくMFCに入っている理由ですが、私は逃げ出します)のコンボボックスに文字列を追加するだけです。 。

+0

CComboBoxExは、画像をアイテムに関連付けます。代わりにInsertItem()メソッドを使用します。 –

答えて

1

あなたは方法が何をしているかを見れば、そこにはASSERT(FALSE)があるので、不思議ではありません。 ComboBoxExコントロールにアイテムが追加されたことを示すものではありません。 Per the docs

この関数は、Windows ComboBoxExコントロールではサポートされていません。このコントロールの詳細については、Platform SDKのComboBoxExコントロールを参照してください。

ドキュメントは、これはいつか誰かを助けるかもしれない、知っているあなたの友人:)少し遅れてゲームを入力

+0

+1は「ドキュメントはあなたの友人です」 –

+0

@トーマス:何らかの理由で人々は最初にそこに目を向けるようには思われません。比較的珍しいハードウェアにインターフェイスを書き込むシステムグループで働いていると思います。フォーラムでのヘルプの質問は、通常はオプションではありません。マニュアルがあります。 –

+0

通常のコンボボックスを使用するだけで、プロパティの「データ」設定を見ることができ、実際に動的に変更する必要がないため、静的な文字列値を静的に残しました。哲学の授業に感謝します。 – alex

4

しかし、次のとおりです。

COMBOBOXEXITEM item; 
    ZeroMemory(&item, sizeof(item)); 
    item.mask = CBEIF_TEXT; 
    item.iItem = 0; 
    item.pszText = _T("Hello"); 
    m_ComboEx.InsertItem(&item); 

FWIWを、AddString()機能がから削除されますCComboExコントロールの目的はアイテム(イメージ、identation、何でも...)ではなく、まっすぐな通常のテキストアイテムを表示することです。

+0

ありがとう、InsertString()は私のためにWTL内で動作します – sailfish009

関連する問題