首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CMFCRibbonBar: GetEditText()不返回CMFCRibbonComboBox的实际编辑框文本,除非窗口失去焦点

CMFCRibbonBar: GetEditText()不返回CMFCRibbonComboBox的实际编辑框文本,除非窗口失去焦点
EN

Stack Overflow用户
提问于 2014-05-06 19:04:14
回答 1查看 346关注 0票数 2

我有一个带有“查找”面板的VS2008项目,其中包含一个可编辑的组合框以及一个向前和向后搜索按钮。当我按下搜索按钮时,GetEditText()返回一个过时的值。

代码语言:javascript
复制
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()访问的值缓冲区中

我注意到在VS2010中,CMFCRibbonPanel类中有一个SetFocused()成员,它可以用来窃取组合框中的焦点,并可能强制GetEditText()返回正确的值,但VS2008中缺少这个成员。

我现在已经没有办法处理这件事了。希望任何人都有线索。

EN

回答 1

Stack Overflow用户

发布于 2014-05-09 22:46:55

现在,在调用GetEditText()之前,我已经帮助自己创建了一个指向MDI子窗口的SetFocus()。但这肯定不是最好的变通办法!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23492943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档