public frmModelViewer(String _mesh) { InitializeComponent(); isPlaying = false; messageFilterKeyUp = null; messageFilterKeyDown = null; messageFilterMouseWheel = null; modelDirectory = String.Format("{0}Models", AppDomain.CurrentDomain.BaseDirectory); track_rotatespeed.Value = 20; this.Disposed += new EventHandler(MogreForm_Disposed); tree_files.ItemDrag += new ItemDragEventHandler(treeLoad_ItemDrag); Directory.SetCurrentDirectory(Application.StartupPath); SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true); mogreWin = new OgreWindow(new Point(mogrePanel.Location.X, mogrePanel.Location.Y), new Size(mogrePanel.Height, mogrePanel.Width), mogrePanel.Handle); mogreWin.InitMogre(); tmr_rendering.Start(); inputHandler = new CustomInputHandler(mogrePanel, this, mogreWin.camera); AddMessageFilter(this.Handle); Version v = AsmInfo.Version; this.Text = String.Format("{0} v{1}.{2}.{3}", AsmInfo.Title, v.Major, v.Minor, v.Build); mogreWin.SetGrid(); if (!String.IsNullOrEmpty(_mesh)) { if (SetMeshModel(_mesh, false)) { modelDirectory = Path.GetDirectoryName(_mesh); OpenDirectory(true); } } else { OpenDirectory(true); } }
private void list_animations_MouseLeave(object sender, EventArgs e) { Application.RemoveMessageFilter(messageFilterMouseWheel); messageFilterMouseWheel = new RedirectMessageFilter(WindowsMessages.WM_MOUSEWHEEL, this.Handle); Application.AddMessageFilter(messageFilterMouseWheel); }
private void AddMessageFilter(IntPtr hWnd) { messageFilterKeyUp = new RedirectMessageFilter(WindowsMessages.WM_KEYUP, hWnd); messageFilterKeyDown = new RedirectMessageFilter(WindowsMessages.WM_KEYDOWN, hWnd); messageFilterMouseWheel = new RedirectMessageFilter(WindowsMessages.WM_MOUSEWHEEL, hWnd); Application.AddMessageFilter(messageFilterKeyUp); Application.AddMessageFilter(messageFilterKeyDown); Application.AddMessageFilter(messageFilterMouseWheel); }