CXTSplitterWnd Flicker issue |
Post Reply |
Author | ||
brutuscat
Newbie Joined: 12 June 2008 Status: Offline Points: 3 |
Post Options
Thanks(0)
Posted: 03 July 2008 at 7:30pm |
|
Hi!
I'm using the CXTSplitterWnd and the Views are flickering A LOT! I'm with the 1200 version, on VS2005 and WinXP SP2. I'm appending CDialog controls inside my views (CView) and both (the CDialogs and the CViews) are being templated trought the CXTPNoFlickerWnd template class. Inside the CDialogs also live other child dialogs, with other controls. The CView derived class, calls to MoveWindow of the child CDialogs as a basic logic for the splitter (just for now). Also I'm applying the fix for the Splitter related with the OnMouseMove and OnLButtonUp issues. This how I'm initializin the controls:
and then the show thing with the EnableThemeDialogTexture
and so... How can avoid the Flickering? Thanks! |
||
Oleg
Admin Group Joined: 21 May 2003 Location: United States Status: Offline Points: 11234 |
Post Options
Thanks(0)
|
|
Hi,
in Views catch WM_ERASEBGND and return TRUE, add WS_CLIPCHILDREN for Views and Splitter.
|
||
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS |
||
brutuscat
Newbie Joined: 12 June 2008 Status: Offline Points: 3 |
Post Options
Thanks(0)
|
|
No, no luck.
I added the WS_CLIPCHILDREN to the splitter and to the CViews, also to the parent frame of the splitter. Almost all child windows of the splitter are templated using the CXTPNoFlickerWnd, which returns TRUE in the WM_ERASEBGND. Maybe you can send me an example using CDialogs inside the splitter that doesn't flicker? Thanks! |
||
bschaer
Groupie Joined: 27 June 2006 Location: United States Status: Offline Points: 28 |
Post Options
Thanks(0)
|
|
Oleg, I posted comments about CXTSplitterWnd in the Beta group quite some time ago and it seems that nothing has been changed thru 12.0.2
OnLButtonUp should be deleted entirely or forwarded to CSplitterWnd, and OnMouseMove should be simplified as shown below.
void CXTSplitterWnd::OnLButtonUp(UINT nFlags, CPoint point){ CSplitterWnd::OnLButtonUp(nFlags, point); // Invalidate(); } void CXTSplitterWnd::OnMouseMove(UINT nFlags, CPoint point){ CSplitterWnd::OnMouseMove(nFlags, point); if(m_bTracking && m_bFullDrag && m_point != point){ OnLButtonUp(MK_LBUTTON, point); OnLButtonDown(MK_LBUTTON, point); RedrawWindow(NULL, NULL, RDW_ALLCHILDREN | RDW_UPDATENOW); m_point = point; } } |
||
znakeeye
Senior Member Joined: 26 July 2006 Status: Offline Points: 1672 |
Post Options
Thanks(0)
|
|
Any news? Is this fixed in 12.1?
|
||
Oleg
Admin Group Joined: 21 May 2003 Location: United States Status: Offline Points: 11234 |
Post Options
Thanks(0)
|
|
We didn't confirmed this problem.
|
||
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS |
||
zitz
Senior Member Joined: 05 October 2008 Status: Offline Points: 112 |
Post Options
Thanks(0)
|
|
Need remove:
OnLButtonUp(MK_LBUTTON, point); OnLButtonDown(MK_LBUTTON, point); Anyway it does not work correctly.i patch it that:
|
||
znakeeye
Senior Member Joined: 26 July 2006 Status: Offline Points: 1672 |
Post Options
Thanks(0)
|
|
Have you tested this with this setting enabled/disabled? SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, 0, (PVOID)FALSE, SPIF_SENDCHANGE);
vs
SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, 0, (PVOID)TRUE, SPIF_SENDCHANGE);
|
||
PokerMemento - http://www.pokermemento.com/
|
||
Post Reply | |
Tweet
|
Forum Jump | Forum Permissions You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |