AE开发之默认滚轮缩放功能反置(C#修改注册表数据)
时间:2022-03-18 10:30
ArcMap默认的滚轮缩放是向下放大,向上缩小
如果想修改成向上放大,向下缩小,直接在ArcMap-Customize-ArcMap Options里,
将最下面的Mouse Wheel and Continuous Zoom/Pan Tool里Roll Forward/Drag Up改成Zoom In即可
原理上,修改这个属性,会把注册表里HKEY_CURRENT_USER\Software\ESRI\Desktop10.1\ArcMap\Settings的ReverseMouseWheel值从1修改为0
默认值1代表向下放大,而0则代表向下缩小
但是以上修改在ArcGis 10.1版本里,无法对ArcGis Engine生效(之后版本应该同理)
因为ArcGis Engine里这个注册表属性在HKEY_CURRENT_USER\Software\ESRI\Engine10.1\ArcMap\Settings里
在C#代码里,修改注册表数据方法如下:
1 using Microsoft.Win32; 2 3 private void ReverseMouseWheel() 4 { 5 try 6 { 7 RegistryKey setKey = Registry.CurrentUser.OpenSubKey(@"Software\ESRI\Engine10.1\ArcMap\Settings", true); 8 if (setKey != null) 9 { 10 if (setKey.GetValue("ReverseMouseWheel") == null) 11 { 12 setKey.SetValue("ReverseMouseWheel", 0, RegistryValueKind.DWord); 13 } 14 else if (setKey.GetValue("ReverseMouseWheel").ToString() != "0") 15 { 16 setKey.SetValue("ReverseMouseWheel", 0); 17 } 18 19 } 20 } 21 catch { } 22 }ReverseMouseWheel
同时在初始化时调用该方法即可:
1 public MainForm() 2 { 3 InitializeComponent(); 4 this.ReverseMouseWheel(); 5 }MainForm()
这个方法是直接修改注册表属性里的ReverseMouseWheel值,以此修改滚轮缩放功能
C#修改注册表其他数据也可以参考此代码