CSliderCtrl OwnerDraw

I subclassed CSliderCtrl with my new control CMySliderCtrl and I attempt to do OwnerDraw on it (change the thumb and background) but the control seems to never get in overriden OnDraw function member. I want explanation. Thanks in advance.
fmichaud061597Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

mikeblasCommented:
Slider controls don't support owner draw.  There's nothing to explain: the control just doesn't do it.

.B ekiM

0
fmichaud061597Author Commented:
What is your suggestion?
0
mikeblasCommented:
Sorry, I didn't see that you asked a multi-part question.

You have three choices:

1) Subclass the control and handle WM_PAINT yourself. If you need to paint some easy adornment, or some small extra shape, this is fine. Call the control's OnPaint() handler, and let it paint the control. Then, paint over what the control painted. The control double-buffers everything it paints, which means that if your painting routine is slow, you'll end up seeing flashing or flickering--especially while the user hot-tracks the control. If you

2) Subclass the control and completely paint the control yourself. This is lots more work than 1), but gives you far more control over exactly the way the control will look. You can draw any part of the control without worrying about ligning up with the way the control draws under all circumstances on every system.

3) Find a 3rd-party control that gives source code or has better provisions for owner draw.

.B ekiM


0
Cloud Class® Course: Amazon Web Services - Basic

Are you thinking about creating an Amazon Web Services account for your business? Not sure where to start? In this course you’ll get an overview of the history of AWS and take a tour of their user interface.

fmichaud061597Author Commented:
It is the first time I have to do that, so what is the exact procedures for your choice 2? It's fine to subclass the control but after, what should I override and how to invoke the custom drawing and where?
0
fmichaud061597Author Commented:
I have successfully drawn on the control, but the thumb have it's default RECT. How do I change this rect to a better one. There is only the member GetThumbRect().
0
mikeblasCommented:
You can draw in whatever rect you like: I don't know how you would define "better" for what you want to draw for the thumb. You don't have to draw in the rect returned by GetThumbRect().

.B ekiM
0
fmichaud061597Author Commented:
I have to define my new thumb, and when the left mouse button is down it should track with it, but actually the thumb seems to have kept his old rect. The result is that when I want to track it I must click on a tiny area instead of my new bitmap.
0
mikeblasCommented:
Good luck with your project.

.B ekiM

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
System Programming

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.