2015-05-28 70 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,則很容易發生遞歸和堆棧錯誤。