Files
2022-10-26 12:25:11 +08:00

89 lines
3.0 KiB
C++

#pragma once
#include "ControlWZ.h"
//*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
// CCtrlTabWZ Class
//*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
typedef std::map <DWORD,DWORD> STD_TAB_MAP;
enum ENUM_TAB_POS {ETAB_POS_TOP, ETAB_POS_LEFT, ETAB_POS_BOTTOM, ETAB_POS_RIGHT};
class CCtrlTabWZ : public CControlWZ
{
public:
CCtrlTabWZ();
virtual ~CCtrlTabWZ();
virtual bool OnCreate(DWORD dwCtrlID,DWORD dwStyle,HWND hParentWnd,HINSTANCE hInstance,RECT* rtSize,void* pDraw);
virtual void OnDestroy();
virtual bool OnDraw(bool bl);
virtual void OnInitialize();
virtual bool MoveWindowWZ(float fx, float fy, float fWidth, float fHeight);
virtual void ReleaseImage();
//. 저장/로드 함수들.
virtual void OnLoad(HANDLE hHandle);
virtual void OnSave(HANDLE hHandle);
public:
virtual void SetTabPosition(ENUM_TAB_POS eTabpos); //. Tab의 위치를 설정한다.
ENUM_TAB_POS GetTabPosition(){return m_eTabPos;}
virtual bool SetItemCount(int nCnt); //. 최소는 1이다.
virtual int GetItemCount(){return m_nItemCnt;}
virtual void SetItemButtonImageFormat(SI_TFORMAT* pFormat); //. Item 버튼의 이미지 정보를 셋팅 해준다.
virtual SI_TFORMAT* GetItemButtonImageFormat(); //. Item 버튼의 미미지 정보를 넘겨준다.
virtual int GetCurSel(){return m_nSelItem;}
virtual void SetCurSel(int nSel);
virtual void SetItemButtonIsOutline(bool blIs); //. Item 버튼의 외곽선 있냐. 없냐.
virtual bool GetItemButtonIsOutline();
virtual void SetItemButtonOutlineColor(COLORREF rgb); //. ITem 버튼의 와곽선 칼라 셋팅.
virtual COLORREF GetItemButtonOutlineColor();
virtual void SetItemWidth(long lnW); //. Tab button 의 넓이를 셋팅해준다.
virtual long GetItemWidth(){return m_lnItemWidth;} //. Tab button 의 넓이를 가져온다.
virtual short GetHeightRatio(){return m_nSelectRatio;} //. Tab Height or Base Height Ratio.
virtual void SetHeightRatio(short nRatio);
virtual int GetItemUseIDCount(int IIndex); //. Item button의 위치값을 준다.
virtual DWORD GetItemUseIDIndex(int IIndex, int DIndex); //. Item button의 위치값과 가져올 데이타의 위치값을 준다.
virtual void AddItembelongID(int IIndex, DWORD dwID); //. Item 안에 사용할 ID 추가.
virtual void RemoveItembelongID(int IIndex, DWORD dwID); //. Item 안에 사용중인 ID 제거.
virtual void RemoveItemUseIDAll(int IIndex);
protected:
void SelectItemButton(int nIndex);
//. Mouse 관련 함수들.
virtual bool Message_MouseLButtonDown(SI_MESSAGE* pMsg);
virtual bool Message_MouseLButtonUp(SI_MESSAGE* pMsg);
virtual bool Message_MouseMove(SI_MESSAGE* pMsg);
void DrawTabPosTop();
void DrawTabPosLeft();
void DrawTabPosBottom();
void DrawTabPosRight();
protected:
STD_TAB_MAP m_stdTabMab;
short m_nItemCnt; //.탭의 갯수. 기본 1로 셋팅.
int m_nSelItem; //.선택된 Item Index.
bool m_blItemOutline;
COLORREF m_rgbItemColor;
long m_lnItemWidth;
short m_nSelectRatio;
float m_fHeightRatio;
ENUM_TAB_POS m_eTabPos;
};