• 大小: 27KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-13
  • 语言: 其他
  • 标签: 控件  

资源简介

个人开发的表格,因为常常使用到ListCtrl 而listctrl又有点缺陷不好用,于是就开发了这个表格,对于少量的表格处理。还是很好的。使用说明和效果图都在,相信你会喜欢!

资源截图

代码片段和文件信息

 
#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; //行数
int Cols=2;//列数
/////
m_GridColor=RGB(2552550);//格子颜色
m_BackColor=RGB(000);//背景色
m_FontColor=RGB(02550);//字颜色
//是否需要标题栏
flag_title=true;
m_title=“Allegro“;
/*写入内容时,起始位置的补偿量*/
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\

评论

共有 条评论