gdiview.h

来自「MFC编程实例」· C头文件 代码 · 共 93 行

H
93
字号
#if !defined(AFX_GDIVIEW_H__1010F3AC_28F5_11D1_9C9A_444553540000__INCLUDED_)
#define AFX_GDIVIEW_H__1010F3AC_28F5_11D1_9C9A_444553540000__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif

class CGDIDoc;

class CGDIView : public CScrollView
{
protected:
	CBrush m_brGrid;
	CBitmap m_bmpDraw;
	CBitmap m_bmpBackup;
	CBitmap m_bmpSelBackup;
	CBitmap m_bmpBKStore;
	CBitmap *m_pBmpOld;
	CBitmap *m_pBmpBKOld;
	CPen m_penDot;
	CDC m_dcMem;
	CDC m_dcBKMem;
	CRectTracker m_trackerSel;
	CRgn m_rgnFreeSel;
	CPalette *m_pPalOld;
	CPalette *m_pPalBKOld;
	CPoint m_ptMouseDown;
	CPoint m_ptPrevious;
	LPVOID m_lpBits;
	CGDIView();
	DECLARE_DYNCREATE(CGDIView)

public:
	CGDIDoc* GetDocument();
	void LoadBitmap(HGLOBAL);
	void CleanUp();
	void UpdateScrollSizes();
	void DrawPoint(CPoint);
	void BackupCurrentBmp();
	void StretchCopySelection();
	void BackupSelection();
	void ResumeBackupBmp();
	void DrawLine(CPoint, CPoint);
	void ResetTracker();
	void GetCurrentBitmapInfoHeader(LPBITMAPINFOHEADER);
	void FillSelectionWithBgdColor();
	void PasteDIB(HGLOBAL);
	void ChangeTrackerRectRatio(int);
	LPVOID GetLPBits(){return &m_lpBits;}
	CPoint NormalizePtPosition(CPoint);
	CRect NormalizeTrackerRect(CRect);
	CRect UnnormalizeTrackerRect(CRect);
	CRect GetNormalizedTrackerRect(){return NormalizeTrackerRect(m_trackerSel.m_rect);}
	BOOL MouseWithinBitmap();
	BOOL IsTrackerValid(){return !m_trackerSel.m_rect.IsRectEmpty();}

	//{{AFX_VIRTUAL(CGDIView)
	public:
	virtual void OnDraw(CDC* pDC);
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
	virtual void OnInitialUpdate();
	protected:
	virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
	virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
	virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
	//}}AFX_VIRTUAL

public:
	virtual ~CGDIView();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:
	//{{AFX_MSG(CGDIView)
	afx_msg void OnDestroy();
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

#ifndef _DEBUG
inline CGDIDoc* CGDIView::GetDocument()
   { return (CGDIDoc*)m_pDocument; }
#endif

//{{AFX_INSERT_LOCATION}}
#endif // !defined(AFX_GDIVIEW_H__1010F3AC_28F5_11D1_9C9A_444553540000__INCLUDED_)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?