Windows Develop Bookmark and Share   
 index > Windows Forms General > The wheel...rediscovered (Custom Scrollbars)
 

The wheel...rediscovered (Custom Scrollbars)

Hi,

I have just developed a set of components, a custom scrollbar (don't yawn just yet) and a custom scrollable control

The custom scrollbars areused in a virtual sense within the scrollable control rather than usedas composites as this seems to improve performance generally, however the scrollbars can also be used standalone.

The scrollbars don't use the V/HScrollProperties as the values are integral to the bars themselves.

The scroll components can be totally modified and provide floating point precision.

The components by default render their interface almost identically to that of the Vista explorer theme/styles.

The intrinsic elements such as buttons, their glyphs/icons andanimation are totally tweakable.

The scrollable control manages painting of the scrollbars seperately to the rendering of the client area allowing normal use of the paint event (overridden or otherwise) without the need to be concerned with location/position.

The scrollable control and standalone versions of thescrollbar (V/H)both derrive from theWindows.Forms.Control

The controls have been developed explicity for user drawn rendering rather than to support other stock ui elements, however, one prototype of this control does seem capable of working as such.

What would seem clear is that the control(s) may serve useful forotherimplementations such asgame UI'sor high contrast applications for specialised needs etc...

I want to use the custom scroll componentsto replace thecustom tree and data grid components I have created which currently use the Windows.Forms.ScrollableControl

More Information

The components are created using just managed code without interop calls toGDI.

The components are not 100% complete (Scrollbar gutters) but are now at a stage where I could do with some help testing and refining and willing to share this development with another developer/programmer in the hope that it can be improved.

I have just moved the animation processing to another thread and this has made the overall response even better.

I am interested in using WM_NCPAINT rather than rendering the elements in the client area of the control, yet so far, it would seem this is not entirely necessary.

Hopefully somebody might be interested in sharing this development in return for some insights and improvements.

Is there a testing platform/forum available?

Cheers.

яeverser  Sunday, March 16, 2008 5:31 PM
Giorgi Dalakishvili  Sunday, March 16, 2008 6:59 PM

Thanks Giorgi, interesting site and one I had not come across before.

However, I think the open source route would be giving away literally hundreds of hours of work too quickly and too easily.

I think I willstart a project there (if time allows it) and see if if an open source approach brings with it some new ideas.

I am going to start a new post/topic here on the WM_NCPAINT approach as I am interested to see if this really has any benefit.

I have had several goes at attempting to use WM_NCPAINT, but the end results are poor. Obviously I am doing something wrong but the examples out there (codeproject, syncfusion etc) all have very misleading concepts about the task. I need something simple to study, i.e setting the non client area of a control and painting it and still keep double buffered rendering etc.

яR

яeverser  Monday, March 17, 2008 12:56 AM
Giorgi Dalakishvili  Sunday, March 16, 2008 6:59 PM

Thanks Giorgi, interesting site and one I had not come across before.

However, I think the open source route would be giving away literally hundreds of hours of work too quickly and too easily.

I think I willstart a project there (if time allows it) and see if if an open source approach brings with it some new ideas.

I am going to start a new post/topic here on the WM_NCPAINT approach as I am interested to see if this really has any benefit.

I have had several goes at attempting to use WM_NCPAINT, but the end results are poor. Obviously I am doing something wrong but the examples out there (codeproject, syncfusion etc) all have very misleading concepts about the task. I need something simple to study, i.e setting the non client area of a control and painting it and still keep double buffered rendering etc.

яR

яeverser  Monday, March 17, 2008 12:56 AM

You can use google to search for other answers

Custom Search

More Threads

• Main Application Window
• Form Load Event Exception where to catch (C# window based Application)
• Windows Service
• Dragging an object at runtime.
• Add amount entered to exisitng balance using Windows Form
• form throw a thread
• ++ operator increment on vb.net
• My exe runs fine from my work machine, but blows up at home
• Loading a TreeView Dynamicly with images from imagelist built on runtime
• How Can I Disable the VisualStyles From One Control ??