Click here to Skip to main content
15,881,139 members
Articles / Mobile Apps

Window Tabs (WndTabs) Add-In for DevStudio

Rate me:
Please Sign up or sign in to vote.
5.00/5 (37 votes)
11 Jul 2002 364.7K   7.3K   94  
Window and File Management add-in for Visual C++
//*******************************************************************************
// 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.

License

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


Written By
Experion
Canada Canada
You may know Oz from his WndTabs days. Oz has long since left client side development to work on web technologies and to consult in the R&D management field.

Comments and Discussions