private void AddControls() { if (newWindowList.Count <= 0) { return; } while (newWindowList.Count > 0) { if (this.tabControl.InvokeRequired) { SetTextCallback d = new SetTextCallback(AddControls); this.Invoke(d, new object[] { }); return; } UsedWindow tmpWindow = new UsedWindow { handle = IntPtr.Zero, control = new ApplicationControl(), tab = new TabPage() }; tmpWindow.control.SuspendLayout(); tmpWindow.handle = newWindowList[0].handle; tmpWindow.control.WindowHandle = newWindowList[0].handle; tmpWindow.control.Location = new Point(0, 0); tmpWindow.control.Size = new Size(936, 607); tmpWindow.tab.Controls.Add(tmpWindow.control); tmpWindow.tab.BorderStyle = BorderStyle.FixedSingle; this.tabControl.TabPages.Add(tmpWindow.tab); tmpWindow.control.Dock = DockStyle.Fill; int length = GetWindowTextLength(tmpWindow.handle); if (length != 0) { StringBuilder builder = new StringBuilder(length); GetWindowText(tmpWindow.handle, builder, length + 1); tmpWindow.tab.Text = builder.ToString(); } tabControl.SelectedTab = tmpWindow.tab; if (registeredHooks.Count <= 0 || !registeredHooks.Contains(newWindowList[0].id)) { SetWinEventHook(EVENT_MIN, EVENT_MAX, IntPtr.Zero, listener, newWindowList[0].id, 0, WINEVENT_OUTOFCONTEXT | WINEVENT_SKIPOWNTHREAD); registeredHooks.Add(newWindowList[0].id); } usedWindowList.Add(tmpWindow); newWindowList.RemoveAt(0); } }
private void CustomEvent_Handler() { UsedWindow tmpWindow = new UsedWindow { handle = IntPtr.Zero, control = new ApplicationControl(), tab = new TabPage() }; foreach (var usedWindow in usedWindowList) { if (usedWindow.tab == tabControl.SelectedTab) { tmpWindow = usedWindow; } } int length = GetWindowTextLength(tmpWindow.handle); if (length != 0) { StringBuilder builder = new StringBuilder(length); GetWindowText(tmpWindow.handle, builder, length + 1); tmpWindow.tab.Text = builder.ToString(); } }
private void AddControls() { if(newWindowList.Count <= 0) return; while (newWindowList.Count > 0) { if (this.tabControl.InvokeRequired) { SetTextCallback d = new SetTextCallback(AddControls); this.Invoke(d, new object[] { }); return; } UsedWindow tmpWindow = new UsedWindow {handle = IntPtr.Zero ,control = new ApplicationControl(), tab = new TabPage()}; tmpWindow.control.SuspendLayout(); tmpWindow.handle = newWindowList[0].handle; tmpWindow.control.WindowHandle = newWindowList[0].handle; tmpWindow.control.Location = new Point(0, 0); tmpWindow.control.Size = new Size(936, 607); tmpWindow.tab.Controls.Add(tmpWindow.control); tmpWindow.tab.BorderStyle = BorderStyle.FixedSingle; this.tabControl.TabPages.Add(tmpWindow.tab); tmpWindow.control.Dock = DockStyle.Fill; int length = GetWindowTextLength(tmpWindow.handle); if (length != 0) { StringBuilder builder = new StringBuilder(length); GetWindowText(tmpWindow.handle, builder, length + 1); tmpWindow.tab.Text = builder.ToString(); } tabControl.SelectedTab = tmpWindow.tab; if(registeredHooks.Count <= 0 || !registeredHooks.Contains(newWindowList[0].id)) { SetWinEventHook(EVENT_MIN, EVENT_MAX, IntPtr.Zero, listener, newWindowList[0].id, 0, WINEVENT_OUTOFCONTEXT | WINEVENT_SKIPOWNTHREAD); registeredHooks.Add(newWindowList[0].id); } usedWindowList.Add(tmpWindow); newWindowList.RemoveAt(0); } }