#pragma once #include "ControlWZ.h" //-------------------------------------------------------------- // CCtrlBaseEdit Class ±âº» ÇÔ¼ö ¿¬°á ±âÁØ Å¬·¡½ºÀÌ´Ù. // ±âº» EDit¿Í Direct Edit¿Í °ü¸® Â÷¿øÀÇ »óÀ§ Edit ¸µÅ© °³³äÀ¸·Î¸¸ »ç¿ëÇÔ. //-------------------------------------------------------------- class CCtrlBaseEdit : public CControlWZ { public: CCtrlBaseEdit(){} virtual ~CCtrlBaseEdit(){} public: //. ÆùÆ® °ü·Ã ÇÔ¼ö. virtual void SetFontID(DWORD dwFontID){;} //. Font ID ¼³Á¤ÇÑ´Ù. virtual DWORD GetFontID(){return 0;} //. Font ID ¾ò¾î¿Â´Ù. virtual LOGFONTA* GetFontInfo(){return NULL;} //. ÆùÆ® Á¤º¸¸¦ °¡Á®¿Â´Ù. virtual void SetFontInfo(LOGFONTA* lplf){} //. »ö»ó °ü·Ã ÇÔ¼ö. virtual void SetColorCaret(COLORREF color){;} //. ij·µ »öÀ» ¼³Á¤ÇÑ´Ù. virtual void SetColorText(COLORREF color){;} //. ¹®ÀÚ»öÀ» ¼³Á¤ÇÑ´Ù. virtual void SetColorSelBack(COLORREF color){;} virtual void SetColorSelText(COLORREF color){;} virtual void SetColorCompText(COLORREF color){;} virtual void SetColorCompBack(COLORREF color){;} virtual void SetColorCompCaret(COLORREF color){;} virtual void SetColorIndicatorIme(COLORREF color){;} virtual void SetColorIndicatorEng(COLORREF color){;} virtual void SetColorIndicatorBK(COLORREF color){;} virtual COLORREF GetFontColor(){return NULL;} virtual COLORREF GetCaretColor(){return NULL;} virtual COLORREF GetSelBackColor(){return NULL;} virtual COLORREF GetSelTextColor(){return NULL;} virtual COLORREF GetCompTextColor(){return NULL;} virtual COLORREF GetCompBackColor(){return NULL;} virtual COLORREF GetCompCaretColor(){return NULL;} virtual COLORREF GetIndicatorImeColor(){return NULL;} virtual COLORREF GetIndicatorEngColor(){return NULL;} virtual COLORREF GetIndicatorBKColor(){return NULL;} //. ÅØ½ºÆ® °ü·ÃÇÔ¼ö. //virtual void GetTextWZA(OUT LPSTR pszText, int nLength){} //virtual void GetTextWZW(OUT LPWSTR pwszText, int nLength){} //virtual void SetTextWZA(LPCTSTR pszText, bool bSelected=false){} //virtual void SetTextWZW(LPCTSTR pwszText, bool bSelected=false){} virtual void SetLimitText(DWORD dwLimit){} //. ¹®ÀåÀÇ ±æÀ̸¦ Á¦ÇÑÇÑ´Ù. virtual void ClearText(){} //. ¹®ÀåÀ» ÃʱâÈ­ ÇÑ´Ù. //. Æ÷Ä¿½º °ü·ÃÇÔ¼ö. virtual void SetFocusWZ(){} //. ±âŸ ÇÔ¼öµé. virtual HWND GetEditHwnd(){WzAssert(!"DxEditBox¶û ¿¬µ¿ ¾ÈµÇ¼­ Áö¿ø¾ÈÇÔ.");return NULL;} virtual void SetTextNCRect(int nTopThick, int nBottomThick, int nLeftThick, int nRightThick){} //. ±Û¾¾¸¦ Ãâ·ÂÇÒ ¼³Á¤. ÇØ´ç µÎ²² ¸¸Å­ Àüü Å©±â¿¡¼­ »©ÁØ´Ù. virtual void SetUseIndicator(bool bl){} virtual bool GetUseIndicator(){return false;} virtual void SetTextOutlineColor(COLORREF rgbColor){} virtual COLORREF GetTextOutlineColor(){return RGBA(0,0,0,255);} virtual void SetTextKind(ENUM_TEXT_KIND eTK){}; virtual ENUM_TEXT_KIND GetTextKind(){return ETK_BASE;}; }; //-------------------------------------------------------------- // CCtrlEditWZ Class //-------------------------------------------------------------- class CCtrlEditWZ : public CCtrlBaseEdit {//. ÇöÀç »ç¿ë ¾ÈÇÔ. public: CCtrlEditWZ(); virtual ~CCtrlEditWZ(); virtual void OnInitialize(); virtual bool OnCreate(DWORD dwCtrlID,DWORD dwStyle,HWND hParentWnd,HINSTANCE hInstance,RECT* rtSize,void* pDraw); virtual void OnDestroy(); virtual void OnDoAction(); virtual bool OnDraw(bool bl); //. ·Îµå / ÀúÀå °ü·Ã ÇÔ¼ö. virtual void OnLoad(HANDLE hHandle); virtual void OnSave(HANDLE hHandle); virtual void SetStyle(DWORD dwStyle); virtual void UpdateWindowWZ(HWND hParent); //. À̹ÌÁö Á¤º¸ °»½ÅÀ» ÇÒ¶§ È£Ãâ. virtual void ReleaseImage(); virtual bool MoveWindowWZ(float fx, float fy, float fWidth, float fHeight); virtual bool SendMessageWZ(SI_MESSAGE* pMsg); virtual bool HaveFocus(){return m_blHasFocus;} virtual void OnFocusIn(); virtual void OnFocusOut(); public: //. ÆùÆ® °ü·Ã ÇÔ¼ö. virtual void SetFontID(DWORD dwFontID); //. Font ID ¼³Á¤ÇÑ´Ù. virtual DWORD GetFontID(); //. Font ID ¾ò¾î¿Â´Ù. virtual LOGFONTA* GetFontInfo(){return &m_lplf;} //. ÆùÆ® Á¤º¸¸¦ °¡Á®¿Â´Ù. virtual void SetFontInfo(LOGFONTA* lplf){WzAssert(!"Áö¿ø ¾ÈÇÔ. ID·Î »ç¿ëÇϼÀ");} //. »ö»ó °ü·Ã ÇÔ¼ö. virtual void SetColorCaret(COLORREF color); //. ij·µ »öÀ» ¼³Á¤ÇÑ´Ù. virtual void SetColorText(COLORREF color); //. ¹®ÀÚ »öÀ» ¼³Á¤ÇÑ´Ù. virtual void SetColorSelBack(COLORREF color){m_rgbSelBackColor = color;} virtual void SetColorSelText(COLORREF color){m_rgbSelTextColor = color;} virtual void SetColorCompText(COLORREF color){m_rgbCompColor = color;} virtual void SetColorCompBack(COLORREF color){m_rgbCompWinColor = color;} virtual void SetColorCompCaret(COLORREF color){m_rgbCompCaretColor = color;} virtual void SetColorIndicatorIme(COLORREF color){m_rgbIndicatorImeColor = color;} virtual void SetColorIndicatorEng(COLORREF color){m_rgbIndicatorEngColor = color;} virtual void SetColorIndicatorBK(COLORREF color){m_rgbIndicatorBkColor = color;} virtual COLORREF GetFontColor(); virtual COLORREF GetCaretColor(){return m_rgbCaretColor;} virtual COLORREF GetSelBackColor(){return m_rgbSelBackColor;} virtual COLORREF GetSelTextColor(){return m_rgbSelTextColor;} virtual COLORREF GetCompTextColor(){return m_rgbCompColor;} virtual COLORREF GetCompBackColor(){return m_rgbCompWinColor;} virtual COLORREF GetCompCaretColor(){return m_rgbCompCaretColor;} virtual COLORREF GetIndicatorImeColor(){return m_rgbIndicatorImeColor;} virtual COLORREF GetIndicatorEngColor(){return m_rgbIndicatorEngColor;} virtual COLORREF GetIndicatorBKColor(){return m_rgbIndicatorBkColor;} //. ÅØ½ºÆ® °ü·ÃÇÔ¼ö. virtual void GetTextWZA(OUT LPSTR pszText, int nLength); virtual void GetTextWZW(OUT LPWSTR pwszText, int nLength); virtual void SetTextWZA(LPCSTR pszText, bool bSelected=false); virtual void SetTextWZW(LPCWSTR pwszText, bool bSelected=false); virtual void SetLimitText(DWORD dwLimit); //. ¹®ÀåÀÇ ±æÀ̸¦ Á¦ÇÑÇÑ´Ù. virtual void ClearText(); //. ¹®ÀåÀ» ÃʱâÈ­ ÇÑ´Ù. //. Æ÷Ä¿½º °ü·ÃÇÔ¼ö. virtual void SetFocusWZ(); //. ±âŸ ÇÔ¼öµé. virtual HWND GetEditHwnd(){WzAssert(!"DxEditBox¶û ¿¬µ¿ ¾ÈµÇ¼­ Áö¿ø¾ÈÇÔ.");return NULL;} virtual void SetTextNCRect(int nTopThick, int nBottomThick, int nLeftThick, int nRightThick); //. ±Û¾¾¸¦ Ãâ·ÂÇÒ ¼³Á¤. ÇØ´ç µÎ²² ¸¸Å­ Àüü Å©±â¿¡¼­ »©ÁØ´Ù. public: LRESULT EditSubProc( HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam); protected: void ReleaseFont(); void ReleaseHDC(); void ClearBuffer24Bit(PBYTE pbyBuffer, short nRed, short nGreen, short nBlue); //24 ºñÆ® ±âÁظ¸ ó¸®ÇÑ´Ù. bool IsEditFocus(); void SetAlphaBuffer(void* pVoid); void SetDCToTexture(); void CreateBackBuffer(int nWidth, int nHeight); void RegisterLogFont(LOGFONTA* lplf); protected: //. Mouse °ü·Ã ÇÔ¼öµé. virtual bool Message_MouseLButtonDown(SI_MESSAGE* pMsg); virtual bool Message_MouseLButtonUp(SI_MESSAGE* pMsg); virtual bool Message_MouseLButtonDoubleClick(SI_MESSAGE* pMsg); virtual bool Message_MouseMove(SI_MESSAGE* pMsg); //. KeyDown °ü·Ã ¸Þ¼¼Áö. virtual bool Message_KeyDown(SI_MESSAGE* pMsg); private: HWND m_hWndEdit; WNDPROC m_OldEditProc; int m_nLimit; //. Text Limit HDC m_hdc; HBITMAP m_hBmp,m_hOldBmp; BOOL m_blPassword; BOOL m_blComposition; BYTE* m_pFirst; void* m_pHandleText; HFONT m_hFont; //ÆùÆ® ÇÚµé. HFONT m_hOldFont; LOGFONTA m_lplf; //ÆùÆ® Á¤º¸ ±¸Á¶Ã¼ API¿¡¼­ Áö¿øÇÏ´Â ÆùÆ® Á¤º¸ ±¸Á¶Ã¼ COLORREF m_rgbTextColor; //ÅØ½ºÆ®ÀÇ Ä®¶ó Á¤º¸¸¦ ¼ÂÆÃ. COLORREF m_rgbCaretColor; COLORREF m_rgbSelBackColor; //.¼±ÅÃµÈ ¿µ¿ªÀÇ »ö ¼³Á¤. COLORREF m_rgbSelTextColor; //.¼±ÅÃµÈ ¿µ¿ªÀÇ ÅØ½ºÆ® »ö¼³Á¤. // Color of various IME elements COLORREF m_rgbCompColor; // Composition string color COLORREF m_rgbCompWinColor; // Composition string window color COLORREF m_rgbCompCaretColor; // Composition string caret color COLORREF m_rgbIndicatorImeColor; // Indicator text color for IME COLORREF m_rgbIndicatorEngColor; // Indicator text color for English COLORREF m_rgbIndicatorBkColor; // Indicator text background color bool m_blCaretState; //. ÇöÁ¦ ij·µ »óÅÂ. bool m_blOldCaretState; int m_nAR, m_nAG, m_nAB; //. ¾ËÆÄó¸® ÇÒ ¹è°æ »ö±ò. // STD_STRING m_stdStrFontID; //. ÆùÆ® ¾Æµð. DWORD m_dwFontID; RECT m_rcText; //. TextÀÇ ¿µ¿ª. RECT m_rcTextBorder; };