#pragma once #include "dlgbasewz.h" #include "controlwz.h" #include "CtrlClientWZ.h" #include typedef std::list< CControlWZ* > STD_UI_EDIT_SORT; typedef std::list STD_UI_INTERSECT_RECT; //------------------------------------------------------------------------------ //! Qualifier: ÇØ´ç ´ÙÀ̾ó·Î±×ÀÌ tooltip ±×·ÁÁö´Â ½ÃÁ¡¿¡¼­ ÄݹéÀ» È£ÃâÇÑ´Ù. //------------------------------------------------------------------------------ typedef void (*fn_CallbackTooltip)(CDialogWZ* dialog_ptr, SI_ToolTip* tooltip,int x, int y); class CStringManager; class CDialogManager; class CDialogWZ : public CDlgBaseWZ { public: //. »ó¼Ó ¹Þ´Â ÇÔ¼öµé. CDialogWZ(); virtual ~CDialogWZ(); virtual bool OnCreate(DWORD dwID, DWORD dwStyle,HWND hParentWnd,HINSTANCE hInstance,void* pDraw,CDialogManager* pPtr); //DialogŬ·¡½º¸¦ ÃʱâÈ­ ÇØÁØ´Ù. virtual void OnDoAction(); //. Action virtual void OnDraw(bool bl); virtual bool OnDrawControlWZ(DWORD dwCtrlID); //. Dialog ¾È¿¡ µî·ÏµÈ Control¸¦ ±×·ÁÁØ´Ù. virtual void ShowWindowWZ(ENUM_STATEWZ eState); virtual void UpdateWindowWZ(HWND hParent = NULL); virtual void OnFocusIn(); virtual void OnFocusOut(); virtual bool HaveFocus(){return m_blHasFocus;} public: void OnDestroy(); void OnRelease(); bool RemoveControlWZ(DWORD dwCtrlID); bool SendMessageWZ(SI_MESSAGE* pMsg); bool OnKeyDown(OUT SI_MESSAGE* message); void SetManager(CBaseManager* pPtr){m_pDialogManager = pPtr;} //³»°¡ ¼ÓÇØÀÖ´Â Manager PTR(Æ÷ÀÎÅÍ)¸¦ °¡Áö°íÀÖ´Ù. void SetStringManager(CStringManager* pPtr){m_pStringManager = pPtr;} CControlWZ* CreateControllWZ(DWORD dwCtrlID,DWORD dwKind, DWORD dwStyle,HWND hParentWnd,HINSTANCE hInstance,RECT* rtSize,void* pDraw); void SetToolTipPtr(SI_ToolTip* pToolTip){m_pToolTipInfo = pToolTip;} void SetToolTipPoint(POINT point){m_poToolTip=point;} public: //. ¿ÜºÎ Á¢±Ù¿ë ÇÔ¼öµé. virtual void RequestFocus(CControlWZ* pCtrl); //. Æ÷Ä¿½º¸¦ üũ ÇÑ´Ù.(»ç¿ë ¾ÈÇÒ °æ¿ì NULL ¼ÂÆÃ) virtual void OnInitialize(); void DisableInterSectRect(const RECT& rRT){ m_bInterSectRect = rRT; }//02/27 std::list& GetIntersectRectList() { return m_IntersectRectList; } virtual bool InterSectRect(POINT point); //. InterSectRectÀ» Ã¼Å©ÇØÁØ´Ù. virtual DWORD GetDlgID(){return m_dwDialogID;} virtual bool SetDlgID(DWORD dwDlgID); virtual CControlWZ* GetClientWZ(){return &m_ctrlClientWZ;} virtual CControlWZ* GetControlWZ(DWORD dwCtrlID); virtual CControlWZ* FindControlWZ(int nIndex); //. À妽º¿¡ ÇØ´çÇÏ´Â À§Ä¡ÀÇ ControlWZ Æ÷ÀÎÅ͸¦ ã´Â´Ù. virtual void SetStyle(DWORD dwStyle); //------------------------------------------------------------------------------ // Qualifier : ±íÀ̰¡ Àִ´ÙÀ̾ó·Î±×, ÅëÂ¥ À̹ÌÁö¸¸ ¿¡¸¸ Àû¿ë(ŸÀÏ, 3µîºÐÀº Àû¿ë¾ÈµÊ) // Parameter : float depth 0 ~ 1»çÀÌ //------------------------------------------------------------------------------ virtual void SetDepth(float depth); //. Image Á¤º¸ °ü·Ã ÇÔ¼öµé virtual void SetDialogImageFormat(SI_TFORMAT* pFMT); virtual void SetControlImageFormat(DWORD dwCtrlID,SI_TFORMAT* pFMT); virtual SI_TFORMAT* GetDialogImageFormat(DWORD dwKind = CTRL_KIND_CLIENT); virtual void SetDialogPartFormat(SI_TFORMAT* pFMT, DWORD dwKind = CTRL_KIND_CLIENT); virtual void ReleaseImage(); //. ÀúÀå/ ·Îµå virtual void OnLoad(HANDLE hHandle); virtual void OnSave(HANDLE hHandle); virtual void GetDlgPartSizeRect(RECT* rtSize,DWORD dwKind = CTRL_KIND_CLIENT); virtual void SetDlgPartSizeRect(RECT rtSize,DWORD dwKind = CTRL_KIND_CLIENT); virtual bool MoveWindowWZ(DWORD dwCtrlID, float fx, float fy, float fWidth, float fHeight); virtual bool MoveWindowWZ(float fx, float fy, float fWidth, float fHeight); virtual bool MoveWindowWZ(float fx, float fy); virtual void GetDlgSize(RECT* prtD); virtual void GetClientRect(RECT* prtD); virtual void GetCtrlSize(DWORD dwCtrlID, RECT* prtRect); virtual DWORD GetControlCount(); //. µî·ÏµÈ ÄÁÆ®·ÑÀÇ ¼ö virtual void SetMoveRECT(RECT rtR) //. À̵¿ ¿µ¿ª ¼³Á¤ ¹Ú½º ¼³Á¤. ÀÌ ¾È¿¡ Ŭ¸¯½Ã À̵¿ÇÒ¼ö ÀÖ´Ù. { m_rtMoveRECT.left = rtR.left; m_rtMoveRECT.top = rtR.top; m_rtMoveRECT.right = rtR.right; m_rtMoveRECT.bottom = rtR.bottom; } virtual RECT GetMoveRECT(){return m_rtMoveRECT;} //. À̵¿ ¿µ¿ª ¾ò±â. virtual void MoveToListIndex(int nOrig, int nDes); //. Dialog ¿ì¼±¼øÀ§¸¦ º¯°æÇØÁØ´Ù. //. ¿Ü°¢ ¶óÀÎ °ü·Ã ÇÔ¼ö. virtual void SetIsOutline(bool blIs){m_ctrlClientWZ.SetIsOutline(blIs);} //. ¿Ü°¢ Å׵θ®¸¦ ±×¸±°Ç°¡. ¸»°Ç°¡. virtual bool GetIsOutline(){return m_ctrlClientWZ.GetIsOutline();} //. ¿Ü°¢ Å׵θ® »ç¿ë ¿©ºÎ È®ÀÎ. virtual void SetOutlineColor(COLORREF rgb){m_ctrlClientWZ.SetOutlineColor(rgb);} //. ¿Ü°¢ Å׵θ® »ö ¼³Á¤. virtual COLORREF GetOutlineColor(){return m_ctrlClientWZ.GetOutlineColor();} //. ¿Ü°¢ Å׵θ® »ö ¾ò±â. virtual void SetTransparency(float fdegree); //. 0 ~ 1.0 »çÀ̰ª ÀÔ·Â. Åõ¸íµµ¸¦ ¼ÂÆÃÇÑ´Ù. float GetDlgX(){ return m_fDlgX;} float GetDlgY(){ return m_fDlgY;} void ReleaseDialogTexture() {m_ctrlClientWZ.ReleaseImage(); } virtual void SetTextReducing(bool bReducing); virtual void SetTextReducing(DWORD dwCtrlID, bool bReducing); CBaseManager* GetCtrlManager() { return m_pcCtrlManager; } void SetCallbackTooltip(fn_CallbackTooltip fn) { m_fnCallbackTooltip = fn; } protected: DWORD m_dwDialogID; CBaseManager* m_pDialogManager; //. ÀڱⰡ Æ÷ÇÑµÈ ¸Å´ÏÁ® Ŭ·¡½º Æ÷ÀÎÅÍ CStringManager* m_pStringManager; RECT m_bInterSectRect; std::list m_IntersectRectList; private: CBaseManager* m_pcCtrlManager; //. Dialog ³»ºÎÀÇ ÄÁÆ®·ÑµéÀ» °ü¸®ÇÑ´Ù. CDialogManager* m_pParentPtr; CCtrlClientWZ m_ctrlClientWZ; float m_fDlgX; float m_fDlgY; bool m_blLBClick; //. ¸¶¿ì½º ¿ÞÂÊ ¹öư Ŭ¸¯ Çß³ª. ¾ÈÇß³ª. //bool m_blRBClick; bool m_blMoveRgnClick; float m_fLBClickX; float m_fLBClickY; //float m_fOldLBClickX; //float m_fOldLBClickY; float m_fMMDistanceX; float m_fMMDistanceY; RECT m_rtMoveRECT; //. ¿øµµ¿ì ¹Ù°°Àº ±â´ÉÀ» ÇϱâÀ§ÇØ ÀÏÁ¤ÇÑ Å©±â¸¦ °¡Áö°í ÀÖ´Ù°¡. À̾ÈÀ» Ŭ¸¯ÇÒ °æ¿ì À̵¿°¡´ÉÇÏ°Ô ¼³Á¤ //. Default´Â Ŭ¶óÀÌ¾ðÆ® Àü ¿µ¿ªÀ¸·Î¼³Á¤ µÈ´Ù. CDrawCtrl* m_pDraw; //. Draw °ü·Ã Ŭ·¡½ºÀÇ Æ÷ÀÎÅ͸¦ °¡Áö°í ±×¸²À» ±×¸°´Ù. SI_ToolTip* m_pToolTipInfo; //. Ç¥½ÃÇÒ ÅøÆÁÁ¤º¸ - ÄÁÆ®·ÑÀÌ °¡Áö°í ÀÖ´Â ÅøÆÁÁ¤º¸¿¡ ´ëÇÑ Æ÷ÀÎÅÍ POINT m_poToolTip; CControlWZ* m_pControlFocus; //. ÇöÁ¦ Æ÷Ä¿½º¸¦ °¡Áö°í ÀÖ´Â ControlWZ Æ÷ÀÎÅÍ. bool m_blHasFocus; //bool m_blLockOnly; //. ¸Þ¼¼Áö¸¦ ¿Â´Ï ³ª¸¸ Àâ°í Àִ´Ù. float m_fTransparency; bool m_blIsWebCtrl; //. Web Control ÀÌ µî·ÏµÇ¾î ÀÖ³ª ¾ø³ª üũ. bool m_blIsEditCtrl; //. Dialog¿¡ Edit ControlÀÌ ÀÖ³ª ¾ø³ª üũ. //! OnDraw ¿¡¼­ tooltip ·£´õ¸µ½Ã Äݹé È£Ãâ fn_CallbackTooltip m_fnCallbackTooltip; public: //! Ä¿¼­ À§Ä¡(¸¶¿ì½º À̵¿½Ã °è¼Ó ÀúÀåÇØ ³õ´Â´Ù.) static POINT static_mousecursor_pos; static STD_UI_EDIT_SORT static_stdListEditPtr; //. Edit controlµéÀ» µû·Î °ü¸® ÇÑ´Ù. public: void SetScale(float width, float height); };