前面的文章中介绍了ListView、ListBox、Button等控件的扩展和美化,这篇文章我们将来介绍另一个美化起来比较麻烦的控件:UpDown控件NumericUpDown。NumericUpDown 控件主要功能是让用户通过单击Up-Down按钮或者使用键盘上的上下箭头来按设置好的增量改变数值。它也是一个复合控件,由一个TextBox和一个Up-Down按钮组成,对它的美化主要是对Up-Down按钮(UpDownButton)和边框(Border)的美化。边框的美化是比较简单的,本文主要介绍对UpDownButton的美化。首先,需要获取UpDownButton的句柄,这次获取UpDownButton的句柄比较简单,不需要通过API函数了,NumericUpDown控件的Controls[0]就是UpDownButton控件,所以向下面这样就可以得到UpDownButton控件了: internal Control UpDownButton { get { return [0];} } 接着将实现一个UpDownButtonNativeWindow类,把UpDownButton的句柄分配给它,就可以通过它截取UpDownButton的消息了。在这个类里面,截取WM_PAINT消息,重绘UpDownButton控件。为了绘制鼠标进入、按下、离开的不同效果,还要获取鼠标的信息,涉及一些API的运用,这里就不多介绍了,看看这个类里的几个主要的方法: #region PrivateMethods private bool LeftKeyPressed() { if () { return (GetKeyState(VK_RBUTTON)<0); } else { return (GetKeyState(VK_LBUTTON)<0); } } private void DrawUpDownButton() { bool mouseOver= false; bool mousePress=LeftKeyPressed(); bool mouseInUpButton= false; Rectangle clipRect=; RECT windowRect= new RECT(); Point cursorPoint= new Point(); Ge
numricUpDown控件美化 来自淘豆网www.taodocs.com转载请标明出处.