2015-05-28 69 views
1

我正试图在我的应用程序的功能区栏上创建一个搜索框。 它应该在树形控件中搜索给定的文本,按下Enter按钮,但不会丢失它的焦点/选择。 当前我点击时输入它失去焦点,并让用户再次点击该搜索框以继续。明确地将焦点设置为CMFCRibbonEdit

我的搜索框是一个CMFCRibbonEdit控件。

任何人都可以帮忙吗?

在此先感谢。

+0

看到你试过的代码会有帮助。 – rrirower

+0

我没有编码设置焦点。 – Yogesh

回答

0

有同样的问题,解决方案有点痛苦。如果你看看CMFCRibbonEdit的来源,你会看到它有一个受保护的成员CMFCRibbonRichEditCtrl * m_pWndEdit;内部功能区代码使用m_pWndEdit-> SetFocus();将焦点置于编辑控件上。你可以从CMFCRibbonEdit派生一个类,使用类似

class CMyRibbonEdit : public CMFCRibbonEdit 
{ 
public: 
    void SetFocus() 
    { 
     m_pWndEdit->SetFocus(); 
    } 
}; 

但它有问题。值得注意的是,设置焦点会调用编辑窗口的命令处理程序,因此如果从该函数调用SetFocus,则很容易发生递归和堆栈错误。