Files

99 lines
2.5 KiB
C++

/*---------------------------------------------------------------------------*/
// Author : hiyohiyo
// Mail : hiyohiyo@crystalmark.info
// Web : https://crystalmark.info/
// License : MIT License
/*---------------------------------------------------------------------------*/
#pragma once
#include "ImageFx.h"
class CEditFx : public CEdit
{
DECLARE_DYNAMIC(CEditFx);
public:
// Constructors
CEditFx();
virtual ~CEditFx();
// Control
BOOL InitControl(int x, int y, int width, int height, double zoomRatio, CDC* bkDC, LPCTSTR imagePath,
int imageCount, DWORD textAlign, int renderMode, BOOL bHighContrast, BOOL bDarkMode, BOOL bDrawFrame, BOOL bMultiLine = FALSE);
void SetMargin(int top, int left, int bottom, int right, double zoomRatio);
CSize GetSize(void);
void SetDrawFrame(BOOL bDrawFrame);
void SetGlassColor(COLORREF glassColor, BYTE glassAlpha);
void SetBkColor(COLORREF bkColor);
void Adjust();
// Font
void SetFontEx(CString face, int size, int sizeToolTip, double zoomRatio, double fontRatio = 1.0,
COLORREF textColor = RGB(0, 0, 0), LONG fontWeight = FW_NORMAL, BYTE fontRender = CLEARTYPE_NATURAL_QUALITY);
// ToolTip
void SetToolTipText(LPCTSTR text);
void SetToolTipActivate(BOOL bActivate = TRUE);
void SetToolTipWindowText(LPCTSTR text);
CString GetToolTipText();
protected:
// Image
BOOL LoadBitmap(LPCTSTR fileName);
BOOL LoadBitmap(HBITMAP hBitmap);
void SetBkReload(void);
BOOL SetBitmap(CBitmap& bitmap);
void LoadCtrlBk(CDC* drawDC);
void SetupControlImage(CBitmap& bkBitmap, CBitmap& ctrlBitmap);
// ToolTip
void InitToolTip();
virtual BOOL PreTranslateMessage(MSG* pMsg);
// MessageMap
DECLARE_MESSAGE_MAP()
afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
afx_msg void OnEnChange();
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
protected:
// Control
int m_X;
int m_Y;
CSize m_CtrlSize;
CRect m_Margin;
int m_RenderMode;
BOOL m_bHighContrast;
BOOL m_bDarkMode;
BOOL m_bDrawFrame;
COLORREF m_FrameColor;
BOOL m_bMultiLine;
COLORREF m_BkColor;
// Glass
COLORREF m_GlassColor;
BYTE m_GlassAlpha;
// Image
CString m_ImagePath;
int m_ImageCount;
CDC* m_BkDC;
CBitmap m_BkBitmap;
CBrush m_BkBrush;
BOOL m_bBkBitmapInit;
BOOL m_bBkLoad;
CBitmap m_CtrlBitmap;
CImage m_CtrlImage;
// Font
DWORD m_TextAlign;
CFont m_Font;
CFont m_FontToolTip;
COLORREF m_TextColor;
// ToolTip
CToolTipCtrl m_ToolTip;
CString m_ToolTipText;
};