private void FindUpDown() { if (this == null || this.IsDisposed) { return; } bool bFound = false; // find the UpDown control IntPtr pWnd = Win32.GetWindow(this.Handle, Win32.GW_CHILD); while (pWnd != IntPtr.Zero) { //---------------------------- // Get the window class name char[] className = new char[33]; int length = Win32.GetClassName(pWnd, className, 32); string s = new string(className, 0, length); //---------------------------- if (s == "msctls_updown32") { bFound = true; if (!bUpDown) { //---------------------------- // Subclass it this.scUpDown = new SubClass(pWnd, true); this.scUpDown.SubClassedWndProc += new SubClass.SubClassWndProcEventHandler(scUpDown_SubClassedWndProc); //---------------------------- bUpDown = true; } break; } pWnd = Win32.GetWindow(pWnd, Win32.GW_HWNDNEXT); } if ((!bFound) && (bUpDown)) { bUpDown = false; } }
internal void DrawUpDownButtonIcons(Graphics g, SubClass scUpDown) { if ((LeftRightImages == null) || (LeftRightImages.Images.Count != 4)) { return; } //---------------------------- // calc positions Rectangle TabControlArea = _owner.ClientRectangle; Rectangle r0 = new Rectangle(); Win32.GetClientRect(scUpDown.Handle, ref r0); Brush br = new SolidBrush(SystemColors.Control); g.FillRectangle(br, r0); br.Dispose(); Pen border = new Pen(SystemColors.ControlDark); Rectangle rborder = r0; rborder.Inflate(-1, -1); g.DrawRectangle(border, rborder); border.Dispose(); int nMiddle = (r0.Width / 2); int nTop = (r0.Height - 16) / 2; int nLeft = (nMiddle - 16) / 2; Rectangle r1 = new Rectangle(nLeft, nTop, 16, 16); Rectangle r2 = new Rectangle(nMiddle + nLeft, nTop, 16, 16); //---------------------------- //---------------------------- // draw buttons Image img = LeftRightImages.Images[1]; if (img != null) { if (_owner.TabCount > 0) { Rectangle r3 = _owner.GetTabRect(0); if (r3.Left < TabControlArea.Left) { g.DrawImage(img, r1); } else { img = LeftRightImages.Images[3]; if (img != null) { g.DrawImage(img, r1); } } } } img = LeftRightImages.Images[0]; if (img != null) { if (_owner.TabCount > 0) { Rectangle r3 = _owner.GetTabRect(_owner.TabCount - 1); if (r3.Right > (TabControlArea.Width - r0.Width)) { g.DrawImage(img, r2); } else { img = LeftRightImages.Images[2]; if (img != null) { g.DrawImage(img, r2); } } } } //---------------------------- }
internal void DrawUpDownButtonIcons(Graphics g, SubClass scUpDown) { if ((LeftRightImages == null) || (LeftRightImages.Images.Count != 4)) return; //---------------------------- // calc positions Rectangle TabControlArea = _owner.ClientRectangle; Rectangle r0 = new Rectangle(); Win32.GetClientRect(scUpDown.Handle, ref r0); Brush br = new SolidBrush(SystemColors.Control); g.FillRectangle(br, r0); br.Dispose(); Pen border = new Pen(SystemColors.ControlDark); Rectangle rborder = r0; rborder.Inflate(-1, -1); g.DrawRectangle(border, rborder); border.Dispose(); int nMiddle = (r0.Width / 2); int nTop = (r0.Height - 16) / 2; int nLeft = (nMiddle - 16) / 2; Rectangle r1 = new Rectangle(nLeft, nTop, 16, 16); Rectangle r2 = new Rectangle(nMiddle + nLeft, nTop, 16, 16); //---------------------------- //---------------------------- // draw buttons Image img = LeftRightImages.Images[1]; if (img != null) { if (_owner.TabCount > 0) { Rectangle r3 = _owner.GetTabRect(0); if (r3.Left < TabControlArea.Left) g.DrawImage(img, r1); else { img = LeftRightImages.Images[3]; if (img != null) g.DrawImage(img, r1); } } } img = LeftRightImages.Images[0]; if (img != null) { if (_owner.TabCount > 0) { Rectangle r3 = _owner.GetTabRect(_owner.TabCount - 1); if (r3.Right > (TabControlArea.Width - r0.Width)) g.DrawImage(img, r2); else { img = LeftRightImages.Images[2]; if (img != null) g.DrawImage(img, r2); } } } //---------------------------- }
private void FindUpDown() { if (this == null || this.IsDisposed) return; bool bFound = false; // find the UpDown control IntPtr pWnd = Win32.GetWindow(this.Handle, Win32.GW_CHILD); while (pWnd != IntPtr.Zero) { //---------------------------- // Get the window class name char[] className = new char[33]; int length = Win32.GetClassName(pWnd, className, 32); string s = new string(className, 0, length); //---------------------------- if (s == "msctls_updown32") { bFound = true; if (!bUpDown) { //---------------------------- // Subclass it this.scUpDown = new SubClass(pWnd, true); this.scUpDown.SubClassedWndProc += new SubClass.SubClassWndProcEventHandler(scUpDown_SubClassedWndProc); //---------------------------- bUpDown = true; } break; } pWnd = Win32.GetWindow(pWnd, Win32.GW_HWNDNEXT); } if ((!bFound) && (bUpDown)) bUpDown = false; }