📄 txtview.cpp
字号:
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 + -