Yapmaya çalıştığım şey çok basit ama üzerinde çok fazla bilgi yok gibi görünüyor. Temel olarak normal saydam olmayan bir ebeveyn pencerem var ve alt pencerenin içine bir çocuk penceresi (kendi şeffaf olmayan kontrolleri olan) yerleştirmek istiyorum. Yapmam gereken tek şey, çocuk penceresinin arka plan fırçasını şeffaf olarak ayarlamak ama yine de beyaz bir arka plan çizmektir. WS_EX_LAYERED stili ve SetLayeredWindowAttributes kullanılarak denendi, ancak alt pencere görünmez yapar.Saydam arka planı ayarlama Win32
cevap
Windows üzerinde "şeffaf" çocuk kontrolleri ulaşmak için iki temel yolu vardır: Üst pencerede
Kol WM_CTLCOLORxxx mesajlar. Bu, varolan denetimlerin saydamlığı desteklemesinin kolay bir yoludur. Her kontrol, kontrolün türüne uygun bir WM_CTLCOLORxxx mesajı gönderir. İletişim kutusunun arka plan rengini temsil eden bir fırça oluşturursanız ve bunu her iletiden döndürdüğünüzde, net efekt, her denetimin saydam bir dış alanla boyanmış gibi olur. Ancak, alfa efektleri istiyorsanız veya kontrollerin birbiriyle fiziksel olarak örtüşmesi durumunda bu başarısız olur. Üst pencerede WS_EX_COMPOSITED öğesini kullanın. Bu stil olmadan, pencere yöneticilerinin pencere yöneticilerinin sırasını boyaması, uygulamada, alttan üste doğru tanımsızdır. Alfa örtüşen kontroller örtüşen kontroller sonucu ... hoş olmayan olacaktır. WS_EX_COMPOSITED, çocuk pencerelerinin alttan üste boyanmasını sağlayacaktır. WS_CLIPCHILDREN veya WS_CLIPSIBLINGS stillerini kullanmadığınızdan emin olun, aksi durumda, üst üste binen alanların boyanması önlenir. Standart kontroller hala denemek ve iletişim-arka-gri ile onların tüm rect doldurmak için gidiyoruz olarak
Hala WM_CTLCOLORxxx mesajı ile akıllıca bir şey yapmak gerekir.
- 1. alertDialog arka planı saydam
- 2. Görev çubuğundaki uygulama simgesinin saydam bir arka planı var (UWA)
- 3. Pencerenin arka planı değiştirilemiyor
- 4. Android - Saydam arka planı atarken resim/görüntü düğmesi nasıl yerleştirilir?
- 5. UITableViewCell saydam arka plan
- 6. iPhone duvar kağıdını (kilitli ekran arka planı) programsal olarak ayarlama?
- 7. Saydam arka planla çizim kontrolü
- 8. WP7 simgesinin arka planı
- 9. Firefox'ta SVG arka planı
- 10. Alert ÇıkarmaDialog arka planı
- 11. Fotorama saydam arka plan
- 12. Swift Saydam Arka Planda Düğme Sınırı
- 13. Saydam Arkaplan
- 14. Başvuru ekranı aynı arka planı
- 15. Etkinlik arka planı siyah oluyor!
- 16. Görüntünün Arka Planı olarak ayarlanması
- 17. UserControl Animate Button'ın Arka Planı
- 18. Android'de klavye arka planı nasıl ayarlanır
- 19. Gif'i saydam arka plana sahip jpg'ye dönüştürün
- 20. UWP: MapControl Saydam arka plan
- 21. CSS saydam arka plan görüntüsü
- 22. UIWebView ios8 saydam arka plan
- 23. WPF: Bir düğme arka planı nasıl şeffaf yapılır
- 24. Imleç Konumunu bir Win32 Konsol Uygulamasında Ayarlama
- 25. Saydam olarak sunulan viewcontroller için saydam arka plan
- 26. Arka plan resmi ayarlama
- 27. JFrame nasıl saydam yapılır?
- 28. angular-nvd3 grafik arka planı rengini değiştirme
- 29. Video.js kullanarak tam video arka planı
- 30. Düzenleme başladığında UITextField arka planı değiştir
Mümkün Kopyalama: http://stackoverflow.com/questions/3970066/creating-a-transparent-window-in-c-win32 –
Nope. Şeffaf çocuk pencereleri ve şeffaf üst düzey pencereler için teknikler Windows'da tamamen farklıdır. –