/*---------------------------------------------------------------------------*/ // 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; };