Example #1
0
        /// <summary>
        /// Методы, реализующие эффект прозрачного стекла
        /// </summary>
        /// <param name="msg"></param>
        protected override void WndProc(ref Message msg)
        {
            base.WndProc(ref msg); // Вызываем базовый метод

            if (Environment.OSVersion.Version.Major >= 6.0) // Если версия видовс больше 6 (то есть виста и выше, то будем обрабатывать сообщения для прозрачности)
            {
                const int WM_DWMCOMPOSITIONCHANGED = 0x031E;

                switch (msg.Msg)
                {
                    case WM_DWMCOMPOSITIONCHANGED:
                        if (!DwmApi.DwmIsCompositionEnabled()) // если режим aero не включен, зануляем область стекла
                        {
                            m_glassMargins = null;
                        }
                        break;
                }
            }
        }
Example #2
0
        private void OnClientArea()
        {
            ResetDwmBlurBehind();

            m_glassMargins = new DwmApi.MARGINS(0, 0, 0, 32); // устанавливаем отступы от края, которые будут прозрачными

            if (DwmApi.DwmIsCompositionEnabled()) DwmApi.DwmExtendFrameIntoClientArea(this.Handle, m_glassMargins); // если режим aero включён, задаём область где будет стекло

            this.Invalidate();
        }