AyaNova CE Archive added as recovered from storage during attempt to upgrade a customer from v1.7 to v8!
This commit is contained in:
@@ -0,0 +1,187 @@
|
||||
// ResizeCtrl.h: interface for the CResizeCtrl class.
|
||||
//
|
||||
//
|
||||
// Written by Herbert Menke (h.menke@gmx.de)
|
||||
// Copyright (c) 2000.
|
||||
//
|
||||
// This code may be used in compiled form in any way you desire. This
|
||||
// file may be redistributed unmodified by any means PROVIDING it is
|
||||
// not sold for profit without the authors written consent, and
|
||||
// providing that this notice and the authors name is included. If
|
||||
// the source code in this file is used in any commercial application
|
||||
// then acknowledgement must be made to the author of this file
|
||||
// (in whatever form you wish).
|
||||
//
|
||||
// This file is provided "as is" with no expressed or implied warranty.
|
||||
//
|
||||
// Expect bugs.
|
||||
//
|
||||
// Please use and enjoy. Please let me know of any bugs/mods/improvements
|
||||
// that you have found/implemented and I will fix/incorporate them into this
|
||||
// file.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#if !defined(AFX_RESIZECTRL_H__3CD44893_48A2_11D4_880C_00902755BD88__INCLUDED_)
|
||||
#define AFX_RESIZECTRL_H__3CD44893_48A2_11D4_880C_00902755BD88__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
class CResizeArray;
|
||||
|
||||
struct CResizeInfo
|
||||
{
|
||||
int ctlID; // Specifies the identifier of the control
|
||||
int left; // Specifies the change in the position of the left edge
|
||||
// of the object relative to the total change in the parent window’s width.
|
||||
int top; // Specifies the change in the position of the top
|
||||
// of the object relative to the total change in the parent window’s height.
|
||||
int width; // Specifies the change in the width of the object
|
||||
// relative to the total change in the parent window’s width.
|
||||
int height; // Specifies the change in the height of the object
|
||||
// relative to the total change in the parent window’s height.
|
||||
};
|
||||
|
||||
class CResizeCtrl
|
||||
{
|
||||
public:
|
||||
|
||||
//
|
||||
// Add Method
|
||||
//
|
||||
|
||||
// Adds a control window to the list to be resized
|
||||
|
||||
// left, top, width and height determines how the size and position of the control window
|
||||
// will change when the size of the parent window changes.
|
||||
|
||||
// In general, the formula is
|
||||
//
|
||||
// newValue = oldValue + (( deltaValueParent * partValue) / maxPart );
|
||||
//
|
||||
// newValue - new left or top position or new width or height
|
||||
// oldValue - old left or top position or old width or height
|
||||
// deltaValueParent - changes in parent width or height
|
||||
// partValue - left, top, width or height value specified in the Add Method
|
||||
// maxPart - value specified by the maxPart parameter of the constructor
|
||||
// or the Create method
|
||||
|
||||
//
|
||||
// left - Specifies the change in the position of the left edge
|
||||
// of the object relative to the total change in the parent window’s width.
|
||||
// For example: suppose that left is 50 and the width of the window increases by 200 pixels.
|
||||
// Then the left edge of the object moves right by 100 pixels (50% of 200).
|
||||
// top - Specifies the change in the top position
|
||||
// of the object relative to the total change in the parent window’s height.
|
||||
// width - Specifies the change in the width of the object
|
||||
// relative to the total change in the parent window’s width.
|
||||
// For example: suppose that width is zero. Then the width of the object does not change,
|
||||
// regardless of how much the width of the parent window changes.
|
||||
// suppose that width is 100 and the width of the window decreases by 50 pixels.
|
||||
// Then the width of the object also decreases by 50 pixels (100% of 50).
|
||||
// height - Specifies the change in the height of the object
|
||||
// relative to the total change in the parent window’s height.
|
||||
|
||||
BOOL Add( HWND hWndCtl, int left, int top, int width, int height );
|
||||
BOOL Add( int ctlID, int left, int top, int width, int height );
|
||||
BOOL Add( CWnd * wndCtl, int left, int top, int width, int height );
|
||||
|
||||
// resizeInfo is a null terminated array of CResizeInfo
|
||||
|
||||
BOOL Add( const CResizeInfo * resizeInfo );
|
||||
|
||||
//
|
||||
// Remove Method
|
||||
//
|
||||
|
||||
// Removes a control window from the list to be resized
|
||||
|
||||
BOOL Remove( HWND hWndCtl );
|
||||
BOOL Remove( int ctlID );
|
||||
BOOL Remove( CWnd * wndCtl );
|
||||
|
||||
// enabled
|
||||
// TRUE returns the position and size before resizing was enabled
|
||||
// FALSE returns the last position and size before resizing was disabled
|
||||
|
||||
BOOL GetWindowRect( RECT * rect );
|
||||
|
||||
//
|
||||
// Construction
|
||||
//
|
||||
|
||||
BOOL Create( HWND hWndParent, BOOL enabled = TRUE, int maxPart = 100 );
|
||||
BOOL Create( CWnd * wndParent, BOOL enabled = TRUE, int maxPart = 100 );
|
||||
|
||||
CResizeCtrl();
|
||||
CResizeCtrl( HWND hWndParent, BOOL enabled = TRUE, int maxPart = 100 );
|
||||
CResizeCtrl( CWnd * wndParent, BOOL enabled = TRUE, int maxPart = 100 );
|
||||
virtual ~CResizeCtrl();
|
||||
|
||||
//
|
||||
// Enabled Property
|
||||
//
|
||||
|
||||
// enable or disable resizing
|
||||
|
||||
BOOL SetEnabled( BOOL enable );
|
||||
BOOL GetEnabled() const;
|
||||
|
||||
//
|
||||
// GripEnabled Property
|
||||
//
|
||||
|
||||
BOOL SetGripEnabled( BOOL showGrip );
|
||||
BOOL GetGripEnabled() const ;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// MinMax Support
|
||||
//
|
||||
BOOL SetMinimumTrackingSize( const CSize & size );
|
||||
BOOL SetMinimumTrackingSize( );
|
||||
CSize GetMinimumTrackingSize( );
|
||||
|
||||
BOOL SetMaximumTrackingSize( const CSize & size );
|
||||
CSize GetMaximumTrackingSize( );
|
||||
|
||||
private:
|
||||
void GetGripRect( RECT & rect, BOOL redraw );
|
||||
// Resize the controls
|
||||
void Resize(int cx, int cy) ;
|
||||
// processes the messages for resizing
|
||||
BOOL ProcessMessage( UINT message, WPARAM wParam, LPARAM lParam, LRESULT & result );
|
||||
// adds or removes style WS_THICKFRAME of the aprent window
|
||||
void ChangeStyle( BOOL enable );
|
||||
// initialise the control
|
||||
// calculates the new left, top, width or height
|
||||
BOOL CalcValue(int delta, int part, int & pending, long & position, BOOL isSize);
|
||||
// subclass window proc
|
||||
static LRESULT CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam );
|
||||
|
||||
BOOL m_hasResizingBorder; // TRUE if the parent has a resizing border
|
||||
WNDPROC m_prevWndProc; // previous Window Proc
|
||||
BOOL m_enabled; // parent is subclassed
|
||||
int m_maxPart; // max PartValue
|
||||
HWND m_hWndParent; // handle of the paretn window
|
||||
CSize m_size; // width and heigth of the parent window
|
||||
CResizeArray * m_array; // parameters of registered controls
|
||||
/////////////////////////////////////////////////
|
||||
CSize m_maxTracking; // parameters for max Tracking
|
||||
CSize m_minTracking; // parameters for min Tracking
|
||||
/////////////////////////////////////////////////
|
||||
BOOL m_inResize; // flag to prevent recursion in WM_SIZE
|
||||
/////////////////////////////////////////////////
|
||||
int m_hitCode; // stored hitCode from WM_NCLBUTTONDOWN
|
||||
CSize m_delta; // stored delta Size from WM_NCLBUTTONDOWN
|
||||
BOOL m_inMouseMove; // flag to prevent recursion in WM_MOUSEMOVE
|
||||
/////////////////////////////////////////////////
|
||||
CRect m_gripRect; // position and size of the grip rect
|
||||
BOOL m_gripEnabled; // TRUE, if grip is enabled
|
||||
/////////////////////////////////////////////////
|
||||
CRect m_windowRect; // last Window position and Size
|
||||
};
|
||||
|
||||
#endif // !defined(AFX_RESIZECTRL_H__3CD44893_48A2_11D4_880C_00902755BD88__INCLUDED_)
|
||||
Reference in New Issue
Block a user