2010-05-09 17 views
5

Yarı saydam bir form oluşturdum. İnsanların form alanını tıklayabilmelerini ve formun tıklama işlemlerini gerçekleştirmemelerini istiyorum. Bunun yerine tıklama etkinliğini almak için formun altında ne varsa isterim.Tıklama yoluyla C# Formu

+0

olası kopyası [Visual C# Pencere Formları için saydamlıktan mı geçmeli?] (Http://stackoverflow.com/questions/112224/click-through-transparency-for-visual-c-window-forms) – Joey

+0

Altında ne olacak? form? – Ikaso

cevap

3

Sen SetWindowLong ile yapabilirsiniz:

int initialStyle = GetWindowLong(this.Handle, -20); 
SetWindowLong(this.Handle, -20, initialStyle | 0x80000 | 0x20); 

birkaç sihirli numaralar burada vardır:

  • -20 - GWL_EXSTYLE

    genişletilmiş pencere stilleri alır.

  • 0x80000 - WS_EX_LAYERED

    bir layered window oluşturur.

  • 0x20 - WS_EX_TRANSPARENT

    pencerenin altındaki kardeşler (aynı iş parçacığı tarafından oluşturulan bu) boyalı edilene kadar bu tarz ile oluşturulan bir pencere boyalı gerektiğini belirtir. Pencere şeffaf görünür, çünkü alttaki kardeş pencerelerin bitleri zaten boyanmıştır. Böyle this one gibi tüm bu nasıl yapılacağına ilişkin web üzerinden çok sayıda makale vardır

bulunmaktadır.

İlgili konular