|
hello,
how do i retrieve this particular system color (see link). ive tried GetSysColor() with every possible parameter, but no luck (color depends on the selected theme) .
thanks in advance for any post!
http://www.uidesign.de/images/xp_themes.jpg
|
|
|
|
|
If you are pointing to the border colour, it looks a lot like
GetSysColor (COLOR_3DSHADOW) to me.
Iain.
|
|
|
|
|
hello iain,
thank you very much for your reply. you are right i am pointing to the border color but with GetSysColor (COLOR_3DSHADOW) i always get the same color (gray) on every xp color scheme. as you can see in the screenshot this color ist on every color scheme different.
any other ideas?
|
|
|
|
|
For what it is worth, Iain is right. That is certainly a valid way to produce the colors you are looking for.
If you are still having issues, it sounds to me like something else is overwriting the color you are looking for. As a test, you may consider changing the line from GetSysColor(COLOR_3DSHADOW) to RGB(255,0,0) - bright red - to see if it actually turns to red. If it is still grey, you've found that something else is changing it to grey...
Anyway - GetSysColor(COLOR_3DSHADOW) is the way to go...
Marcus Spitzmiller
"Why must life be so hard? Why must I fail at every attempt at masonry?" - Homer
|
|
|
|
|
hi marcus, thank you for your reply.
ive changed GetSysColor(COLOR_3DSHADOW) to RGB(255,0,0) and it turns to red just as it should.
GetSysColor(COLOR_3DSHADOW) does not return a blue color on a themed xp system with color scheme blue. it returns a grey color, wich on any scheme is the same.
i would like to have this color to draw my own border around my splitted views. CSplitterWnd draws it only in classic look (3d border). and this looks ugly to me.
dude77
|
|
|
|
|
I think I see what you are getting at now.
I'm not sure that this is what you are looking for, but I think it might be one of these. If not, sorry I can't be more help...
GetSysColor(COLOR_GRADIENTACTIVECAPTION)
GetSysColor(COLOR_ACTIVECAPTION)
Marcus Spitzmiller
"Why must life be so hard? Why must I fail at every attempt at masonry?" - Homer
|
|
|
|
|
GetSysColor(COLOR_GRADIENTACTIVECAPTION) and GetSysColor(COLOR_ACTIVECAPTION) both return a color which is is on every xp color scheme different. but it is not the exact color i am looking for.
i think Iain pointed it already out. it has to be something with xp drawing...but i dont know very much about it.
nevertheless thank you for taking your time. your help was very welcome.
|
|
|
|
|
I've just experimented with different colours, and I get different values for GetSysColor (COLOR_3DSHADOW).
BUT...
I am using W2K, and changing the Colour Scheme in the Appearance page of Display Properties.
It is possible that XP is not updating the Scheme when the Theme is changed. They even rhyme!
But I would say this is *very* unlikely...
I'll have a look on my XP machine at home tonight, and see what happens.
Iain.
|
|
|
|
|
I've been experimenting, and made a small SDI application.
I added the following code to the OnDraw method of the view:
void CColourTestView::OnDraw(CDC* pDC)
{
CColourTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CRect rc;
GetClientRect (&rc);
pDC->FillSolidRect (&rc, RGB(255,0,0));
rc.DeflateRect (20,20);
pDC->FillSolidRect (&rc, GetSysColor (COLOR_3DSHADOW));
}
On 2000, changing the colours gets reflected in the view.
Most colours are grey, but it does work.
In XP, if you choose Windows And Buttons to be Windows Classic
Style, then choose a colour scheme, it works.
But select Windows XP Style, and it stops working (as
you've seen yourself).
This is because XP used the Theme API to draw UI elements.
So a "DrawThemedButton" API function can add shiny 3D effects
and so on.
Unfortunately, I've not used the Theme API, so my help runs
out at this point. But at least you know where to look! And
there are several articles on Theming here on CP.
Iain.
|
|
|
|
|
thank you very much for taking your time. i see i have to dig a little more deeper.
btw notice the border which is drawn around the the view in your sdi app. this is exactly the same color. i also tried to find the code wich draws this border, but i got lost in mfc.
dude77
|
|
|
|
|
You won't find it. The border around the view is drawn by DefWindowProc in response to WM_NCPAINT
message. Just thought I'd dash your hopes!
Iain.
|
|
|
|
|
ohhh, well, thanks for dashing...;)
|
|
|
|
|
I have a C program, using Visual C++6 development environment, running under Windows 98. I want to write some finalisation information and close a logging file when the program closes.
To do this, I watch for WM_QUIT in the message loop in WinMain(), and when this arrives, I write to the file and close it
This works fine when I shut down my program "normally" (click on "close" button or File / Exit), but when my program is running, and the user shuts down Windows, I do not detect this, so the finalisation info is not written.
How can I detect Windows shutting down? (as I said, preferably at the SDK level.)
|
|
|
|
|
catch WM_ENDSESSION in Single USer based OS ie 95/98/ME
catch WM_QUERYENDSESSION in Multi user based OS ie 2000 and above.
this Message is Send by Window OS when it is shuting down
-----------------------------
"I Think this Will Help"
-----------------------------
Alok Gupta
visit me at http://www.thisisalok.tk
|
|
|
|
|
Thanks - that does the job!
|
|
|
|
|
Hi there,
Can anyone tell me how to set the initial postion of a deskband.
I have succesfull executed the Band Object Implementation Sample from MSDN
But the desk band Initially is always, docked on the taskbar.
What I want is, initially, the deskband to be docked on the right side of the screen.
Thanks in advance,
Kumar.
|
|
|
|
|
hey,
I have a Text box.I set its max range to 10 and min to 1 using the classwizad. when a entering a wrong value,MFC showing a message like "please enter the value between 1 and 10" .I need to change the Caption of this dialog. Now its showing the application name like "Appnam~1".
There is any simple way to set the caption of this dialod to predefined value?
Thanks in advance
shijuck
|
|
|
|
|
MFC uses the application name for this. You need to look at the AFX_IDS_APP_TITLE value in the
string table section of your resources.
Iain.
|
|
|
|
|
Hi!
I need to create a top-most window that display a full-screen movie. I want to prevent the user from switching from my application to another, ie disable the ALT-TAB key combinaison.
How can I do it?
Thks in advance!
Appstmd
http://www.atlence.com
|
|
|
|
|
Can anybody come to my help to guide me converting one format to another of audio/video files
|
|
|
|
|
Can you please specify which format you want to convert (to and from). Do you need code or tool?
ARSALAN MALIK
|
|
|
|
|
A good number of them are available here.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Hi All,
I have managed to Host (C#)Windows Froms Control in MFC Application.
MFC Application is Dialog based application where i did "Insert ActiveX Control" on a dialog and i am able to see the Control on Dialog.When i execute Program it runs fine.
Problem is after that when i Close Development Environment (VC++(6.0) IDE)and open it agian,it gives error "The ActiveX Control can not be instantiated"
"The ActiveX Control MyControl.MyControl1 Failed to initialize properly"
And in Design environment it shows Blue background on my control.But when i run it it runs fine.
It is very annoying ,every time i closes and opens the IDE error is shown.
Can anybody give some advice on this.
Thanks
TusharM.
|
|
|
|
|
how to restricted browser in vc++
vb is working web browser.
and vc++ is working or not..
|
|
|
|
|
I don't understand what do u want to say here
vc-programmer- wrote:
vb is working web browser.
and vc++ is working or not..
-----------------------------
"I Think this Will Help"
-----------------------------
Alok Gupta
visit me at http://www.thisisalok.tk
|
|
|
|