从创建的项目开始教程1:实现向量自动化
按以下步骤添加矢量加载和保存功能:
点击“类视图”选项卡。
右键单击CVecAutDoc分支并选择Properties。
点击属性工具栏的“覆盖”按钮。
点击OnOpenDocument旁边的空白处,然后点击箭头,选择“OnOpenDocument”。
将以下代码添加到CVecAutDoc::OnOpenDocument():
CVecAutDoc::OnOpenDocument(LPCTSTR)
{
L_TCHAR szTemp [_MAX_PATH];
L_BOOL bRet;
L_INT nRet;
如果(!文档:OnOpenDocument (lpszPathName))
返回虚假的;
lstrcpy (szTemp lpszPathName);
nRet = m_VectorWindow。负载(szTemp);
如果(nRet == SUCCESS)
{
m_VectorWindow。EnableAutoScroll(真正的);
m_VectorWindow。重置();
}
其他的
{
装运箱strTmp;
strTmp。(文本格式("加载文件[%d]错误"), nRet);
AfxMessageBox (strTmp);
bRet = FALSE;
}
返回bRet;
}
点击“类视图”选项卡。
右键单击CvecAutDoc分支并选择Properties。
点击属性工具栏的“覆盖”按钮。
点击OnSaveDocument旁边的空白处,然后点击箭头,选择“OnSaveDocument”。
将以下代码添加到CTutorialDoc::OnSaveDocument():
CVecAutDoc::OnSaveDocument(LPCTSTR)
{
L_TCHAR szFileName [_MAX_PATH];
L_INT nRet = 0;
lstrcpy (szFileName lpszPathName);
//在保存之前应用任何转换
m_VectorWindow。ApplyTransformation ();
nRet = m_VectorWindow。保存(szFileName, m_iFileSaveType);
如果(nRet != SUCCESS)
{
装运箱strTmp;
strTmp。(文本格式("保存文件[%d]错误"), nRet);
AfxMessageBox (strTmp);
}
如果(nRet == SUCCESS)
SetModifiedFlag(假);
返回(nRet == SUCCESS);
}
点击“类视图”选项卡,右键单击CVecAutDoc,选择添加“添加变量…”
对于“变量类型”,输入:
L_INT
对于“变量名”输入:
m_iFileSaveType
保留“访问”为公共,并单击“确定”。
打开“资源视图”页签。双击IDR_MAINFRAME菜单。然后在“文件”菜单中,右键单击“保存”项,选择“添加事件处理程序”
在“类名”下拉框中,选择“CVecAutView”。
在Messages下拉框中,选择COMMAND。
单击“添加和编辑”按钮。
将以下代码添加到CVecAutView::OnFileSave():
无效CVecAutView: OnFileSave ()
{
L_TCHAR szSaveFileFilter [_MAX_PATH];
L_UINT uNotUsed;
L_TCHAR szFileName[_MAX_PATH], *pszFileName;
L_INT nRet;
lstrcpy ((LPTSTR) szSaveFileFilter文本(“DXF (* .dxf) | * .dxf | WMF (* .wmf) | * .wmf EMF (* .emf) | | * .emf | DRW (* .drw) | * .drw | CGM (* .cgm) | * .cgm | PLT (* .plt) | * .plt | PCT (* .pct) | *。pct |鹰图向量(* .vec) | *。气管无名动脉瘘管的vec | DXF (* .tif) | * .tif | |”));
nRet = GetDocument()->m_VectorWindow。GetFileName (szFileName, &uNotUsed);
pszFileName = (nRet == SUCCESS) ?szFileName: NULL;
文件对话框SaveDialog (
假的,
文本(“dxf”),
(LPCTSTR) pszFileName,
Ofn_hidereadonly |,
(LPCTSTR) szSaveFileFilter,
这
);
nRet = (L_INT)SaveDialog.DoModal();
如果(IDOK == nRet)
{
装运箱strFilename;
strFilename = SaveDialog.GetPathName();
L_INT nIndex = SaveDialog.m_ofn.nFilterIndex;
开关(nIndex)
{
情况下1:
GetDocument()->m_iFileSaveType = FILE_DXF;
打破;
情况下2:
GetDocument()->m_iFileSaveType = FILE_WMF;
打破;
情况下3:
GetDocument()->m_iFileSaveType = FILE_EMF;
打破;
情况下4:
GetDocument()->m_iFileSaveType = FILE_DRW;
打破;
情况下5:
GetDocument()->m_iFileSaveType = FILE_CGM;
打破;
情况下6:
GetDocument()->m_iFileSaveType = FILE_PLT;
打破;
情况下7:
GetDocument()->m_iFileSaveType = FILE_PCT;
打破;
情况下8:
GetDocument()->m_iFileSaveType = FILE_INTERGRAPH_VECTOR;
打破;
情况下9:
GetDocument()->m_iFileSaveType = FILE_TIF_DXF;
打破;
}
GetDocument()——> OnSaveDocument (strFilename);
}
}
打开“资源视图”页签。双击IDR_MAINFRAME菜单。然后在“文件”菜单中,右键单击“另存为”项,选择“添加事件处理程序”
在“类名”下拉框中,选择“CVecAutView”。
在Messages下拉框中,选择COMMAND。
点击“添加和编辑”
将以下代码添加到CVecAutView::OnFileSaveAs():
无效CVecAutView: OnFileSaveAs ()
{
OnFileSave ();
}
编译并运行项目。当您浏览本地硬盘时,您将能够查看、加载和保存矢量文件。您还可以使用数字键盘放大(+键)和缩小(-键)。