2011-08-12 31 views
0

對不起,但我的英語非常糟糕。切換應用程序和焦點問題

我正在寫c winapi程序,我有一個問題。該程序有一個主窗口和NO DIALOG子窗口(控件)。控件直接連接到主窗口。當我將應用程序切換到另一個應用程序並再次返回時,焦點被設置爲主窗口,而不是切換前擁有焦點的控件。

我的消息循環是:

while ((rGetMessage = GetMessage(&msg, NULL, 0, 0)) != 0 && rGetMessage != -1) 
{ 
    if(!IsDialogMessage(hwnd_principal, &msg)) 
    { 
     TranslateMessage(&msg); 
     DispatchMessage(&msg); 
    } 
} 

什麼是我的錯誤?

我使用IsDialogMessage函數處理各種按鍵(如控件中的TAB鍵)。

+0

爲什麼在沒有對話框的情況下調用IsDialogMessage?這從提供的信息是無法猜測的。 –

回答

0

當您切換回您的應用程序時,Windows將默認將鍵盤焦點設置到其主窗口,而不管哪個窗口在停用時具有焦點。如果你想做一些不同的事情,你需要處理WM_ACTIVATE並使用SetFocus()來將焦點恢復到控制。