Codejock Forums Homepage
Forum Home Forum Home > Codejock Products > Visual C++ MFC > Skin Framework
  New Posts New Posts RSS Feed - Vista Aero / Ribbon / Skin issue
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

Vista Aero / Ribbon / Skin issue

 Post Reply Post Reply
Author
Message
Rmoz View Drop Down
Groupie
Groupie
Avatar

Joined: 13 June 2008
Location: Australia
Status: Offline
Points: 16
Post Options Post Options   Thanks (0) Thanks(0)   Quote Rmoz Quote  Post ReplyReply Direct Link To This Post Topic: Vista Aero / Ribbon / Skin issue
    Posted: 20 August 2008 at 11:51pm

We have a VB6 app that has both ribbon bars & skins. The user is allowed to change these colours to their likeing. The issue we have is under vista & Aero theme we get this happening to the ribbon

After some testing, it appears that the issue is with the skin & using the xtpSkinApplyFrame flag. If this is not used, the Aero theme looks fine except listview scrollbars of the form remain as the system theme and not as applied skin.
The help implies that the scrollbars are controlled under xtpSkinApplyMetrics and not xtpSkinApplyFrame ???
 
Now we can detect the AeroTheme via the GetCurrentSystemTheme method, but the Vista Basic theme also reports as aero and we have no issues with that theme.
 
So the real question(s) is :-
Can we get the listview scrollbars to skin independantly when using Aero ?
 
Or
 
Can the GetCurrentSytemTheme differentiate between Vista Aero & Vista Basic ?
 
Or
 
Can we use a Ribbon & Skin with xtpSkinApplyFrame under Vista Aero theme ?
 
 
Any help gratefully accepted.
ActiveX SuitePro v13.0
Back to Top
Oleg View Drop Down
Admin Group
Admin Group


Joined: 21 May 2003
Location: United States
Status: Offline
Points: 11234
Post Options Post Options   Thanks (0) Thanks(0)   Quote Oleg Quote  Post ReplyReply Direct Link To This Post Posted: 21 August 2008 at 1:53am
Hello,
Try remove main window from skinning:
SkinFramework.Remove me.hwnd
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS
Back to Top
Rmoz View Drop Down
Groupie
Groupie
Avatar

Joined: 13 June 2008
Location: Australia
Status: Offline
Points: 16
Post Options Post Options   Thanks (0) Thanks(0)   Quote Rmoz Quote  Post ReplyReply Direct Link To This Post Posted: 21 August 2008 at 2:45am
Hi Oleg,
 
Thanks for the very quick respomse, unfortunately it didn't seem to do the trick.....
 
 
ActiveX SuitePro v13.0
Back to Top
ABuenger View Drop Down
Newbie
Newbie
Avatar

Joined: 02 February 2006
Status: Offline
Points: 1075
Post Options Post Options   Thanks (0) Thanks(0)   Quote ABuenger Quote  Post ReplyReply Direct Link To This Post Posted: 21 August 2008 at 4:47am
Originally posted by Rmoz Rmoz wrote:


Now we can detect the AeroTheme via the GetCurrentSystemTheme method, but the Vista Basic theme also reports as aero and we have no issues with that theme.


DwmIsCompositionEnabled:
http://msdn.microsoft.com/en-us/library/aa969518(VS.85).aspx

Codejock support
Back to Top
Rmoz View Drop Down
Groupie
Groupie
Avatar

Joined: 13 June 2008
Location: Australia
Status: Offline
Points: 16
Post Options Post Options   Thanks (0) Thanks(0)   Quote Rmoz Quote  Post ReplyReply Direct Link To This Post Posted: 21 August 2008 at 11:50pm
Hi,
 
Is there anything that we can do with this issue ?? Would supplying you with a sample app help ??
 
I don't mean to hassle you, but if we cannot get a solution for this, it means we cannot support Vista Aero in our application.
 
Thanks.
ActiveX SuitePro v13.0
Back to Top
jshan View Drop Down
Groupie
Groupie
Avatar

Joined: 07 December 2007
Status: Offline
Points: 63
Post Options Post Options   Thanks (0) Thanks(0)   Quote jshan Quote  Post ReplyReply Direct Link To This Post Posted: 16 September 2008 at 5:06am
Following is my version of checking AeroEnabled in VC++.
I don't know much about VB. so change the code to VB yourself.
 

typedef BOOL (WINAPI *pDLLQuery)(OUT BOOL *bEnable);
BOOL IsVistaAeroEnabled()
{
    HMODULE hLib = ::LoadLibrary(L"dwmapi.dll");
    BOOL bResult = FALSE;

    if (hLib != NULL)
    {
  pDLLQuery cbFunc;
  cbFunc = (pDLLQuery)::GetProcAddress(hLib, "DwmIsCompositionEnabled");
        if (cbFunc != NULL )
        {
            BOOL bEnabled = FALSE;
            bResult = SUCCEEDED(cbFunc(&bEnabled)) && bEnabled;
        }
        ::FreeLibrary(hLib);
    }

    return bResult;
}

: xtp 16.2.0(Unicode static lib)

: windows 7 Pro Kor sp1(64bit)

: vs 2012 update 2 MFC

Back to Top
Rmoz View Drop Down
Groupie
Groupie
Avatar

Joined: 13 June 2008
Location: Australia
Status: Offline
Points: 16
Post Options Post Options   Thanks (0) Thanks(0)   Quote Rmoz Quote  Post ReplyReply Direct Link To This Post Posted: 18 September 2008 at 3:40am
uploads/20080918_222232_VistaAero.zipThanks for everybodies help thus far, apologies Oleg, the RemoveWindow does half solve the issue.
 
If we use RemoveWindow on the form that contains the SkinFramwork Control, all is well and good. If a form is then opened by the 'main' form (i.e one that does not contain a skinframework) it opens fine until the use chooses a new theme. I should mention that we have designed our app then when the user chooses a new theme its is applied to all open windows.
 
Do we have any means of controlling how the skin applies to forms that do not contain the control.
 
I have tried turning off the ApplyToNewWindows setting and manually applying to new windows but due to application constraints we cannot use this without a whole lot of reworking.
 
Thanks again to all!
 
I have uploaded a sample app. You will need to place the ribbon DLL's & skin file to a Styles Folder in App.Path. Under Vista with the full Aero theme on, you can see the issues in the Sub Form.
 
Thanks again.
ActiveX SuitePro v13.0
Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 12.04
Copyright ©2001-2021 Web Wiz Ltd.

This page was generated in 0.171 seconds.