Codejock Forums Homepage
Forum Home Forum Home > Codejock Products > Visual C++ MFC > Toolkit Pro
  New Posts New Posts RSS Feed - CXTPFrameShadow covers the whole application
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

CXTPFrameShadow covers the whole application

 Post Reply Post Reply
Author
Message
Fredrik View Drop Down
Senior Member
Senior Member


Joined: 22 June 2005
Status: Offline
Points: 156
Post Options Post Options   Thanks (0) Thanks(0)   Quote Fredrik Quote  Post ReplyReply Direct Link To This Post Topic: CXTPFrameShadow covers the whole application
    Posted: 10 September 2018 at 11:34am
Hi, 

after upgrading to 18.5 I get a shadow over the whole application when it opens on another monitor than the primary (I save window position) and call EnableFrameTheme. I found that if I set m_hOwner to NULL as suggested in http://forum.codejock.com/forum_posts.asp?TID=23639 the problem disappears, but I see that in 18.5 m_hOwner is still passed to CWnd::CreateEx? 

Should m_hOwner be NULL in this case?

The shadow causes the whole application to be unresponsive and cannot be used... 

I haven't been able to reproduce it with the RibbonSample unfortunately.
Windows 10, Visual Studio 20157, Toolkit Pro 18.3.0
Back to Top
sbinder View Drop Down
Groupie
Groupie
Avatar

Joined: 22 November 2004
Location: Austria
Status: Offline
Points: 74
Post Options Post Options   Thanks (0) Thanks(0)   Quote sbinder Quote  Post ReplyReply Direct Link To This Post Posted: 02 October 2018 at 2:44am
And only if FrameTheme is enalbed!
Back to Top
Fredrik View Drop Down
Senior Member
Senior Member


Joined: 22 June 2005
Status: Offline
Points: 156
Post Options Post Options   Thanks (0) Thanks(0)   Quote Fredrik Quote  Post ReplyReply Direct Link To This Post Posted: 05 October 2018 at 11:24am
Thanks  - yes I know, I was able to temporarily fix the problem by calling 

XTPFrameShadowManager()->SetFlags(xtpFrameShadowsDisabled);

(Or DisableShadow as you posted)

But then there will not be a shadow around the application which all other programs have. I still hope for a fix from CodeJock - it did work in 18.4.
Windows 10, Visual Studio 20157, Toolkit Pro 18.3.0
Back to Top
astoyan View Drop Down
Admin Group
Admin Group
Avatar

Joined: 24 August 2013
Status: Offline
Points: 187
Post Options Post Options   Thanks (1) Thanks(1)   Quote astoyan Quote  Post ReplyReply Direct Link To This Post Posted: 09 October 2018 at 10:18am
The bug has been fixed for the next update which is due in about a week or so. Please re-test with a new update once it's available and confirm it fixes it for you.

Regards,
   Alexander
Back to Top
markr View Drop Down
Senior Member
Senior Member


Joined: 01 August 2004
Status: Offline
Points: 394
Post Options Post Options   Thanks (0) Thanks(0)   Quote markr Quote  Post ReplyReply Direct Link To This Post Posted: 09 October 2018 at 8:13pm
> The bug has been fixed for the next update which is due in about a week or so

Can you share any information on why some applications are experiencing this and not others?

Many thanks!

- Mark R.
Back to Top
astoyan View Drop Down
Admin Group
Admin Group
Avatar

Joined: 24 August 2013
Status: Offline
Points: 187
Post Options Post Options   Thanks (0) Thanks(0)   Quote astoyan Quote  Post ReplyReply Direct Link To This Post Posted: 10 October 2018 at 10:09am
It worked properly in 18.4 because it did not clip the overlapped portion of the shadow which lead to a number of performance related complains, so it's been fixed in 18.5, but the fix introduced a new issue and unfortunately it was not noticed during 18.5 build testing

It happens when DPI is above 96 (100%) for DPI unaware applications only. In fact it has turned out to be a bug in Microsoft's DwmGetWindowAttribute with DWMWA_EXTENDED_FRAME_BOUNDS flag, which does not virtualize DPI as it should, which all other SDK functions do properly. This lead to a workaround being added.

Regards
Back to Top
markr View Drop Down
Senior Member
Senior Member


Joined: 01 August 2004
Status: Offline
Points: 394
Post Options Post Options   Thanks (0) Thanks(0)   Quote markr Quote  Post ReplyReply Direct Link To This Post Posted: 10 October 2018 at 7:13pm
> It happens when DPI is above 96 (100%) for DPI unaware applications only.

Thanks for the clarification.

- Mark R.
Back to Top
rdhd View Drop Down
Senior Member
Senior Member
Avatar

Joined: 13 August 2007
Location: United States
Status: Offline
Points: 614
Post Options Post Options   Thanks (0) Thanks(0)   Quote rdhd Quote  Post ReplyReply Direct Link To This Post Posted: 25 October 2018 at 9:27am
Is Microsoft aware of the problem in their API? If so, has it been addressed? I have build 1809 with a KB fix that addresses some issues when dragging windows. But I reopened the case because when running on a desktop with the main monitor scaled but not all other monitors, the rectangle displayed when mousing down (say on a MFC toolbar that is floating) is being scaled when it should not be.

I don't see this shadow covering the application (Office 2013 themes). But, I do see the issue on CXTPResizeDialog based classes that use a frame theme with a shadow. I turned the shadow off, but these themes result in single pixel borders making resizing nearly impossible, especially on 4k monitors.

Is there any fix that I can add to my 18.5 code base?
Back to Top
rdhd View Drop Down
Senior Member
Senior Member
Avatar

Joined: 13 August 2007
Location: United States
Status: Offline
Points: 614
Post Options Post Options   Thanks (0) Thanks(0)   Quote rdhd Quote  Post ReplyReply Direct Link To This Post Posted: 25 October 2018 at 10:49am
astoyan,

What issues should I look for if I skip the call to get DWMWA_EXTENDED_FRAME_BOUNDS? I commented out that call and just the rcClicp obtained at the top of CXTPFrameShadow::GetClipRect after passing it to ScreenToClient. I have run on my 3 monitor system and so far I get the shadow and it doesn't cover up my application window regardless of which monitor I am on.
Back to Top
rdhd View Drop Down
Senior Member
Senior Member
Avatar

Joined: 13 August 2007
Location: United States
Status: Offline
Points: 614
Post Options Post Options   Thanks (0) Thanks(0)   Quote rdhd Quote  Post ReplyReply Direct Link To This Post Posted: 25 October 2018 at 1:17pm
atyon,

So far it looks like the only real difference is a the size of the shadow - just a pixel or two bigger than when not making the call to the OS API.

Opinion? Alternatives?
Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down



This page was generated in 0.109 seconds.