Click-through in C# Form

后端 未结 1 1080
挽巷
挽巷 2020-12-05 21:20

I\'ve created a semi-transparent form. I\'d like for people to be able to click on the form area, and for form not handle the click. I\'d like whatever is underneath the for

相关标签:
1条回答
  • 2020-12-05 21:45

    You can do this with SetWindowLong:

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

    There are a few magic numbers in here:

    • -20 – GWL_EXSTYLE

      Retrieves the extended window styles.

    • 0x80000 – WS_EX_LAYERED

      Creates a layered window.

    • 0x20 – WS_EX_TRANSPARENT

      Specifies that a window created with this style should not be painted until siblings beneath the window (that were created by the same thread) have been painted. The window appears transparent because the bits of underlying sibling windows have already been painted.

    There are numerous articles all over the web on how to do this, such as this one.

    0 讨论(0)
提交回复
热议问题