Transparent for mouse messages ProgressBar control

    /// <summary>

    /// ProgressBar, отличается от WinForms, только тем, что

    /// Control "прозрачен" для сообщений мыши

    /// </summary>

    public partial class ProgressBar : System.Windows.Forms.ProgressBar

    {

 

        private const int WM_NCHITTEST = 0x0084;

        private const int HTTRANSPARENT = -1;

 

        public ProgressBar()

        {

            InitializeComponent();

        }

 

 

        /// <summary>

  /// В ответ на действия пользователя мышью, перед тем как послать  

  /// мышиное сообщение, система посылает сообщение WM_NCHITTEST,

  /// обрабатывая которое можно сделать control,

        /// который был бы прозрачным для сообщений мыши

        /// </summary>

        /// <param name="m">message</param>

        protected override void WndProc(ref Message m)

        {

            if (m.Msg == WM_NCHITTEST) m.Result = (IntPtr)HTTRANSPARENT;

                else base.WndProc(ref m);

        }

    }

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s