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

📄 txtview.cpp

📁 数据结构链表的演示程序
💻 CPP
📖 第 1 页 / 共 5 页
字号:
			m_nLineNum++;

			temp.Format("%s",pDoc->m_BlockTypes[id].Name);
			index=ctrl.InsertItem(m_nLineNum,temp);

			temp.Format("%d",pDoc->m_BlockTypes[id].Val);
			ctrl.SetItemText(index,1,temp);
			ctrl.SetItemText(index,2,"碎裂化指数");
			temp.Format("%.8f",pDoc->m_gc_EWTypeofIValues[id].Chip);
			ctrl.SetItemText(index,3,temp);
			temp.Format("%.4f",pDoc->m_gc_EWTypeofZValues[id].Chip);
			ctrl.SetItemText(index,4,temp);
		}

		break;

	case SHOWGCTYPESNAUTOCORRE:
		m_strName="各类型变量南北向自相关分析结果";
		ctrl.InsertColumn(0,"景观名称",LVCFMT_LEFT,90);
		ctrl.InsertColumn(1,"颜色值",LVCFMT_RIGHT,60);
		ctrl.InsertColumn(2,"空间变量名称",LVCFMT_LEFT,130);
		ctrl.InsertColumn(3,"Geary C 系数",LVCFMT_RIGHT,100);
		ctrl.InsertColumn(4,"Geary z 指数",LVCFMT_RIGHT,100);

		UnsetAll(0);
		UnsetAll(2);
		SetColumnNumeric(1);
		SetColumnFloat(3);
		SetColumnFloat(4);

		m_nColNum=5;

		m_nLineNum=0;

		for(id=0;id<typenum;id++)
		{
			m_nLineNum++;

			temp.Format("%s",pDoc->m_BlockTypes[id].Name);
			int index=ctrl.InsertItem(m_nLineNum,temp);

			temp.Format("%d",pDoc->m_BlockTypes[id].Val);
			ctrl.SetItemText(index,1,temp);
			ctrl.SetItemText(index,2,"斑块数");
			temp.Format("%.8f",pDoc->m_gc_SNTypeofIValues[id].BlockNum);
			ctrl.SetItemText(index,3,temp);
			temp.Format("%.4f",pDoc->m_gc_SNTypeofZValues[id].BlockNum);
			ctrl.SetItemText(index,4,temp);

			m_nLineNum++;

			temp.Format("%s",pDoc->m_BlockTypes[id].Name);
			index=ctrl.InsertItem(m_nLineNum,temp);

			temp.Format("%d",pDoc->m_BlockTypes[id].Val);
			ctrl.SetItemText(index,1,temp);
			ctrl.SetItemText(index,2,"斑块平均面积");
			temp.Format("%.8f",pDoc->m_gc_SNTypeofIValues[id].AverArea);
			ctrl.SetItemText(index,3,temp);
			temp.Format("%.4f",pDoc->m_gc_SNTypeofZValues[id].AverArea);
			ctrl.SetItemText(index,4,temp);

			m_nLineNum++;

			temp.Format("%s",pDoc->m_BlockTypes[id].Name);
			index=ctrl.InsertItem(m_nLineNum,temp);

			temp.Format("%d",pDoc->m_BlockTypes[id].Val);
			ctrl.SetItemText(index,1,temp);
			ctrl.SetItemText(index,2,"碎裂化指数");
			temp.Format("%.8f",pDoc->m_gc_SNTypeofIValues[id].Chip);
			ctrl.SetItemText(index,3,temp);
			temp.Format("%.4f",pDoc->m_gc_SNTypeofZValues[id].Chip);
			ctrl.SetItemText(index,4,temp);
		}

		break;

	case SHOWGCTYPESEAUTOCORRE:
		m_strName="各类型变量东南--西北向自相关分析结果";
		ctrl.InsertColumn(0,"景观名称",LVCFMT_LEFT,90);
		ctrl.InsertColumn(1,"颜色值",LVCFMT_RIGHT,60);
		ctrl.InsertColumn(2,"空间变量名称",LVCFMT_LEFT,130);
		ctrl.InsertColumn(3,"Geary C 系数",LVCFMT_RIGHT,100);
		ctrl.InsertColumn(4,"Geary z 指数",LVCFMT_RIGHT,100);

		UnsetAll(0);
		UnsetAll(2);
		SetColumnNumeric(1);
		SetColumnFloat(3);
		SetColumnFloat(4);

		m_nColNum=5;

		m_nLineNum=0;

		for(id=0;id<typenum;id++)
		{
			m_nLineNum++;

			temp.Format("%s",pDoc->m_BlockTypes[id].Name);
			int index=ctrl.InsertItem(m_nLineNum,temp);

			temp.Format("%d",pDoc->m_BlockTypes[id].Val);
			ctrl.SetItemText(index,1,temp);
			ctrl.SetItemText(index,2,"斑块数");
			temp.Format("%.8f",pDoc->m_gc_SETypeofIValues[id].BlockNum);
			ctrl.SetItemText(index,3,temp);
			temp.Format("%.4f",pDoc->m_gc_SETypeofZValues[id].BlockNum);
			ctrl.SetItemText(index,4,temp);

			m_nLineNum++;

			temp.Format("%s",pDoc->m_BlockTypes[id].Name);
			index=ctrl.InsertItem(m_nLineNum,temp);

			temp.Format("%d",pDoc->m_BlockTypes[id].Val);
			ctrl.SetItemText(index,1,temp);
			ctrl.SetItemText(index,2,"斑块平均面积");
			temp.Format("%.8f",pDoc->m_gc_SETypeofIValues[id].AverArea);
			ctrl.SetItemText(index,3,temp);
			temp.Format("%.4f",pDoc->m_gc_SETypeofZValues[id].AverArea);
			ctrl.SetItemText(index,4,temp);

			m_nLineNum++;

			temp.Format("%s",pDoc->m_BlockTypes[id].Name);
			index=ctrl.InsertItem(m_nLineNum,temp);

			temp.Format("%d",pDoc->m_BlockTypes[id].Val);
			ctrl.SetItemText(index,1,temp);
			ctrl.SetItemText(index,2,"碎裂化指数");
			temp.Format("%.8f",pDoc->m_gc_SETypeofIValues[id].Chip);
			ctrl.SetItemText(index,3,temp);
			temp.Format("%.4f",pDoc->m_gc_SETypeofZValues[id].Chip);
			ctrl.SetItemText(index,4,temp);
		}

		break;

	case SHOWGCTYPESWAUTOCORRE:
		m_strName="各类型变量东北--西南向自相关分析结果";
		ctrl.InsertColumn(0,"景观名称",LVCFMT_LEFT,90);
		ctrl.InsertColumn(1,"颜色值",LVCFMT_RIGHT,60);
		ctrl.InsertColumn(2,"空间变量名称",LVCFMT_LEFT,130);
		ctrl.InsertColumn(3,"Geary C 系数",LVCFMT_RIGHT,100);
		ctrl.InsertColumn(4,"Geary z 指数",LVCFMT_RIGHT,100);

		UnsetAll(0);
		UnsetAll(2);
		SetColumnNumeric(1);
		SetColumnFloat(3);
		SetColumnFloat(4);

		m_nColNum=5;

		m_nLineNum=0;

		for(id=0;id<typenum;id++)
		{
			m_nLineNum++;

			temp.Format("%s",pDoc->m_BlockTypes[id].Name);
			int index=ctrl.InsertItem(m_nLineNum,temp);

			temp.Format("%d",pDoc->m_BlockTypes[id].Val);
			ctrl.SetItemText(index,1,temp);
			ctrl.SetItemText(index,2,"斑块数");
			temp.Format("%.8f",pDoc->m_gc_SWTypeofIValues[id].BlockNum);
			ctrl.SetItemText(index,3,temp);
			temp.Format("%.4f",pDoc->m_gc_SWTypeofZValues[id].BlockNum);
			ctrl.SetItemText(index,4,temp);

			m_nLineNum++;

			temp.Format("%s",pDoc->m_BlockTypes[id].Name);
			index=ctrl.InsertItem(m_nLineNum,temp);

			temp.Format("%d",pDoc->m_BlockTypes[id].Val);
			ctrl.SetItemText(index,1,temp);
			ctrl.SetItemText(index,2,"斑块平均面积");
			temp.Format("%.8f",pDoc->m_gc_SWTypeofIValues[id].AverArea);
			ctrl.SetItemText(index,3,temp);
			temp.Format("%.4f",pDoc->m_gc_SWTypeofZValues[id].AverArea);
			ctrl.SetItemText(index,4,temp);

			m_nLineNum++;

			temp.Format("%s",pDoc->m_BlockTypes[id].Name);
			index=ctrl.InsertItem(m_nLineNum,temp);

			temp.Format("%d",pDoc->m_BlockTypes[id].Val);
			ctrl.SetItemText(index,1,temp);
			ctrl.SetItemText(index,2,"碎裂化指数");
			temp.Format("%.8f",pDoc->m_gc_SWTypeofIValues[id].Chip);
			ctrl.SetItemText(index,3,temp);
			temp.Format("%.4f",pDoc->m_gc_SWTypeofZValues[id].Chip);
			ctrl.SetItemText(index,4,temp);
		}

		break;

	case SHOWGCTYPEAUTOCORRE:
		m_strName="各类型变量总体自相关分析结果";
		ctrl.InsertColumn(0,"景观名称",LVCFMT_LEFT,90);
		ctrl.InsertColumn(1,"颜色值",LVCFMT_RIGHT,60);
		ctrl.InsertColumn(2,"空间变量名称",LVCFMT_LEFT,130);
		ctrl.InsertColumn(3,"Geary C 系数",LVCFMT_RIGHT,100);
		ctrl.InsertColumn(4,"Geary z 指数",LVCFMT_RIGHT,100);

		UnsetAll(0);
		UnsetAll(2);
		SetColumnNumeric(1);
		SetColumnFloat(3);
		SetColumnFloat(4);

		m_nColNum=5;

		m_nLineNum=0;

		for(id=0;id<typenum;id++)
		{
			m_nLineNum++;

			temp.Format("%s",pDoc->m_BlockTypes[id].Name);
			int index=ctrl.InsertItem(m_nLineNum,temp);

			temp.Format("%d",pDoc->m_BlockTypes[id].Val);
			ctrl.SetItemText(index,1,temp);
			ctrl.SetItemText(index,2,"斑块数");
			temp.Format("%.8f",pDoc->m_gc_TypeofIValues[id].BlockNum);
			ctrl.SetItemText(index,3,temp);
			temp.Format("%.4f",pDoc->m_gc_TypeofZValues[id].BlockNum);
			ctrl.SetItemText(index,4,temp);

			m_nLineNum++;

			temp.Format("%s",pDoc->m_BlockTypes[id].Name);
			index=ctrl.InsertItem(m_nLineNum,temp);

			temp.Format("%d",pDoc->m_BlockTypes[id].Val);
			ctrl.SetItemText(index,1,temp);
			ctrl.SetItemText(index,2,"斑块平均面积");
			temp.Format("%.8f",pDoc->m_gc_TypeofIValues[id].AverArea);
			ctrl.SetItemText(index,3,temp);
			temp.Format("%.4f",pDoc->m_gc_TypeofZValues[id].AverArea);
			ctrl.SetItemText(index,4,temp);

			m_nLineNum++;

			temp.Format("%s",pDoc->m_BlockTypes[id].Name);
			index=ctrl.InsertItem(m_nLineNum,temp);

			temp.Format("%d",pDoc->m_BlockTypes[id].Val);
			ctrl.SetItemText(index,1,temp);
			ctrl.SetItemText(index,2,"碎裂化指数");
			temp.Format("%.8f",pDoc->m_gc_TypeofIValues[id].Chip);
			ctrl.SetItemText(index,3,temp);
			temp.Format("%.4f",pDoc->m_gc_TypeofZValues[id].Chip);
			ctrl.SetItemText(index,4,temp);
		}

		break;

	case SHOWTOGETINDEX:
		m_strName="聚块分析结果";
		m_nLineNum=pDoc->m_aTogetIndex.GetSize();
		m_nColNum=3;
		ctrl.InsertColumn(0,"聚块所含样方数",LVCFMT_RIGHT,120);
		ctrl.InsertColumn(1,"聚块大小(像素)",LVCFMT_RIGHT,120);
		ctrl.InsertColumn(2,"聚块均方差",LVCFMT_RIGHT,120);
		SetColumnNumeric(0);
		SetColumnNumeric(1);
		SetColumnFloat(2);
		for(id=0;id<m_nLineNum;id++)
		{
			temp.Format("%d",id+1);
			int index=ctrl.InsertItem(id,temp);
			temp.Format("%d",(id+1)*pDoc->m_nBoxlong*pDoc->m_nBoxlong);
			ctrl.SetItemText(index,1,temp);
			temp.Format("%.4f",pDoc->m_aTogetIndex[id]);
			ctrl.SetItemText(index,2,temp);
		}

		break;

	default:
		break;
	}
	SetWindowText(m_strName);
	ShowWindow(SW_SHOW);
}


void CTXTView::SetListStyle(HWND hWnd,DWORD dwView)
{
	DWORD dwStyle=GetWindowLong(hWnd,GWL_STYLE);

	if((dwStyle&LVS_TYPEMASK)!=dwView)
		SetWindowLong(hWnd,GWL_STYLE,
		(dwStyle&~LVS_TYPEMASK)|dwView);
}

void CTXTView::OnUpdateIndicatorBytes(CCmdUI* pCmdUI) 
{
	if(GetDocument()->m_bOren8)
		pCmdUI->SetText("八方向搜索");
	else
		pCmdUI->SetText("四方向搜索");
}

void CTXTView::OnUpdateIndicatorCompress(CCmdUI* pCmdUI) 
{
	CString msg;
	msg.Format("共有%ld行",m_nLineNum);
	pCmdUI->SetText(msg);
}

void CTXTView::OnUpdateIndicatorPixels(CCmdUI* pCmdUI) 
{
	CString msg;
	msg.Format("共有%ld块",GetDocument()->m_BlockNum);
	pCmdUI->SetText(msg);
}

BOOL CTXTView::OnSavelist() 
{
	CFile file;
	
	CListCtrl& ctrl=GetListCtrl();

	CString tmpstr,FileString;
	CString FileName;

	CFileDialog FileDialogBox
		(FALSE,"txt","*.txt",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
		"Text file(*.txt)|*.TXT|",NULL);		

	if(FileDialogBox.DoModal()==IDOK)
	{
		CString Eo=FileDialogBox.GetFileExt();
		Eo.MakeUpper();
		if(Eo=="TXT")
		{
			FileName=FileDialogBox.GetPathName();
		}
		else
		{
			AfxMessageBox("请确认文件名扩展名是否为 .TXT !",MB_OK,0);
			return FALSE;
		}
	}

	else
	{
		return FALSE;
	}

	LVCOLUMN column;
	column.mask=LVCF_TEXT;
	column.pszText=(LPTSTR)malloc(50);
	column.cchTextMax=50;

	for(int icol=0;icol<m_nColNum;icol++)
	{
		ctrl.GetColumn(icol,&column);
		FileString+=column.pszText;
		FileString+="\t";
	}

	FileString+="\r\n";

	for(int nLine=0;nLine<m_nLineNum;nLine++)
	{
		for(int nCol=0;nCol<m_nColNum;nCol++)
		{
			tmpstr=ctrl.GetItemText(nLine,nCol);
			tmpstr+="\t";
			FileString+=tmpstr;
		}
		FileString+="\r\n";
		
	}

	
	try
	{
		file.Open(FileName,CFile::modeCreate | CFile::modeWrite | CFile:: typeBinary);
		file.WriteHuge((LPCTSTR)FileString,FileString.GetLength());
	}

	catch (	CFileException* e)   
	{      
		THROW(e);
	}
	
	return TRUE;
}

void CTXTView::OnMakePicture() 
{
	// 定义作图方法
	CHowtoMakePicDlg howtopicdlg(NULL);
	howtopicdlg.DoModal();

	// 得到作图方法
	CString picname=howtopicdlg.m_strPicName;
	BYTE xcol=howtopicdlg.m_nXCol;
	BYTE ycolnum=howtopicdlg.m_nYColNum;
	BYTE * ycols=howtopicdlg.m_aYCol;
	BYTE * ylegends=howtopicdlg.m_aYLegends;
	COLORREF * ycolors=howtopicdlg.m_aYColors;

	// 从View中得到列名
	CString xco

⌨️ 快捷键说明

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