控件重绘 C# WinForm控件美化扩展系列之TabControl
2022-01-07 15:10:54 340KB 控件重绘 TabControl
1
环境:window 语言:c++ 此mfc列表控件美化类包含ListCtrlCl.h,ListCtrlCl.cpp以及一个txt的类使用实例并一行一注解。 ①在工程目录.h文件中添加引用#include “ListCtrlCl.h” 添加实例化CListCtrlCl m_listctrl; 再在某个列表初始化函数中添加相关代码即可。 ②资源中含有一个操作实例,可直接使用或更改相应表头后使用 ③相关注意事项(初学者容易犯的错误也已经在txt使用说明中做了注意) ④列表美化,主要对表头颜色,字体,扩展风格做了更改
2021-12-16 11:29:30 5KB 列表控件美化
1
wpf控件库重写所有基础控件(按钮、表格、滚动条等美化),非常漂亮
2021-11-29 11:49:00 2.76MB wpf 控件库 控件美化
1
比网上其他版本(也包括之前在此发的两次)修正: 去除tab只有9页的限制 修正tab页宽度超过1万后,应该在其他页中的控件会留一部分在当前页 放多个没有left、top或WhatsThisHelpID的控件不会产生错误(只是不会随页变动) 修正tabstop不能保持原值错误 修正鼠标停在tab上会不断刷新占用系统资源甚至内存溢出错误(去除usercontrol_mouseover中refresh) tab标题头背景透明处理(美化了^_^) '-------------------------------------------- 修正后仍存在的不足 -------------------------------- 1、控件必须编译后使用,否则一旦拖放出新的adodc等会让自定义控件变为不可用状态的控件,TAB则会跳页错乱! 2、tab控件中的WhatsThisHelpID属性被占用(-_-#,没办法,为了省系统资源,好在多数控件有这个属性且基本没人用,偷笑^^) 3、没有WhatsThisHelpID属性的控件不会随页变动 4、如果把本控件的BackColor设成&H00FF00DA& ,则所有放在Tab页上的控件将与背景一起被透明掉。 (本控件会重画放在其上的控件,所以控件也会被透明) 这个问题其实不算问题,没人必须把背景色设的和这个完全一样吧^^,哪怕差1也可以啊,点明这个问题只是要说明本控件的背景透明或任意形状控件的制作原理 原理: backstyle设为:0 maskColor设为:&H00FF00DA& (这个控件里UserControl的BackColor也要设为:&H00FF00DA&) 在Refresh方法中将在UserControl中重绘好的图作为maskPicture,即: Set UserControl.MaskPicture = UserControl.Image 这样maskpicture中背景没有被重绘的部分保持&H00FF00DA&(即与maskcolor指定的颜色相同色),该颜色的部分即被透明 (注意,指定了backstyle=0及maskpicture后超出maskpicture大小的部分全部会被透明)!!! '---------------------------------------------------------比这个前一个版本的是没有用API的,可以在我的资源里找到前两次修改的版本,使用的话还是用这个版本 这几个控件有很多可学的地方, 比如其中的错误处理(网上的源码和我上一个修改版本的源码中错误处理的部分是不太合理的,虽然我和这个控件的其他修改者一样思路,但研究后最终还是用这次发布的这个版本) 比如上一版本中的无API绘图,这个版本有api,因此图大小可变 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 测试.vbp那个是原先旧版的测试,没有跟着新版修改,所以不兼容,此楼新版是经过测试的,编译好的ocx可以直接使用(★必须使用编译好的ocx,原因一楼已经说了★) 对编译好的ocx有疑问或自己要改进的可以直接修改TabSwitch.vbp,再重新编译
1
由之前修改的5个控件(xTab控件美化稳定版、美化仿XP按钮、仿360的Switch开关控件、属性页控件、xMenu弹出式菜单控件),增加 xFrame和xCheckBox而来 xFrame比网上其他源码增加背景透明,见TransParent属性 xCheckBox选择框同样支持背景透明,见TransParent属性(风格可选VB单选框或复选框)
2021-09-30 21:01:02 322KB tab控件 美化按钮 checkbox xframe
1
开发环境.net2.0 开发工具VS2005。WinForm 开发的CheckBox 控件的美化。对CheckBox的应用很好的。
2021-08-31 17:01:11 78KB C# .net CheckBox VS2005
1
曲线控件,美化按钮,都是代码,可以拷贝到自己工程里面就可以用了
2021-08-26 14:16:03 405KB 曲线控件 美化按钮 vc6
1
已经生成了DLL 直接拖入工具栏就可以使用了
2021-08-11 10:45:39 6KB DataGridView 美化
1
C#自定义控件--美化ComboBox源码
2021-08-10 11:53:31 73KB c#
1
前面的一篇文章C# WinForm控件美化扩展系列之ListView(2)中,存在列表项文本错乱的问题,这是因为绘制文本的时候不小心选错了一个属性,把SubItem选成了Item,所以总会得到了第一项的文本。除了修正这个错误外,对列表项选中后的背景画法进行了改变,使得选中的列表项不在是每个子项都有一个矩形边框,而是全部只有一个矩形边框。另外,实现了对ListView的边框的重绘,可以轻易的更换边框颜色。 如下: private void WmNcPaint(ref Message m) { base.WndProc(ref m); if (base.BorderStyle == BorderStyle.None) { return; } IntPtr hDC = NativeMethods.GetWindowDC(m.HWnd); if (hDC == IntPtr.Zero) { throw new Win32Exception(); } try { Color backColor = BackColor; Color borderColor = _borderColor; Rectangle bounds = new Rectangle(0, 0, Width, Height); using (Graphics g = Graphics.FromHdc(hDC)) { using (Region region = new Region(bounds)) { region.Exclude(AbsoluteClientRectangle); using (Brush brush = new SolidBrush(backColor)) { g.FillRegion(brush, region); } } ControlPaint.DrawBorder( g, bounds, borderColor, ButtonBorderStyle.Solid); } } finally { NativeMethods.ReleaseDC(m.HWnd, hDC); } m.Result = IntPtr.Zero; }
2021-07-16 12:00:10 161KB c#
1