📄 scalphaband.h
字号:
/*
* This file is part of the EMFexplorer projet.
* Copyright (C) 2004 Smith Charles.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*
* Extension: for commercial use, apply the Equity Public License, which
* adds to the normal terms of the GLPL a condition of donation to the author.
* If you are interested in support for this source code,
* contact Smith Charles <smith.charles@free.fr> for more information.
*/
#ifndef _SCALPHABAND_H_
#define _SCALPHABAND_H_
#include "unknwn.h" // or GDI+ won't let us compile
#include "gdiplus.h"
#define SC_BAND_BOLD 0x0001
#define SC_BAND_ITALIC 0x0002
#define SC_BAND_UNDERLINED 0x0004
#define SC_BAND_SINGLELINE 0x1000
class SCAlphaBand
{
// Construction/Destruction
public:
SCAlphaBand();
~SCAlphaBand();
// Accessors
// getters
CSize& SCGetSize() { return m_Size; }
// setters
void SCSetStyle(DWORD dwBandStyle) { m_dwBandStyle = dwBandStyle; }
void SCSetLimits(CSize& sizeMin, CSize& sizeMax)
{
m_sizeMin = m_Size = sizeMin;
m_sizeMax = sizeMax;
}
void SCSetColors(COLORREF crBkColor, BYTE bAlpha, COLORREF crTxtColor)
{
m_bAlpha = bAlpha;
m_crBkColor = crBkColor;
m_crTxtColor = crTxtColor;
}
void SCSetText(LPCTSTR lpszText)
{
m_strText = (lpszText) ? lpszText : _T("");
SCComputeSize();
}
// Operation
public:
int SCComputeSize(BOOL bLimitX=TRUE, BOOL bLimitY=TRUE);
void SCAdjustSize(int iWdt, int iHgt);
void SCSetFont(LPCTSTR lpszFaceName, int iFamily, int iPoints,
DWORD dwBandStyle=0);
void SCDraw(HDC hDC, CRect& rect, BOOL bTop, BOOL bRight, float fScale);
void SCDraw(Gdiplus::Graphics* pGraphics, CRect& rect, BOOL bTop, BOOL bRight, float fScale);
void SCDrawMeta(HDC hDC, CRect& rect, BOOL bTop, BOOL bRight, float fScale, HDC hAttribDC);
int SCAjustFont(HDC hDC, CRect& rect, float fScale);
void SCFillAlphaRect(HDC hDC, int iLeft, int iTop, int iBandWdt, int iBandHgt, HDC hAttribDC);
// Implementation
protected:
private:
// set
DWORD m_dwBandStyle;
CSize m_sizeMin;
CSize m_sizeMax;
BYTE m_bAlpha;
COLORREF m_crBkColor;
COLORREF m_crTxtColor;
CString m_strText;
// computed
CSize m_Size;
LOGFONT m_logFont; // font at 100%
};
#endif //_SCALPHABAND_H_
// ------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -