⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lgxgridformoredocview.cpp

📁 lgxgrid控件lgxgrid控件lgxgrid控件lgxgrid控件lgxgrid控件lgxgrid控件
💻 CPP
📖 第 1 页 / 共 2 页
字号:
   {
	 this->Lgxs[NowId].PrintView();
   }
}

void CLgxgridForMoreDocView::OnPrintSetup() //打印设置
{
   if(NowId>0)
   {
	this->Lgxs[NowId].SetPrintShow();
   }
}

void CLgxgridForMoreDocView::OnPrint() //打印
{
   if(NowId>0)
   {
	this->Lgxs[NowId].PrintYes();
   }
}

void CLgxgridForMoreDocView::OnCopy()
{
   if(NowId>0)
   {
	Lgxs[NowId].Copy();
   }
}

void CLgxgridForMoreDocView::OnPase()
{
   if(NowId>0)
   {
	Lgxs[NowId].Plaster();
   }
  

}

void CLgxgridForMoreDocView::OnCut()
{
	if (NowId>0)
	{
	 Lgxs[NowId].Copy();
	 int i1,i2,j1,j2;
	 i1=Lgxs[NowId].GetNrow();
     i2=Lgxs[NowId].GetNrowEnd();
	 j1=Lgxs[NowId].GetNlist();
	 j2=Lgxs[NowId].GetNlistEnd();
	 for(int i=i1;i<=i2;i++)
	 {
		for(int j=j1;j<=j2;j++)
		{
			Lgxs[NowId].SetData(i,j,"");
		}
	 }
	}
}

void CLgxgridForMoreDocView::OnUnite()
{
	if (NowId>0)
	{
	 int i1,i2,j1,j2;
	 i1=Lgxs[NowId].GetNrow();
     i2=Lgxs[NowId].GetNrowEnd();
	 j1=Lgxs[NowId].GetNlist();
	 j2=Lgxs[NowId].GetNlistEnd();
	 Lgxs[NowId].GridUnite(i1,j1,i2,j2,0);
	}
}

void CLgxgridForMoreDocView::OnDelData()
{
	if (NowId>0)
	{
	 int i1,i2,j1,j2;
	 i1=Lgxs[NowId].GetNrow();
     i2=Lgxs[NowId].GetNrowEnd();
	 j1=Lgxs[NowId].GetNlist();
	 j2=Lgxs[NowId].GetNlistEnd();
	 for(int i=i1;i<=i2;i++)
	 {
		 for(int j=j1;j<=j2;j++)
		 {
	       Lgxs[NowId].SetData(i,j,"");
		 }
	 }
	}
}

void CLgxgridForMoreDocView::OnSplit()
{
	if(NowId>0)
	{
	 int i1,j1;
	 i1=Lgxs[NowId].GetNrow();
	 j1=Lgxs[NowId].GetNlist();
	 Lgxs[NowId].SplitGrid(i1,j1);
    }
	
}

BOOL CLgxgridForMoreDocView::OnDragDropXYLgxs(UINT nID,float x, float y) //如果你觉得实时移动不好,请用这个
{
   	CPoint Point,SelfPoint;
	CRect MRect;
	int i;
	i=nID-1008;
	GetCursorPos(&Point);  //获得鼠标当前位置
	SelfPoint=Point;
	ScreenToClient(&SelfPoint);  //鼠标相对于窗口的位置
	Lgxs[i].SetWindowPos(&Lgxs[i],SelfPoint.x-3,SelfPoint.y-3,0,0,1);
    Lgxs[i].BringWindowToTop();
	NowId=(int)nID-1008;
    CLgxgridForMoreDocDoc* MyDoc;
	MyDoc=this->GetDocument();
	Lgxs[i].GetWindowRect(MRect);
	ScreenToClient(&MRect);
	MyDoc->GData[i].Left=MRect.left;
	MyDoc->GData[i].Top=MRect.top;
	return true;
}

BOOL CLgxgridForMoreDocView::OnDragOverXYLgxs(UINT nID,float x, float y) //移动表格
{
   	CPoint Point,SelfPoint;
	int i;
	i=nID-1008;
	GetCursorPos(&Point);  //获得鼠标当前位置
	SelfPoint=Point;
	ScreenToClient(&SelfPoint);  //鼠标相对于窗口的位置
	Lgxs[i].SetWindowPos(&Lgxs[i],SelfPoint.x-3,SelfPoint.y-3,0,0,1);
    Lgxs[i].BringWindowToTop();
	return true;
	
}

BOOL CLgxgridForMoreDocView::OnClickLgxs(UINT nID) 
{
	return true;
}

void CLgxgridForMoreDocView::OnIntoGrid()
{
   	Lists=Rows=Left=Top=0;
	CGridInto Mgridinto;
    Mgridinto.DoModal();//显示对话框
    if(Mgridinto.Onyes==1)
	{
	  Rows=Mgridinto.Rows;
	  Lists=Mgridinto.Lists;
	  Left=Mgridinto.Left;
	  Top=Mgridinto.Top;
      if(Rows>0 && Lists>0)
	  {
	    if (id+1<=1013)
		{
		  xi=xi+1;//ID递增
	      id=1008+xi;
          CLgxgridForMoreDocDoc* Mdoc=this->GetDocument();
		  Mdoc->Grids=xi;
		  Mdoc->GData[xi].Lists=Lists;
		  Mdoc->GData[xi].Rows=Rows;
		  Mdoc->GData[xi].Left=Left;
		  Mdoc->GData[xi].Top=Top;
		  Mdoc->GData[xi].Height=288;
		  Mdoc->GData[xi].Width=294;
          NowId=xi;
		  CLgxgridForMoreDocView::GridAdd(xi,Lists,Rows,Left,Top,288,294);//添加一个表格
		}
        else
		{
	       MessageBox("在一个文档内,你不能创建多于5个表格!");
		}
	  }
	}
}

BOOL CLgxgridForMoreDocView::OnMouseDownLgxs(UINT nID,short Button, short Shift, float x, float Y) 
{
	NowId=(int)nID-1008;
    Lgxs[NowId].BringWindowToTop();
    return true;
}

void CLgxgridForMoreDocView::GridAdd(int xi,int Lists,int Rows,int Left,int Top,int Height,int Width)
{
   CString Name;
   Lgxs[xi].Create(NULL, WS_VISIBLE, CRect(Left,Top,Width+Left,Height+Top), this,xi+1008);//创建控件对象
   Lgxs[xi].ShowWindow(SW_HIDE);//初始化是隐藏表格,使用不能看到表格创建的过程
   Lgxs[xi].BringWindowToTop();//表格置顶
   for(int i=1;i<=Lists;i++)
   {
	 Name.Format("%d",i);
	 Lgxs[xi].hadd(Name,1,500,true,NULL);
   }
    Lgxs[xi].SetdRows(Rows);//设置行数
    Lgxs[xi].SetSlwok(true);//设置列宽可移动
    Lgxs[xi].ShowWindow(SW_SHOW);//显示表格
}
void CLgxgridForMoreDocView::OnLwChangLgxs(UINT nID,long Lid, long Lw) 
{
	// 把列宽的改变保存到文档
    CLgxgridForMoreDocDoc* Mdoc=this->GetDocument();
	bool Fok=false;
	for(int i=1;i<=Mdoc->Lws;i++)//查找该列变动是否已登记
	{
		Fok=false;
		if(Mdoc->Ldata[i].Gid==(int)nID-1008 && Mdoc->Ldata[i].Ls==Lid)
		{
			Fok=true;
			Mdoc->Ldata[i].Lw=Lw;
        	break;
      	}
	}
	if(Fok==false)
	{
		Mdoc->Lws=Mdoc->Lws+1;
		Mdoc->Ldata[Mdoc->Lws].Gid=(int)nID-1008;
		Mdoc->Ldata[Mdoc->Lws].Ls=Lid;
		Mdoc->Ldata[Mdoc->Lws].Lw=Lw;
	}
	
}

void CLgxgridForMoreDocView::OnUnChangLgxs(UINT nID,long d1r, long d1l, long d2r, long d2l) 
{
	// 登记合并单元格的改动
    CLgxgridForMoreDocDoc* Mdoc=this->GetDocument();
	bool Fok=false;
	for(int i=1;i<=Mdoc->Us;i++)//查找变动是否已登记
	{
		Fok=false;
		if(Mdoc->UData[i].Gid==(int)nID-1008 && Mdoc->UData[i].d1r==d1r && Mdoc->UData[i].d1l==d1l)
		{
			Fok=true;
			Mdoc->UData[i].d2r=d2r;
			Mdoc->UData[i].d2l=d2l;
        	break;
      	}
	}
	if(Fok==false)
	{
		if(Mdoc->Us+1<=500)
		{
		  Mdoc->Us=Mdoc->Us+1;
		  Mdoc->UData[Mdoc->Us].Gid=(int)nID-1008;
		  Mdoc->UData[Mdoc->Us].d1r=d1r;
		  Mdoc->UData[Mdoc->Us].d1l=d1l;
		  Mdoc->UData[Mdoc->Us].d2r=d2r;
		  Mdoc->UData[Mdoc->Us].d2l=d2l;
		}
		else
		{
			MessageBox("在一个文档内,合并单元格的个数不得多于500个。");
		}
	}
}

void CLgxgridForMoreDocView::OnSpChangLgxs(UINT nID,long d1r, long d1l) 
{
	// 登记合并单元格的改动
    CLgxgridForMoreDocDoc* Mdoc=this->GetDocument();
	for(int i=1;i<=Mdoc->Us;i++)//查找变动是否已登记
	{
		if(Mdoc->UData[i].Gid==(int)nID-1008 && Mdoc->UData[i].d1r==d1r && Mdoc->UData[i].d1l==d1l)
		{
			Mdoc->UData[i].d2r=0;
			Mdoc->UData[i].d2l=0;
        	break;
      	}
	}
}

BOOL CLgxgridForMoreDocView::OnDataChangLgxs(UINT nID,long hid, long lid, LPCTSTR oldData, LPCTSTR newData) 
{
	// 登记数据的改动
    CLgxgridForMoreDocDoc* Mdoc=this->GetDocument();
	bool Fok=false;
	for(int i=1;i<=Mdoc->Datas;i++)//查找变动是否已登记
	{
		Fok=false;
		if(Mdoc->Data[i].Gid==(int)nID-1008 && Mdoc->Data[i].hid==hid && Mdoc->Data[i].lid==lid)
		{
			Fok=true;
			Mdoc->Data[i].Data=newData;
        	break;
      	}
	}

	if(Fok==false)
	{
		if(Mdoc->Datas+1<=1500000)
		{
		  Mdoc->Datas=Mdoc->Datas+1;
		  Mdoc->Data[Mdoc->Datas].Gid=(int)nID-1008;
		  Mdoc->Data[Mdoc->Datas].hid=hid;
		  Mdoc->Data[Mdoc->Datas].lid=lid;
		  Mdoc->Data[Mdoc->Datas].Data=newData;
		}
		else
		{
			MessageBox("在一个文档内,数据量不能多于1500000个。");
		}
	}

    return true;
}

void CLgxgridForMoreDocView::OnHW()
{
	if(NowId>0)
	{
	  SetHW Setghw;
      CLgxgridForMoreDocDoc* Mdoc=this->GetDocument();
	  Mdoc=this->GetDocument();
	  Setghw.Height=Mdoc->GData[NowId].Height;
	  Setghw.Width=Mdoc->GData[NowId].Width;
	  Setghw.DoModal();
      if(Setghw.Onyes=1)
	  {
	    CRect MRect;
 		Lgxs[NowId].GetWindowRect(MRect);
		ScreenToClient(&MRect);
		MRect.bottom=MRect.top+Setghw.Height;
		MRect.right =MRect.left+Setghw.Width;
		Lgxs[NowId].MoveWindow(MRect,true);	
		//将改动保存到文档
	    Mdoc->GData[NowId].Left=MRect.left;
	    Mdoc->GData[NowId].Top=MRect.top;
	    Mdoc->GData[NowId].Height=Setghw.Height;
	    Mdoc->GData[NowId].Width=Setghw.Width;
	  }
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -