private void setsnap() { esriSnappingType snaptype = new esriSnappingType(); //snaptype=(esriSnappingType)((int)esriSnappingType.esriSnappingTypePoint + (int)esriSnappingType.esriSnappingTypeEdge + (int)esriSnappingType.esriSnappingTypeEndpoint + (int)esriSnappingType.esriSnappingTypeMidpoint + (int)esriSnappingType.esriSnappingTypeIntersection + (int)esriSnappingType.esriSnappingTypeVertex + (int)esriSnappingType.esriSnappingTypeTangent); //1点 8边线 2端点 16中点 32交点 4折点 64切线 if (ckBtnOpenBZ.Checked == false) { return; } int type = 0; DevExpress.XtraEditors.CheckButton ckbtn = new DevExpress.XtraEditors.CheckButton(); for (int i = 0; i < panel1.Controls.Count; i++) { try { ckbtn = (DevExpress.XtraEditors.CheckButton)panel1.Controls[i]; if (ckbtn.Checked) { type += Convert.ToInt32(ckbtn.Tag); } } catch { continue; } } setSnaptext(); snaptype = (esriSnappingType)type; GraphicEdit.SnapSetting.m_hookHelper = new HookHelperClass(); GraphicEdit.SnapSetting.m_hookHelper.Hook = m_axmap.Object; GraphicEdit.SnapSetting.snappingType = snaptype; GraphicEdit.SnapSetting.m_bStartSnap = true; GraphicEdit.SnapSetting.StartSnappingEnv(); }
/// <summary> /// ��ȡ���༭���� /// </summary> /// <params name="hookHelper"></params> /// <returns></returns> public static ISnappingEnvironment GetSnapEnvironment(IHookHelper hookHelper, esriSnappingType snappingType) { IHookHelper2 m_hookHelper2 = (IHookHelper2)hookHelper; IExtensionManager extensionManager = m_hookHelper2.ExtensionManager; if (extensionManager != null) { UID guid = new UIDClass(); guid.Value = "{E07B4C52-C894-4558-B8D4-D4050018D1DA}"; //Snapping extension. IExtension extension = extensionManager.FindExtension(guid); ISnappingEnvironment snappingEnv = extension as ISnappingEnvironment; //snappingEnv.SnappingType = (esriSnappingType)((int)esriSnappingType.esriSnappingTypePoint + (int)esriSnappingType.esriSnappingTypeEdge + (int)esriSnappingType.esriSnappingTypeEndpoint + (int)esriSnappingType.esriSnappingTypeMidpoint + (int)esriSnappingType.esriSnappingTypeIntersection + (int)esriSnappingType.esriSnappingTypeVertex + (int)esriSnappingType.esriSnappingTypeTangent); snappingEnv.SnappingType = snappingType; return snappingEnv; } return null; }
private void setsnap() { esriSnappingType snaptype = new esriSnappingType(); //snaptype=(esriSnappingType)((int)esriSnappingType.esriSnappingTypePoint + (int)esriSnappingType.esriSnappingTypeEdge + (int)esriSnappingType.esriSnappingTypeEndpoint + (int)esriSnappingType.esriSnappingTypeMidpoint + (int)esriSnappingType.esriSnappingTypeIntersection + (int)esriSnappingType.esriSnappingTypeVertex + (int)esriSnappingType.esriSnappingTypeTangent); //1点 8边线 2端点 16中点 32交点 4折点 64切线 if (ckBtnOpenBZ.Checked == false) return; int type = 0; DevExpress.XtraEditors.CheckButton ckbtn = new DevExpress.XtraEditors.CheckButton(); for (int i = 0; i < panel1.Controls.Count; i++) { try { ckbtn = (DevExpress.XtraEditors.CheckButton)panel1.Controls[i]; if (ckbtn.Checked) { type += Convert.ToInt32(ckbtn.Tag); } } catch { continue; } } setSnaptext(); snaptype = (esriSnappingType)type; GraphicEdit.SnapSetting.m_hookHelper = new HookHelperClass(); GraphicEdit.SnapSetting.m_hookHelper.Hook = m_axmap.Object; GraphicEdit.SnapSetting.snappingType = snaptype; GraphicEdit.SnapSetting.m_bStartSnap = true; GraphicEdit.SnapSetting.StartSnappingEnv(); }