2008-09-08 21 views
2

Uygulamamda, üzerinde küçük iletilerle açılan bir pencerem var (araç ipucuna benziyor). Bu pencere, alfa arka planlarını çizmek için katmanlı özniteliklerini kullanır.MFC'de etkileşimli olmayan bir pencere nasıl oluşturulur

Bu pencerelerden birkaç tanesini birden açarsam ve fareyle bir tıklatırsam, kaybolduğunda uygulamamın odağı kaybetmesine neden olurlar. geçerli olanın arkasındaki uygulama).

Penceremdeki herhangi bir etkileşimi nasıl durdurabilirim?

void CMyWindow::OnSetFocus(CWnd* pOldWnd) 
{ 
    if (pOldWnd != NULL) 
    { 
     pOldWnd->SetFocus(); 
    } 
} 

hileye neden olabilir:

cevap

1

hiç şansım WM_NCACTIVATE mesajla oynadıktan sonra, ben WM_SETFOCUS mesajı overrode. Yine de neden işe yaramadı! Yorumlar bu konuya hoş geldiniz.

1

OnSetFocus (On * yöntemlerinin birçoğu gibi), gerçekte bir eylemi gerçekleştirmeden önce bir eylemi önceden boşaltma şansı vermesi nedeniyle çalışır. Odak hiçbir zaman etkileşimli olmayan pencerenize geçmez.