You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
179 lines
6.7 KiB
C
179 lines
6.7 KiB
C
2 years ago
|
// XTPReportDragDrop.h: interface for the CXTPReportHeaderDragWnd and
|
||
|
// CXTPReportHeaderDropWnd classes.
|
||
|
//
|
||
|
// This file is a part of the XTREME REPORTCONTROL MFC class library.
|
||
|
// (c)1998-2012 Codejock Software, All Rights Reserved.
|
||
|
//
|
||
|
// THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
|
||
|
// RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
|
||
|
// CONSENT OF CODEJOCK SOFTWARE.
|
||
|
//
|
||
|
// THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
|
||
|
// IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
|
||
|
// YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
|
||
|
// SINGLE COMPUTER.
|
||
|
//
|
||
|
// CONTACT INFORMATION:
|
||
|
// support@codejock.com
|
||
|
// http://www.codejock.com
|
||
|
//
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
#if !defined(__XTPREPORTDRAGDROP_H__)
|
||
|
#define __XTPREPORTDRAGDROP_H__
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
#if _MSC_VER > 1000
|
||
|
#pragma once
|
||
|
#endif // _MSC_VER > 1000
|
||
|
|
||
|
class CXTPReportHeader;
|
||
|
class CXTPReportPaintManager;
|
||
|
class CXTPReportColumn;
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// CXTPReportHeaderDragWnd is CWnd derived class, it used internally to
|
||
|
// represent dragging column window.
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPReportHeaderDragWnd : public CWnd
|
||
|
{
|
||
|
|
||
|
public:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Creates CXTPReportHeaderDragWnd object.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPReportHeaderDragWnd();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Default CXTPReportHeaderDragWnd destructor.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual ~CXTPReportHeaderDragWnd();
|
||
|
|
||
|
public:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Creates dragging window with the specified parameters.
|
||
|
// Parameters:
|
||
|
// rect - Drawing rectangle position.
|
||
|
// pHeader - Pointer to parent report header object.
|
||
|
// pPaintManager - Paint manager for performing draw operations.
|
||
|
// pColumn - Pointer to the associated column.
|
||
|
// Returns:
|
||
|
// TRUE if created successfully, FALSE otherwise.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual BOOL Create(CRect rect, CXTPReportHeader* pHeader, CXTPReportPaintManager* pPaintManager, CXTPReportColumn* pColumn);
|
||
|
|
||
|
protected:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Called by the framework to draw the contents of the window using the specified device context.
|
||
|
// Parameters:
|
||
|
// pDC - A pointer to the device context in which the drawing occurs.
|
||
|
// rcClient - Coordinates of the client window position.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void OnDraw(CDC* pDC, CRect rcClient);
|
||
|
|
||
|
protected:
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
//{{AFX_MSG(CXTPReportHeaderDragWnd)
|
||
|
afx_msg void OnPaint();
|
||
|
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
|
||
|
afx_msg void OnTimer(UINT_PTR nIDEvent);
|
||
|
//}}AFX_MSG
|
||
|
|
||
|
//{{AFX_VIRTUAL(CXTPReportHeaderDragWnd)
|
||
|
virtual void PostNcDestroy();
|
||
|
//}}AFX_VIRTUAL
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
private:
|
||
|
BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
|
||
|
|
||
|
DECLARE_MESSAGE_MAP()
|
||
|
protected:
|
||
|
CXTPReportHeader* m_pHeader; // Pointer to the associated report header object.
|
||
|
CXTPReportPaintManager* m_pPaintManager; // Pointer to the associated paint manager object.
|
||
|
CXTPReportColumn* m_pColumn; // Pointer to the associated report column object.
|
||
|
|
||
|
};
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// CXTPReportHeaderDropWnd is CWnd derived class, it used internally to
|
||
|
// represent drop target arrows.
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPReportHeaderDropWnd : public CWnd
|
||
|
{
|
||
|
public:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Creates CXTPReportHeaderDropWnd object.
|
||
|
// Parameters:
|
||
|
// crColor - Drop window color.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPReportHeaderDropWnd(COLORREF crColor);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Destroys CXTPReportHeaderDropWnd object. Performs cleanup operations.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual ~CXTPReportHeaderDropWnd();
|
||
|
|
||
|
public:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Changes window position.
|
||
|
// Parameters:
|
||
|
// xPos - New horizontal position.
|
||
|
// yPos - New vertical position.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetWindowPos(int xPos, int yPos);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Creates a drop window with the specified gap inside.
|
||
|
// Parameters:
|
||
|
// nHeight - Height between 2 arrows in pixels.
|
||
|
// Returns:
|
||
|
// TRUE if created successfully, FALSE otherwise.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual BOOL Create(CWnd* pParentWnd, int nHeight);
|
||
|
|
||
|
protected:
|
||
|
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
//{{AFX_VIRTUAL(CXTPReportHeaderDropWnd)
|
||
|
virtual void PostNcDestroy();
|
||
|
//}}AFX_VIRTUAL
|
||
|
|
||
|
//{{AFX_MSG(CXTPReportHeaderDropWnd)
|
||
|
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
|
||
|
//}}AFX_MSG
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
private:
|
||
|
BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
|
||
|
DECLARE_MESSAGE_MAP()
|
||
|
|
||
|
protected:
|
||
|
COLORREF m_clr; // Drawing brush.
|
||
|
CRgn m_rgn; // Arrows region.
|
||
|
int m_nHeight; // Height of the gap between 2 arrows.
|
||
|
};
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
AFX_INLINE BOOL CXTPReportHeaderDragWnd::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) {
|
||
|
return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
|
||
|
}
|
||
|
AFX_INLINE BOOL CXTPReportHeaderDropWnd::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) {
|
||
|
return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
|
||
|
}
|
||
|
|
||
|
#endif //#if !defined(__XTPREPORTDRAGDROP_H__)
|