簡體   English   中英

我想找出焦點在EN_KILLFOCUS之后的位置嗎?

[英]I want to find out where the focus belongs after EN_KILLFOCUS?

現在,我已經構建了這樣的應用程序:它運行在Internet瀏覽器的容器(IE,FireFox,Chrome等)中。 我的程序中有一個無模式對話框,該對話框包含一個CEdit控件。

這是我的問題:當用戶激活Edit控件以鍵入內容時,Edit控件將獲得焦點。 當編輯控件失去焦點時,我必須檢查輸入是否有效。 如果沒有,我將顯示一個模型對話框

AfxMessageBox

但是現在我無法確定我的編輯控件在我自己的應用程序中是否丟失。 因為編輯控件可能會通過很多方式失去焦點,例如,當用戶關閉瀏覽器時,當用戶打開文本程序時。 在這些情況下,我將跳過無效檢查。

任何人都可以告訴我如何找到編輯控件失去焦點的方式。

調用GetFocus(),查看焦點是否已回到線程中的另一個窗口。

HWND hwndFocus = ::GetFocus();
if (hwndFocus != 0 && ::GetWindowThreadProcessId(hwndFocus, NULL) == ::GetCurrentThreadId())
{
    // focus still in our thread
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM