Solved

CSliderCtrl OwnerDraw

Posted on 1998-05-19
8
824 Views
Last Modified: 2013-11-20
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.
0
Comment
Question by:fmichaud061597
  • 4
  • 4
8 Comments
 
LVL 11

Expert Comment

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

.B ekiM

0
 

Author Comment

by:fmichaud061597
ID: 1312941
What is your suggestion?
0
 
LVL 11

Expert Comment

by:mikeblas
ID: 1312942
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
Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

 

Author Comment

by:fmichaud061597
ID: 1312943
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
 

Author Comment

by:fmichaud061597
ID: 1312944
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
 
LVL 11

Expert Comment

by:mikeblas
ID: 1312945
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
 

Author Comment

by:fmichaud061597
ID: 1312946
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
 
LVL 11

Accepted Solution

by:
mikeblas earned 50 total points
ID: 1312947
Good luck with your project.

.B ekiM

0

Featured Post

Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Expand LInux Boot partition remotly 3 90
CRON statement to run every 3 minutes except on Monday morning 12am to 2am 7 94
bigDiff challenge 17 104
lucky13 challenge 11 140
This is to be the first in a series of articles demonstrating the development of a complete windows based application using the MFC classes.  I’ll try to keep each article focused on one (or a couple) of the tasks that one may meet.   Introductio…
Introduction: Load and Save to file, Document-View interaction inside the SDI. Continuing from the second article about sudoku.   Open the project in visual studio. From the class view select CSudokuDoc and double click to open the header …
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
Migrating to Microsoft Office 365 is becoming increasingly popular for organizations both large and small. If you have made the leap to Microsoft’s cloud platform, you know that you will need to create a corporate email signature for your Office 365…

815 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

8 Experts available now in Live!

Get 1:1 Help Now