分享讨论界面问题!

来源:互联网 发布:淘宝企业店铺公司注销 编辑:程序博客网 时间:2024/05/16 07:23

界面1界面2

 

个人感觉VB处理界面的几个难点:

1,界面的表达能力,个人理解:越简单越好;

2,界面的外观,俗话说:人靠衣衫。在处理界面的时候合理运用“炫”的手法还是必要的;

 

--------------------------------------------------

 

非常感谢dylike,这里就拿出自己做的一些小东西与大家分享,就当抛砖引玉了;

1,搭建一个QQPLAY外观的主窗口;

2,为控件添加(或者手工制作)SCROLLBAR;

3,配合主窗口自定义一些相关控件:重要的有scrollbar,datagridview,treeview,tabcontrol(以上2个图片有显示),richtextbox,textbox等一些常用的控件;

________________________________

PS:

不需要太追求特别的语言,结果还是相对重要些!

————————————————————————

1,搭建一个QQPLAY外观:

    目标:实现窗口最小,最大,可移动(窗口大部分区域可实现移动),可改大小;

    方法:

    a,移动,当然用Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)(略)

    b,比较麻烦的是改变大小(鼠标放置窗口四边),这里首先设置me.padding值,控件布置时会预留主窗口相应值,剩下的同样用Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)(略)处理上下左右大小调整;

    c,可移动,保证此区域为窗口或此区域的控件的enable=false即可;

    相关代码:

   【移动,调大小】

  

 

————————————————————

PS:谢谢指正;

 

 

 

2,手工绘制scrollbar

    大家可以参照一下:http://www.cnblogs.com/yellowyu/archive/2009/02/15/1390926.html

这里提到了2个实现方法:1,纯手工制作;2,为系统scrollbar打补贴,把自己的bar覆盖上去。本人均已完成这2种scrollbar的制作方法;但是值得注意的是:参照网页上提到的对应公式在实际应用起来并不是“精确”;       

    aaaa>>>还是先讨论下补贴的方法:

    1,首先判断控件的scrollbar是否可见(GetWindowLong(MeControl.Handle, GWL_STYLE) And WS_VSCROLL) = WS_VSCROLL);

    2,获取系统scrollbar的参数,依次设置自己的参数,然后把自己的scrollbar添加到目标控件的父控件上(窗口);

    3,通知系统scrollbar向上、向下移动一次:PostMessageA(MeControl.Handle, WM_VSCROLL, 0, 1);

    4,手柄移动(thumb),这里就提到上面(红字)所说不精确的问题了,因为当所显示的数据过大,系统scrollbar默认thumb.height是一个固定值,并不是与数据量呈线性关系,而我们的scrollbar最好的选择也是必要设置一个最小的thumb.height,那么就需要对官方提供的比例公式进行微调了;这里引入一个参数K1,即当设置成固定thumb.height时,鼠标移动1,scrollbar值对应K1;

    5,补贴scrollbar时,注意不同控件显示的方法,比如:listbox,datagridview等系统scrollbar单位值对应显示的数据item的index;而richtextbox,treeview等则是系统scrollbar单位值对应显示的像素;

    bbbb>>>>有了以上的共识,就可以手工绘制scrollbar了:

    1,关键的K1,可以随心所欲设置各种scrollbar外观;

    2,为了方便可以虚拟一个VSCROLLBAR;其他方法可参照补贴的方法;

 

————————————————————

PS:相关scrollbar的代码比较乱,杂,这里就不好意思贴代码了!