|
//*******************************************************************************
// COPYRIGHT NOTES
// ---------------
// This source code is a part of BCGControlBar library.
// You may use, compile or redistribute it as part of your application
// for free. You cannot redistribute it as a part of a software development
// library without the agreement of the author. If the sources are
// distributed along with the application, you should leave the original
// copyright notes in the source code without any changes.
// This code can be used WITHOUT ANY WARRANTIES on your own risk.
//
// For the latest updates to this library, check my site:
// http://welcome.to/bcgsoft
//
// Stas Levin <bcgsoft@yahoo.com>
//*******************************************************************************
#if !defined(AFX_IMAGEPAINTAREA_H__07E27537_C6D9_11D1_A647_00A0C93A70EC__INCLUDED_)
#define AFX_IMAGEPAINTAREA_H__07E27537_C6D9_11D1_A647_00A0C93A70EC__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
// ImagePaintArea.h : header file
//
#include "bcgcontrolbar.h"
class CBCGImageEditDlg;
/////////////////////////////////////////////////////////////////////////////
// CImagePaintArea window
class BCGCONTROLBARDLLEXPORT CImagePaintArea : public CButton
{
// Construction
public:
CImagePaintArea(CBCGImageEditDlg* pParentDlg);
// Attributes
public:
enum IMAGE_EDIT_MODE
{
IMAGE_EDIT_MODE_PEN = 0,
IMAGE_EDIT_MODE_FILL,
IMAGE_EDIT_MODE_LINE,
IMAGE_EDIT_MODE_RECT,
IMAGE_EDIT_MODE_ELLIPSE,
IMAGE_EDIT_MODE_COLOR
};
CRect m_rectParentPreviewArea;
protected:
COLORREF m_rgbColor;
CDC m_memDC;
CSize m_sizeImage;
CBitmap* m_pBitmap;
IMAGE_EDIT_MODE m_Mode;
HCURSOR m_hcurPen;
HCURSOR m_hcurFill;
HCURSOR m_hcurLine;
HCURSOR m_hcurRect;
HCURSOR m_hcurEllipse;
HCURSOR m_hcurColor;
CSize m_sizeCell;
CBCGImageEditDlg* m_pParentDlg;
CPen m_penDraw;
CPen m_penStretch;
CRect m_rectDraw;
// Operations
public:
void SetBitmap (CBitmap* pBitmap);
void SetColor (COLORREF color);
void SetMode (IMAGE_EDIT_MODE mode)
{
m_Mode = mode;
}
IMAGE_EDIT_MODE GetMode () const
{
return m_Mode;
}
protected:
void ScreenToBitmap (CPoint& point);
void BitmapToClient (CRect& rect);
void FloodFil (const CPoint& point);
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CImagePaintArea)
protected:
virtual void PreSubclassWindow();
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CImagePaintArea();
// Generated message map functions
protected:
//{{AFX_MSG(CImagePaintArea)
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnCancelMode();
afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
//}}AFX_MSG
virtual void DrawItem (LPDRAWITEMSTRUCT lpDIS);
void DrawPixel (POINT point);
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_IMAGEPAINTAREA_H__07E27537_C6D9_11D1_A647_00A0C93A70EC__INCLUDED_)
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.
A list of licenses authors might use can be found here