2

編集可能なコンボ ボックスと前方および後方検索ボタンを含む「検索」パネルを備えた VS2008 プロジェクトがあります。検索ボタンを押すとGetEditText()、古い値が返されます。

CMainFrame *pFrame = static_cast<CMainFrame*>(GetTopLevelFrame());
CMFCRibbonBar* pRibbon = pFrame->GetRibbonBar();
ASSERT_VALID(pRibbon);
CMFCRibbonComboBox* pFindCombobox = 
    DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_MY_FIND_COMBOBOX));

// this returns the last value before the combo box edit field got the focus:
pFindCombobox->GetEditText(); 

によってアクセスされる値バッファに編集フィールドの内容を「フラッシュ」する標準的な方法はありますGetEditText()か?

VS2010SetFocused()ではクラスにメンバーがありCMFCRibbonPanel、コンボボックスからフォーカスを盗み、おそらくGetEditText()正しい値を強制的に返すために使用できることに気付きましたが、VS2008 にはありません。

現在、これを処理する方法のアイデアが不足しています。誰もが手がかりを持っていることを願っています。

4

1 に答える 1

0

今のところ、SetFocus()を呼び出す前に、MDI 子ウィンドウに を追加しましたGetEditText()。しかし、それは確かに最善の回避策ではありません!

于 2014-05-09T14:46:55.177 に答える