資源簡介
個人開發(fā)的表格,因為常常使用到ListCtrl 而listctrl又有點缺陷不好用,于是就開發(fā)了這個表格,對于少量的表格處理。還是很好的。使用說明和效果圖都在,相信你會喜歡!

代碼片段和文件信息
?
#include?“stdafx.h“?
#include?“mySheet.h“
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif
?
CmySheet::CmySheet()
{
InitialVaraible();
}
CmySheet::~CmySheet()
{
}
BEGIN_MESSAGE_MAP(CmySheet?CStatic)
//{{AFX_MSG_MAP(CmySheet)
ON_WM_PAINT()
ON_WM_ERASEBKGND()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
?
void?CmySheet::DrawRangle(CDC?*pDC)
{
if(!flag_drwfirst)
{
Invalidate();
flag_drwfirst=true;
}
GetClientRect(rect);
CPen?pen;
pen.CreatePen(PS_SOLID2m_GridColor);
::Selectobject(pDC->GetSafeHdc()pen);
pDC->SetBkMode(TRANSPARENT);
pDC->MoveTo(rect.leftrect.top);
pDC->LineTo(rect.leftrect.bottom?);
pDC->LineTo(rect.right?rect.bottom?);
pDC->LineTo(rect.right?rect.top?);
pDC->LineTo(rect.leftrect.top?);
pen.Deleteobject();
DrawGridLine(pDC);
}
void?CmySheet::OnPaint()?
{
CPaintDC?dc(this);?//?device?context?for?painting?
DrawRangle(&dc);
?
}
void?CmySheet::SetBKColors(COLORREF?bkcolor)
{
m_BackColor=bkcolor;
Invalidate();
}
void?CmySheet::SetGridColor(COLORREF?gridcolor)
{
m_GridColor=gridcolor;
Invalidate();
}
void?CmySheet::InitialVaraible()
{
Rows=2;?//行數(shù)
int?Cols=2;//列數(shù)
/////
m_GridColor=RGB(2552550);//格子顏色
m_BackColor=RGB(000);//背景色
m_FontColor=RGB(02550);//字顏色
//是否需要標題欄
flag_title=true;
m_title=“Allegro“;
/*寫入內(nèi)容時,起始位置的補償量*/
mrStartx=1;
mrStarty=3;
flag_drwfirst=false;
for(int?i=0;i<20;i++)
m_RowWidth[i]=50;
}
void?CmySheet::DrawGridLine(CDC?*pDC)
{
CPen?pen;
pen.CreatePen(PS_SOLID1m_GridColor);
::Selectobject(pDC->GetSafeHdc()pen);
pDC->SetBkMode(TRANSPARENT);
int?posy=0;
if(flag_title)
{
int?posx=0;
mrHight=(rect.Height()-30)/(float)Cols;//列高
for(int?i=0;i<=Rows+1;i++)//畫行線
{
pDC->MoveTo(rect.leftrect.top+(int)(i*mrHight)+30);
pDC->LineTo(rect.rightrect.top+(int)(i*mrHight)+30);
}
for(??i=1;i {
posy+=(int)(m_RowWidth[i]);
pDC->MoveTo(rect.left+int(posy)rect.top+30);
pDC->LineTo(rect.left+int(posy)rect.bottom);
}
pen.Deleteobject();
int?centerposxcenterposy;
?
pDC->SetTextColor(m_FontColor);
centerposx=rect.left+10?;
centerposy=rect.top+10;
pDC->TextOut(centerposxcenterposym_title);
}
else
{
mrWidth =rect.Width()/(float)Rows;//行寬
mrHight =rect.Height()/(float)Cols;//列高
?
for(int?i=1;i {
pDC->MoveTo(rect.leftrect.top+(int)(i*mrHight));
pDC->LineTo(rect.right?rect.top+(int)(i*mrHight?));
}
for(??i=1;i {
posy+=int(m_RowWidth[i]);
pDC->MoveTo(rect.left+posyrect.top);
pDC->LineTo(rect.left+posyrect.bottom??);
}
pen.Deleteobject();
}?
}
void?CmySheet::SetRowsCols(int?row?int?col)
{
if(row<1)
Rows=1;
else
Rows=row;
if(col<1)
Cols=1;
else
Cols=col;
}
void?CmySheet::SetFontColor(COLORREF?fonfcolor
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????48794??2013-01-03?16:29??MyGrid\grid.JPG
?????文件????????7690??2013-01-03?16:27??MyGrid\mySheet.cpp
?????文件????????1294??2012-12-28?15:49??MyGrid\mySheet.h
?????文件????????1344??2013-01-03?16:43??MyGrid\使用方法.txt
?????目錄???????????0??2013-01-03?16:30??MyGrid\
評論
共有 條評論