⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 proppageframeex.h

📁 人事管理系统
💻 H
字号:
// PropPageFrameEx.h: interface for the CPropPageFrameEx class.
//
/////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2004 by Yves Tkaczyk
// (http://www.tkaczyk.net - yves@tkaczyk.net)
//
// The contents of this file are subject to the Artistic License (the "License").
// You may not use this file except in compliance with the License. 
// You may obtain a copy of the License at:
// http://www.opensource.org/licenses/artistic-license.html
//
// Documentation: http://www.codeproject.com/property/treepropsheetex.asp
// CVS tree:      http://sourceforge.net/projects/treepropsheetex
//
//  /********************************************************************
//  *
//  * Copyright (c) 2002 Sven Wiegand <forum@sven-wiegand.de>
//  *
//  * You can use this and modify this in any way you want,
//  * BUT LEAVE THIS HEADER INTACT.
//  *
//  * Redistribution is appreciated.
//  *
//  * $Workfile:$
//  * $Revision: 1.4 $
//  * $Modtime:$
//  * $Author: ytkaczyk $
//  *
//  * Revision History:
//  *	$History:$
//  *
//  *********************************************************************/
//
/////////////////////////////////////////////////////////////////////////////

#ifndef _TREEPROPSHEET_PROPPAGEFRAMEEX_H__INCLUDED_
#define _TREEPROPSHEET_PROPPAGEFRAMEEX_H__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "PropPageFrame.h"

namespace TreePropSheet
{
//! Forward declaration of helper class for XP Theme.
class CThemeLibEx;

/*! @brief Default frame window for CTreePropSheetEx sheets

  This class is based on CPropPageFrame. It differs in 
  the following:
  - Reduced flickering by using double-buffering. This is 
    especially noticeable in the gradient portion while 
    resizing.
  - Draw gradient using GDI GradientFill or original owner
    drawn gradient (compile time switch).

  @version 0.1
  @author Sven Wiegand (original CPropPageFrame)
  @author Yves Tkaczyk <yves@tkaczyk.net> 
  @date 07/2004 */
class CPropPageFrameEx : 
	public CWnd, 
	public CPropPageFrame  
{
// Construction/Destruction
public:
	CPropPageFrameEx();
	virtual ~CPropPageFrameEx();

// CPropPageFrame implementation
public:
	/*! Create the Windows window for the frame.
	  @param dwWindowStyle Specifies the window style attributes
	  @param rect The size and position of the window, in client coordinates of pParentWnd.
	  @param pwndParent The parent window. This cannot be NULL.
	  @param nID The ID of the child window.
	  @return Nonzero if successful; otherwise 0. */
  virtual BOOL Create(DWORD dwWindowStyle, const RECT &rect, CWnd *pwndParent, UINT nID);
	
	/*! a pointer to the window object, that represents the frame.
	  @return Pointer to the window object. */
  virtual CWnd* GetWnd();

// CPropPageFrame overridings
public:
  virtual void SetCaption(LPCTSTR lpszCaption, HICON hIcon = NULL);
protected:
	virtual CRect CalcMsgArea();
	virtual CRect CalcCaptionArea();
	virtual void DrawCaption(CDC *pDc, CRect rect, LPCTSTR lpszCaption, HICON hIcon);

// Methods
protected:
  /*! Returns the helper class for XP theme.
    @internal The helper class is stored as a static member.
    @return Pointer to the helper class. */
  const CThemeLibEx& GetThemeLib() const;

// Overridables
protected:
  /*! Draw the background.
    @param pDC Pointer to device context. */
  virtual void DrawBackground(CDC* pDC);

// Helpers
protected:
	/*! Fill the rectangle with a gradient using custom algorithm. */ 
  static void FillOwnerDrawnGradientRectH(CDC *pDc, const RECT &rect, COLORREF clrLeft, COLORREF clrRight);
  /*! Fill the rectangle with a gradient using GDI GradientFill function. */
	static void FillGDIGradientRectH(CDC *pDc, const RECT &rect, COLORREF clrLeft, COLORREF clrRight);
  /*! Initialize which gradient method to use. The decision is made at 
      compile time.
      @internal This will be extended to support runtime algorithm selection, 
                with GDI as default method and fall back to owner draw if
                GDI not available. */
  void InitialGradientDrawingFunction();

// message handlers
protected:
	//{{AFX_MSG(CPropPageFrameEx)
	afx_msg void OnPaint();
	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()

// attributes
protected:
	/** 
	Image list that contains only the current icon or nothing if there
	is no icon.
	*/
	CImageList m_Images;

  /*! Gradient function. */
  typedef void tGradientFn(CDC *pDc, const RECT &rect, COLORREF clrLeft, COLORREF clrRigh);
  tGradientFn* m_pGradientFn;
};

};    // Namespace TreePropSheet

#endif // !defined(_TREEPROPSHEET_PROPPAGEFRAMEEX_H__INCLUDED_)

⌨️ 快捷键说明

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