//LogCtrl.h
|
//LogCtrl.h
|
#ifndef __LOGCTRL_H
|
#define __LOGCTRL_H
|
#define __LOGCTRL_LIB_H
|
|
#ifndef __AFXTEMPL_H
|
#include <afxtempl.h>
|
#endif
|
|
//LOG CELL STATE
|
//MERGE
|
#define LCS_NORML 0x0000
|
#define LCS_MERGE 0x0001
|
#define LCS_UNUSE 0x0002
|
|
//LINE
|
#define LCS_TLINE 0x0001 //TOP LINE DRAW
|
#define LCS_BLINE 0x0002 //BOTTOM LINE DRAW
|
#define LCS_LLINE 0x0004 //LEFT LINE DRAW
|
#define LCS_RLINE 0x0008 //RIGHT LINE DRAW
|
#define LCS_RECT LCS_TLINE|LCS_BLINE|LCS_LLINE|LCS_RLINE
|
|
//merge state
|
#define SetFlag(n) DWORD(BYTE(n)<<16)
|
#define GetFlag(d) int((d & 0x00FF0000)>>16)
|
|
#define SetDown(n) DWORD(BYTE(n)<<8)
|
#define GetDown(d) int((d & 0x0000FF00)>>8)
|
|
#define SetRight(n) DWORD(BYTE(n))
|
#define GetRight(d) int((d & 0x000000FF))
|
|
#define LOGCHECK(b) if(b){return;}
|
#define LOGCHECK0(b) if(b){return 0;}
|
#define LOGCHECK1(b) if(b){return -1;}
|
|
class CPrintDC;
|
class CLogCell;
|
class CLogPage;
|
class CLogCtrl;
|
|
typedef CArray<CLogCell,CLogCell&> CLogItem;
|
typedef CArray<CLogItem,CLogItem&> CLogItemArray;
|
typedef CArray<CLogPage,CLogPage&> CLogPageArray;
|
|
typedef struct tagLOGCELL
|
{
|
BYTE m_nLine; //»óÇÏÁÂ¿ì ¶óÀÎ
|
UINT m_nState;//´Ù¸¥¼¿°ú º´ÇյƴÂÁö ..
|
UINT m_nFormat;//Á¤·Ä¸ðµå
|
RECT m_rect; //¼¿ÀÇ ¿µ¿ª
|
COLORREF m_txtclr;//±ÛÀÚ»ö
|
COLORREF m_bkgclr;//¹è°æ»ö
|
CString m_strTxt;//±ÛÀÚ
|
CFont* m_pfont; //ÆùÆ®
|
CBitmap* m_pBitmap;//ºñÆ®¸Ê
|
}LOGCELL;
|
|
//Orientation=°¡·Î(1), ¼¼·Î(2) bDialog=DoModal()
|
class AFX_EXT_CLASS CPrintDC
|
{
|
public:
|
CPrintDC();
|
virtual ~CPrintDC();
|
CDC* GetPrintDC(int Orientation, BOOL bDialog=FALSE);
|
protected:
|
CDC *m_pDC;
|
};
|
|
class CLogCell : public tagLOGCELL
|
{
|
public:
|
CLogCell();
|
CLogCell(LPCSTR lpstr,
|
CRect rect,
|
int nFormat=DT_CENTER,
|
COLORREF textColor=0x00000000,
|
COLORREF backColor=0x00ffffff,
|
CFont* pf=NULL);
|
|
void operator=(const CLogCell& log);
|
void InitCell();
|
void Draw(CDC* pDC);
|
};
|
|
class AFX_EXT_CLASS CLogPage
|
{
|
public:
|
CLogPage();
|
CLogPage(CPoint startPnt);
|
virtual ~CLogPage();
|
void RemoveAll();
|
void operator=(CLogPage& page);
|
|
//Çà,¿ °¹¼ö¸¦ ¼³Á¤ÇÑ´Ù.
|
void SetColCount(int nCount);
|
void SetRowCount(int nCount);
|
BOOL RemoveRow(int nRow);
|
|
//ÀåÇ¥ Ãâ·ÂÀ§Ä¡
|
void SetStartPoint(CPoint startPnt);
|
CPoint GetStartPoint() const;
|
|
//Çà,¿ °¹¼ö¸¦ ¸®ÅÏÇÑ´Ù.
|
int GetColCount() const;
|
int GetRowCount() const;
|
|
//Æø,³ôÀ̸¦ ¼³Á¤ÇÑ´Ù.
|
BOOL SetColWidth(int nCol, int nWidth);
|
BOOL SetRowHeight(int nRow, int nHeight);
|
|
//ÆùÆ®¸¦ ¼³Á¤ÇÑ´Ù.
|
BOOL SetCellFont(int nRow, int nCol, CFont* pf);
|
BOOL SetCellFont(int nsRow, int nsCol, int neRow, int neCol, CFont* pf);
|
CFont* GetCellFont(int nRow, int nCol);
|
|
//¹è°æ»öÀ» ¼³Á¤ÇÑ´Ù.
|
BOOL SetCellBkgColor(int nRow, int nCol, COLORREF color);
|
COLORREF GetCellBkgColor(int nRow, int nCol);
|
|
//±ÛÀÚ»öÀ» ¼³Á¤ÇÑ´Ù.
|
BOOL SetCellTxtColor(int nRow, int nCol, COLORREF color);
|
COLORREF GetCellTxtColor(int nRow, int nCol);
|
|
//±ÛÀÚÀ§Ä¡ ¼³Á¤
|
BOOL SetCellFormat(int nRow, int nCol, int nFormat);
|
int GetCellFormat(int nRow, int nCol);
|
|
//RectÀ» ¼³Á¤ÇÑ´Ù.
|
BOOL SetCellRect(int nRow, int nCol, CRect rect);
|
BOOL GetCellRect(int nRow, int nCol, CRect& rect);
|
|
//BITMAPÀ» ¼³Á¤ÇÑ´Ù.
|
BOOL SetCellBmp(int nRow, int nCol, CBitmap* pBmp);
|
CBitmap* GetCellBmp(int nRow, int nCol);
|
|
//»ç°¢Çü ±×¸±¶§ ¾î´À À§Ä¡¸¦ ±×¸± °ÍÀΰ¡ ¼³Á¤ÇÑ´Ù.
|
BOOL SetCellLine(int nRow, int nCol, int nState=LCS_RECT/*LCS_RECT*/);
|
int GetCellLine(int nRow, int nCol);
|
|
//¼¿¿¡ ±ÛÀÚÀ» ÀÔ·ÂÇÑ´Ù.
|
BOOL SetItemText(int nRow, int nCol, LPCTSTR lpstr, int nFormat=DT_CENTER|DT_VCENTER|DT_SINGLELINE);
|
CString GetItemText(int nRow, int nCol);
|
|
BOOL SetCell(int nRow, int nCol, CLogCell lc);
|
CLogCell* GetCell(int nRow, int nCol);
|
|
//¼¿À» º´ÇÕÇÑ´Ù.
|
BOOL CellMerge(int nsCol, int nsRow, int neCol ,int neRow );
|
|
//Ãâ·ÂÇÑ´Ù.(nPageNO´Â ÆäÀÌÁö ¹øÈ£À̸ç 0ÀÏ °æ¿ì Ãâ·ÂµÇÁö ¾Ê´Â´Ù.)
|
void Draw(CDC* pDC, int nPageNO=0);
|
|
//SetPageRect(,)ÇÔ¼ö¸¦ »ç¿ë½Ã
|
//Draw(CDC* pDC, int nPageNO=0);ÇÔ¼ö¸¦ È£ÃâÇϱ⠹ٷÎÀü¿¡ »ç¿ëÇØ¾ßÇÔ
|
//¿ëµµ:
|
// <<page>> <<device>>
|
// 0 100 0 1000
|
// ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤
|
// ¦¢ (10,10) (90,10)¦¢ ¦¢ (100,100) (900,100)¦¢
|
// ¦¢ ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ ¦¢ ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢
|
// ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢
|
// ¦¢ ¦¢ ¦¢ ¦¬¦¬¦¬¦¬¦¬¦¬¦¬>¦¢ ¦¢ ¦¢
|
// ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢
|
// ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢ ¦¢
|
// ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¦¢
|
// ¦¢ (10,40) (90,40)¦¢ ¦¢ (100,400) (900,400)¦¢
|
// ¦¢ ¦¢ ¦¢ ¦¢
|
// ¦¢ ¦¢ ¦¢ ¦¢
|
// ¦¢ ¦¢ ¦¢ ¦¢
|
// ¦¢ ¦¢ ¦¢ ¦¢
|
// ¦¢ ¦¢ ¦¢ ¦¢
|
// ¦¢ ¦¢ ¦¢ ¦¢
|
// ¦¢ ¦¢ ¦¢ ¦¢
|
// ¦¢ ¦¢ ¦¢ ¦¢
|
// ¦¢ ¦¢ ¦¢ ¦¢
|
// ¦¢ ¦¢ ¦¢ ¦¢
|
// ¦¢ ¦¢ ¦¢ ¦¢
|
// ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥
|
// 200 100,200 2000 1000,2000
|
//
|
// CRect page(0,0,100,200);
|
// CRect device(0,0,1000,2000);
|
// ¿©¹éÀ» Á¶±Ý ÁÖ·Á¸é: CRect device(100,100,900,1900);
|
// SetPageRect(pDC, page, device);
|
BOOL SetPageRect(CDC* pDC, CRect page, CRect device);
|
protected:
|
bool m_IsViewPort;
|
int m_RowCnt;
|
int m_ColCnt;
|
CPoint m_startPnt;
|
CLogItemArray m_liAry;
|
};
|
|
//ÀåÇ¥ Àüü¸¦ °ü¸®ÇÑ´Ù.
|
//ÀåÇ¥¸¦ Ãâ·ÂÇϱâ À§ÇØ ²À ÇÊ¿äÇÏÁø ¾Ê´Ù.
|
//CLogPage¸¦ »ç¿ëÇØµµ ¹«¹æÇÏ´Ù.
|
class AFX_EXT_CLASS CLogCtrl
|
{
|
public:
|
CLogCtrl();
|
virtual ~CLogCtrl();
|
int GetLogPageCount();
|
void AddLogPage(CLogPage& lp);
|
CLogPage* GetLogPage(int nPage);
|
void DelLogPage(int nPage);
|
void Draw(CDC* pDC, DOCINFO* pDocInfo);
|
protected:
|
CLogPageArray m_log;
|
};
|
|
#endif
|