Professional UI Solutions
Site Map   /  Register
 
 

Forum

Please Log In to post a new message or reply to an existing one. If you are not registered, please register.

NOTE: Some forums may be read-only if you are not currently subscribed to our technical support services.

Forums » Prof-UIS General Discussion » 2.83 Bug report Collapse All
Subject Author Date
Jase Wolfe Jul 25, 2008 - 9:25 AM

I found 2 issues with version 2.83.  They may or may not be related.


Issue 1:


When version 2.83 is being used, CFrameWnd does not receive any WM_GETMINMAXINFO messages.  This worked in 2.82, I then switched to 2.83 and it no longer functioned.  I watched the messages with Spy++ and the message was never seen.  I then downgraded back to 2.82 and the WM_GETMINMAXINFO message was received again.  The class is defined as such:


 


class CMainFrame : public CExtNCW < CFrameWnd >


 


Issue 2:


When resizing the window, the window frame is drawn incorrectly with what appears to possibly be some of the child frame control being drawn over the title bar, and also the control buttons (min, max, close) are drawn with normal appearance.  Once moused over, the window frame refreshes and draws correctly.

atest1 atest1 Jul 28, 2008 - 9:57 PM

I found the second issue too. Run the Drawcli sample in freeware 2.83, maximize the child window and it will show the title bar of child window wrongly when it’s maximized! I think maybe there is some problem in CExtNCW < CMDIChildWnd > since in 2.82 there is no such problem in Drawcli sample. In 2.83, the CSplitFrame become subclass of CExtNCW < CMDIChildWnd > while in 2.82 subclass of CMDIChildWnd.


Anothe issue, when I switch to Office 2007 UI theme, the right-bottom region of child window (between the two scroll bar) still show gray and I think it’s very ugly. I hope this problem will be fixed.


Thank you.

Technical Support Jul 26, 2008 - 10:48 AM

The WM_GETMINMAXINFO message is handled by the CExtNCW template class in v.2.83 inside the CExtNCW::WindowProc() virtual method. We confirm this issue. You can handle this message in your CMainFrame::WindowProc() virtual method:

      virtual LRESULT WindowProc( UINT message, WPARAM wParam, LPARAM lParam ) 
      {

            if( message == WM_GETMINMAXINFO )
            {
                  LPMINMAXINFO pMMI = (LPMINMAXINFO)lParam;
                  ASSERT( pMMI != NULL );
                  //
                  // TO DO: Modify properties of pMMI here.
                  //
                  return 0;
            }
            LRESULT lResult = CExtNCW < CFrameWnd > :: WindowProc( message, wParam, lParam );
            return lResult;
      }
We need more details about the second issue. The CExtNCW template class provides desktop windows with skinned non-client area (caption and borders). We have re-coded it in v.2.83 in order to fix the known issues with window frame skinning on all the Windows OS versions. We suspect you have some specific main frame initialization code which produces the second issue.