Ejemplo n.º 1
0
 public virtual int RenderBackgroundEx(
     IntPtr htheme, IntPtr hdc,
     int partid, int stateid,
     NativeMethods.RECTCLS prect, ref NativeMethods.DTBGOPTS poptions)
 {
     return(Unhandled);
 }
Ejemplo n.º 2
0
        public override int RenderBackgroundEx(
            IntPtr htheme, IntPtr hdc,
            int partid, int stateid,
            NativeMethods.RECTCLS prect, ref NativeMethods.DTBGOPTS poptions)
        {
            switch ((Parts)partid)
            {
            case Parts.LVP_LISTDETAIL:
                CheckBoxState state;
                switch ((State.ListItem)stateid)
                {
                case State.ListItem.LISS_NORMAL:
                    state = CheckBoxState.UncheckedNormal;
                    break;

                case State.ListItem.LISS_SELECTEDNOTFOCUS:
                    state = CheckBoxState.CheckedNormal;
                    break;

                default:
                    return(Unhandled);
                }

                using (var ctx = CreateRenderContext(hdc, clip: null))
                {
                    CheckBoxRenderer.DrawCheckBox(
                        ctx.Graphics,
                        new Point(prect.Left, prect.Top),
                        state);
                }

                return(Handled);

            default:
                return(Unhandled);
            }
        }
Ejemplo n.º 3
0
        private void OnPaintThemed( PaintEventArgs e )
        {
            NativeMethods.RECT rect = new NativeMethods.RECT();

             rect.left   = ClientRectangle.Left;
             rect.top    = ClientRectangle.Top;
             rect.right  = ClientRectangle.Right;
             rect.bottom = ClientRectangle.Bottom;

             IntPtr hdc = new IntPtr();
             hdc = e.Graphics.GetHdc();

             if ( BackColor.ToKnownColor() != KnownColor.Window )
             {
            e.Graphics.ReleaseHdc( hdc );

            using ( SolidBrush backgroundBrush = new SolidBrush( BackColor ) )
            {
               e.Graphics.FillRectangle( backgroundBrush, ClientRectangle );
            }

            hdc = e.Graphics.GetHdc();

            IntPtr hTheme = NativeMethods.OpenThemeData( Handle, "Edit" );

            NativeMethods.DTBGOPTS options = new NativeMethods.DTBGOPTS();
            options.dwSize = (uint)System.Runtime.InteropServices.Marshal.SizeOf(options);
            options.dwFlags = NativeMethods.DTBG_OMITCONTENT;

            int state = NativeMethods.ETS_NORMAL;

            if ( !Enabled )
            {
               state = NativeMethods.ETS_DISABLED;
            }
            else
               if ( ReadOnly )
            {
               state = NativeMethods.ETS_READONLY;
            }

            NativeMethods.DrawThemeBackgroundEx( hTheme, hdc,
               NativeMethods.EP_EDITTEXT, state, ref rect, ref options );

            if ( IntPtr.Zero != hTheme )
            {
               NativeMethods.CloseThemeData( hTheme );
            }
             }
             else if ( Enabled & !ReadOnly )
             {
            IntPtr hTheme = NativeMethods.OpenThemeData( Handle, "Edit" );

            NativeMethods.DrawThemeBackground( hTheme, hdc, NativeMethods.EP_EDITTEXT,
               NativeMethods.ETS_NORMAL, ref rect, IntPtr.Zero );

            if ( IntPtr.Zero != hTheme )
            {
               NativeMethods.CloseThemeData( hTheme );
            }
             }
             else
             {
            IntPtr hTheme = NativeMethods.OpenThemeData( Handle, "Globals" );

            IntPtr hBrush = NativeMethods.GetThemeSysColorBrush( hTheme, 15 );

            NativeMethods.FillRect( hdc, ref rect, hBrush );

            if ( IntPtr.Zero != hBrush )
            {
               NativeMethods.DeleteObject( hBrush );
               hBrush = IntPtr.Zero;
            }

            if ( IntPtr.Zero != hTheme )
            {
               NativeMethods.CloseThemeData( hTheme );
               hTheme = IntPtr.Zero;
            }

            hTheme = NativeMethods.OpenThemeData( Handle, "Edit" );

            NativeMethods.DTBGOPTS options = new NativeMethods.DTBGOPTS();
            options.dwSize = (uint)System.Runtime.InteropServices.Marshal.SizeOf(options);
            options.dwFlags = NativeMethods.DTBG_OMITCONTENT;

            NativeMethods.DrawThemeBackgroundEx( hTheme, hdc,
               NativeMethods.EP_EDITTEXT, NativeMethods.ETS_DISABLED, ref rect, ref options );

            if ( IntPtr.Zero != hTheme )
            {
               NativeMethods.CloseThemeData( hTheme );
            }
             }

             e.Graphics.ReleaseHdc( hdc );
        }
Ejemplo n.º 4
0
        protected void OnPaintThemed( PaintEventArgs e )
        {
            NativeMethods.RECT rect = new NativeMethods.RECT();

             rect.left   = ClientRectangle.Left;
             rect.top    = ClientRectangle.Top;
             rect.right  = ClientRectangle.Right;
             rect.bottom = ClientRectangle.Bottom;

             IntPtr hdc = new IntPtr();
             hdc = e.Graphics.GetHdc();

             if ( BackColor.ToKnownColor() != KnownColor.Window )
             {
            e.Graphics.ReleaseHdc( hdc );

            using ( SolidBrush backgroundBrush = new SolidBrush( BackColor ) )
            {
               e.Graphics.FillRectangle( backgroundBrush, ClientRectangle );
            }

            hdc = e.Graphics.GetHdc();
             }
             else
             if ( Enabled & !ReadOnly )
             {
            IntPtr hTheme = NativeMethods.OpenThemeData( Handle, "Edit" );

            NativeMethods.DTBGOPTS options = new NativeMethods.DTBGOPTS();
            options.dwSize = (uint)System.Runtime.InteropServices.Marshal.SizeOf(options);
            options.dwFlags = NativeMethods.DTBG_OMITBORDER;

            NativeMethods.DrawThemeBackgroundEx( hTheme, hdc,
               NativeMethods.EP_EDITTEXT, NativeMethods.ETS_NORMAL, ref rect, ref options );

            if ( IntPtr.Zero != hTheme )
            {
               NativeMethods.CloseThemeData( hTheme );
            }
             }
             else
             {
            IntPtr hTheme = NativeMethods.OpenThemeData( Handle, "Globals" );

            IntPtr hBrush = NativeMethods.GetThemeSysColorBrush( hTheme, 15 );

            NativeMethods.FillRect( hdc, ref rect, hBrush );

            if ( IntPtr.Zero != hBrush )
            {
               NativeMethods.DeleteObject( hBrush );
               hBrush = IntPtr.Zero;
            }

            if ( IntPtr.Zero != hTheme )
            {
               NativeMethods.CloseThemeData( hTheme );
               hTheme = IntPtr.Zero;
            }
             }

             e.Graphics.ReleaseHdc( hdc );

             uint colorref = 0;

             if ( Enabled )
             {
            if ( ForeColor.ToKnownColor() != KnownColor.WindowText )
            {
               colorref = NativeMethods.RGB( ForeColor.R, ForeColor.G, ForeColor.B );
            }
            else
            {
               IntPtr hTheme = NativeMethods.OpenThemeData( Handle, "Globals" );
               colorref = NativeMethods.GetThemeSysColor( hTheme, 6 );
               if ( IntPtr.Zero != hTheme )
               {
                  NativeMethods.CloseThemeData( hTheme );
                  hTheme = IntPtr.Zero;
               }
            }
             }
             else
             {
            IntPtr hTheme = NativeMethods.OpenThemeData( Handle, "Globals" );
            colorref = NativeMethods.GetThemeSysColor( hTheme, 16 );
            if ( IntPtr.Zero != hTheme )
            {
               NativeMethods.CloseThemeData( hTheme );
               hTheme = IntPtr.Zero;
            }
             }

             int r = NativeMethods.GetRValue( colorref );
             int g = NativeMethods.GetGValue( colorref );
             int b = NativeMethods.GetBValue( colorref );

             StringFormat stringFormat = new StringFormat();
             stringFormat.Alignment = StringAlignment.Center;

             using ( SolidBrush textBrush = new SolidBrush( Color.FromArgb( r, g, b ) ) )
             {
            e.Graphics.DrawString( Text, Font, textBrush, ClientRectangle, stringFormat );
             }
        }