ben MSDN açıklamasını bulabilirsiniz. Bu yüzden aktif bir pencere olarak arka plan penceresine sahip olmak teknik olarak mümkündür ancak kafa karıştırıcıdır ve sistem bunu sizin için yapmaz, bunun yerine uygulamanızın ör. Arka plan penceresini etkin hale getirmek için SetWindowPos.
Sistem, bir defada yalnızca bir üst düzey aktif pencereye sahip olabilir, sistem bir alt pencerede çalışıyorsanız üst düzey pencereyi etkinleştirir. Tüm giriş daha sonra aktif pencereye yönlendirilir ve daha sonra normal olarak çocuk penceresine iletilir. MSDN'den
Etkin Pencere
aktif pencere kaynaktan
/----------------------\
| |
| FOREGROUND WINDOW |--\
| | |
\----------------------/ |
| BACKGROUND WINDOW |
\-----------------------/
/----------------------\
| |
| ACTIVE WINDOW |--\
| | |
\----------------------/ |
| BACKGROUND WINDOW |
\-----------------------/
kullanıcı şu anda çalışmakta olduğu uygulamanın üst düzey penceredir. Kullanıcının aktif pencereyi kolayca tanımasını sağlamak için sistem, z-sırasının en üstüne yerleştirir ve başlık çubuğunun rengini değiştirir ve sistem tanımlı aktif pencere renklerine sınırlar. Sadece en üst düzey bir pencere aktif bir pencere olabilir. Kullanıcı bir çocuk penceresi ile çalışırken, sistem alt pencere ile ilişkili üst düzey ana pencereyi etkinleştirir.
ön/arka
Her bir işlem yürütme birden fazla parçacığı olabilir, ve her bir iplik pencere oluşturabilir. Kullanıcının çalıştığı pencereyi oluşturan iş parçacığı, ön plan iş parçacığı olarak adlandırılır ve pencereye ön plan penceresi denir. Tüm diğer iş parçacıkları arka plan iş parçacıklarıdır ve arka plan iş parçacıklarının oluşturduğu pencereler arka plan pencereleri olarak adlandırılır.
Bu, doğru cevaptır. Okumak için yararlı olan [bu blog yazısı] (http://blogs.msdn.com/b/oldnewthing/archive/2008/10/06/8969399.aspx). – Ruslan
Tam olarak doğru değil, bir arka plan iş parçacığından 'GetActiveWindow' işlevini 'NULL' döndürüyor. Bir arka plan iş parçacığı penceresi ön plan penceresini oluşturmadan etkinleştirilebilir (örneğin, gereksinimlerini karşılamadan "SetForegroundWindow" ifadesini çağırarak) veya bir uygulamayı başlatma ile uygulama arabirimini gösteren uygulama arasında başka bir uygulamaya geçiş yaparsanız. Ancak, etkin pencere hakkında neredeyse haklısınız: Aktif pencere, uygulama veya işlem başına değil, ** iş parçacığı ** (veya girdiye bağlı iş parçacığı grubu) başına sanallaştırılmıştır. – IInspectable
Kabul ettiğim önceki cevap daha sonra düzenlenmişti ve şimdi benim için çok az şey ifade ediyor. Bu yüzden kabul ettiğim cevabı 5 ve 1/2 yıl sonra değiştirdim !!!!!!!!!!!!!!!!!!!!!! – JavaMan