其中文件中的另存為和導出AutoCAD的操作是通過下面代碼完成的。
SaveFileDialog dlg = new SaveFileDialog();
dlg.FileName = Portal.gc.gVisioImage.VisioName;
dlg.Filter = "Visio文件(*.vsd)|*.vsd|所有文件(*.*)|*.*";
dlg.FilterIndex = 1;
if (dlg.ShowDialog() == DialogResult.OK)
{ if (dlg.FileName.Trim() != string.Empty)
{ if (File.Exists(dlg.FileName))
{ File.Copy(Portal.gc.gVisioTemplateFilePath, dlg.FileName, true);
} else
{ File.Copy(Portal.gc.gVisioTemplateFilePath, dlg.FileName);
}
}
}
SaveFileDialog dlg = new SaveFileDialog();
dlg.FileName = "";
dlg.Filter = "AutoCAD 繪圖 (*.dwg)|*.dwg|所有文件(*.*)|*.*";
dlg.FilterIndex = 1;
if (dlg.ShowDialog() == DialogResult.OK)
{ if (dlg.FileName.Trim() != string.Empty)
{ VisApplication.ActivePage.Export(dlg.FileName);
}
}
其中的視圖中有很多Visio的視圖窗口需要控制,如形狀窗口、自定義屬性窗口、掃視縮放窗口、大小位置窗口、其他還有如標尺、網格等顯示設置需要控制。這些都是通過調用Application.DoCmd((short)commandID);函數實現的,只要傳入了相應的命令ID,那麼就達到了控制顯示的功能。如自定義屬性窗口為VisUICmds.visCmdCustProp,形狀窗口為VisUICmds.visCmdShapesWindow,標尺為VisUICmds.visCmdViewRulers,網格為VisUICmds.visCmdVIEwGrid,這些屬性都是可以在SDK中查找到的。 縮放圖紙操作,請參考我的一篇文章:C#進行Visio二次開發之圖紙縮放操作的實現裡面有具體的實現過程。