As I have a lot of time on my hands, and am bored easily, I decided yesterday to reinvent the interface to my 3D modeller and go for a modern, Live Messenger sort of look and feel. I have also renamed the project Opus for no reason whatsoever.
I've had fun getting transparent controls to work. The projection buttons and the little cog top right and instances of a class I've called LiteButton which is basically an owner draw button. They can contain an icon, text, or an icon and text and the text can be centered in a text only button.
They can be set to always have a rectangle, like the projection buttons, or to just have a rectangle appear when mouse-overed. The rectangle goes darker when they are clicked and they send the WM_COMMAND message when the button is released within their client area, like standard buttons.
I wanted to avoid as much flicker as possible, so the main application window has WS_CLIPCHILDREN in its style. This has obviously led to much frivolity trying to get the background image to draw.
The solution, in the end, was to render the background image into an offscreen bitmap that gets resized when the window resizes, then BitBlt it to the main window in response to WM_PAINT. Since I now have this bitmap lying around, my lite button (and other controls I may produce) can call the application instance and request that the relevant area of the background is rendered to their DC prior to painting themselves. I've double-buffered this within the lite button class.
I'm a bit concerned though. I'm not sure how I'm going to handle using standard controls that have transparent areas like checkboxes or even normal buttons using the newer styles. I really don't want to delve into the UxTheme stuff unless I have to, so might have to piss about subclassing standard controls to handle painting them. Not sure.
But worthwhile because it looks pretty and is killing lots of time.
I've ported all the code for the actual views over from the old project, so pretty much as far along as I was with that now.
In other news, I got invited to an interview for a job as a Data Entry Clerk. Sounds wank but I am actually looking for something that is a) low paid, so my debt relief order can go ahead and b) low stress so I can keep making progress on my recovery from alcoholism (going okay BTW). May be a bit dodgy though - I got an email asking me to phone to arrange an interview, but when I rang it a voice said "Sorry, this service is no longer active". Emailed them back, we shall see.
Also, the wound in my face where they removed the cyst a week ago (picture) got infected and exploded so I'm having to attend the doctors every day to get the wound packed and dressed and taking loads of antibiotics. This does mean that if I manage to arrange an interview, I'll have to attend with a great big dressing on my face, but it will be a good ice-breaker.
That is all.
Check me out with my Web 2.0 buttons.
Quite proud of those. Drew them in Paint Shop Pro. Had a good look on Google Images to get some inspiration, but nice to have created the buttons myself. They go cyan on mouseover, the blue when selected and a separate image for the tool they select is layered over the top.
Again, basically owner-draw buttons, but pretty pretty pretty.
Nicked the cube logo off the net so may have to try to draw one myself at some point but not to worry for now.