我使用MFC文檔/視圖體系結構在C++中進行編程。我一直在努力實現類似MFC CEdit lose focus handler的東西。正如答案所示,我處理了消息EN_KILLFOCUS。子窗口(CEdit)失去焦點
基本上,我正在這樣做:我在視圖中繪製了文本。當用戶單擊視圖中文本的區域時,我將定位並在其上方顯示CEdit窗口,以便用戶能夠編輯文本。當編輯失去焦點時,我得到CEdit文本並將其保存在文檔中。然後使視圖無效。
但是,當視圖失去焦點時,我似乎只收到EN_KILLFOCUS消息。我必須在其他地方點擊,例如對接窗口或工具欄,以使CEdit失去焦點。我希望它發生在我在CEdit框外部的視圖上單擊任何其他位置時。
我正在用WS_CHILD樣式創建CEdit。我試過WS_POPUP,但仍然是同樣的問題。
任何幫助,將不勝感激。
嗯......我試過了。但它似乎並不奏效。如果整個觀點失去了重點,我仍然只會收到消息。 – l3utterfly
嗯..你是否把注意力集中在視圖的鼠標上?如果沒有,請在視圖的LButtonDown上調用SerFocus().. –
謝謝!那就是訣竅。但是,我發現,CEdit的子類化已經沒有意義了。我可以在父窗口OnCommand中處理EN_KILLFOCUS – l3utterfly