private void ForceFocus() { if (IsWrappingNullReference) { return; } Show(); var window = VBE.MainWindow; var mainWindowHandle = window.Handle(); var caption = Window.Caption; var childWindowFinder = new ChildWindowFinder(caption); NativeMethods.EnumChildWindows(mainWindowHandle, childWindowFinder.EnumWindowsProcToChildWindowByCaption); var handle = childWindowFinder.ResultHandle; if (handle != IntPtr.Zero) { NativeMethods.ActivateWindow(handle, mainWindowHandle); } else { System.Diagnostics.Debug.WriteLine("CodePane.ForceFocus() failed to get a handle on the MainWindow."); } }
private void ForceFocus() { Show(); var window = VBE.MainWindow; var mainWindowHandle = window.Handle(); var caption = Window.Caption; var childWindowFinder = new ChildWindowFinder(caption); NativeMethods.EnumChildWindows(mainWindowHandle, childWindowFinder.EnumWindowsProcToChildWindowByCaption); var handle = childWindowFinder.ResultHandle; if (handle != IntPtr.Zero) { NativeMethods.ActivateWindow(handle, mainWindowHandle); } }
public ChildWindowFinderTests() { finder = ChildWindowFinder.FindWindowClass(windowClass); }
/// <summary> /// 搜索父窗口(或控件)中指定类名与窗口文本的子窗口。如果没有匹配到指定类名与文本的子窗口,则返回 new IntPtr(0) /// </summary> /// <param name="hwndParent">父窗口(或控件)的句柄</param> /// <param name="className">要匹配的窗口类名,如果不需要匹配,则输入null</param> /// <param name="windowText">要匹配的窗口文本,如果不需要匹配,则输入null</param> /// <returns>如果没有匹配到指定类名与文本的子窗口,则返回 new IntPtr(0)</returns> public static IntPtr FindChildWindow(IntPtr hwndParent, string className, string windowText) { ChildWindowFinder cwf = new ChildWindowFinder(); return(cwf.FindChild(hwndParent, className, windowText)); }