Prof-UIS supports skinned non-client areas. All behavior details of such skinned windows are implemented by Prof-UIS. Skinned windows do not use the Windows resizing algorithm for desktop windows. It’s written from scratch and we support the WM_SIZING
message in v.2.88. You can find the following code in the ../Prof-UIS/Src/ExtNcFrame.cpp file:
if( ::SendMessage( hWnd, WM_SIZING, wParamSizingCode, LPARAM(&rcWndAdjusted) ) != 0L )
rcWnd = rcWndAdjusted;
The way you handle the
WM_SIZING
message works in Prof-UIS 2.88. This message isn’t supported in older Prof-UIS versions. But, of course, you can use the
WM_GETMINMAXINFO
message instead.
The
CExtSplitterWnd
class in Prof-UIS is an extended version of the MFC’s
CSplitterWnd
class. Our splitter window is just a themed version of MFC’s splitter window. You can override the
CExtSplitterBaseWnd::StartTracking()
virtual method and modify the
CSplitterWnd::m_rectLimit
rectangle which defines the screen area enabled for drag-n-drop based resizing of splitter parts. This will allow you to limit resizing of particular splitter panes. You can override the
CExtSplitterBaseWnd::RecalcLayout()
virtual method and implement your splitter layout calculation. This will allow you to limit the size of particular splitter panes when the entire splitter window is resized.