mydy.net
当前位置:首页 >> vB.nEt 不规则窗体 >>

vB.nEt 不规则窗体

既然有人发了函数,我来总结吧,哈哈哈:) 实际上,只要通过一定的运算,把某些纯色的部分通过正/反(恕我无知,只能用这个词来形容了)运算,把与某些值相同的,或者与系统相同的像素去掉,就OK了.大部分网游启动时的不规则窗体都是这样弄的,先做好一幅规则的画,再把不要的部位用某种纯色涂掉,这样,程序在开始时,一运算,把纯色部分去掉,就成了不规则窗体了.

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd

1:用api函数 Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long 可以做不规则窗体,按颜色透明.2:中文用百度,英文用google,如果这2个搜索不出来,基本上就没有可以能搜索出来的了.关键看你搜索什么东西.你搜索不到,基本上是搜索方法的问题,而不是搜索引擎的问题.

剪裁窗体:用CreateRectRgn、CreateEllipticRgn、CreatePolygonRgn等API函数创建矩形、圆形、多边形区域,然后用CombineRgn合并多个区域,最后用SetWindowRgn把合并后的区域作为剪裁区作用到窗体上即可.这是正统的方法,不过过程稍微有点复杂,而且要创建复杂的不规则的窗体就比较吃力了.

Option Explicit 'Win32 API的声明 Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long Private Declare Function SetWindowRgn Lib "user32" (ByVal

该窗体是个矩形,但是四个角都是切圆的,实现代码如下:'首先我们先创建一个窗体,并将窗体的BorderStyle属性设为0'然后声明API函数,如下:Private Declare Function SetWindowRgn Lib "USER32" (ByVal hWnd As Long, ByVal hRgn

如果要简单达到目地,推荐用两个窗口,一个上面是那个标签页,一个是主窗口.采用代码保持两个窗口位置.如果一定要实现不规则窗体,要调用API函数才能达到功能.

完美的解决方法是去掉系统自带的边框和标题栏(也就是 FormBorderStyle 设为 None),然后重绘出边框和标题栏. 其次一点的解决方法是重写窗体的 WndProc 事件,拦截点击标题栏时的系统消息. 最简单的解决方法还是写 WndProc 事件,强制给 Me.Location 赋值成 Point.Empty.缺点是如果要拖动窗体的话会有抖动. 参考:Protected Overrides Sub WndProc(ByRef m As Message) If (Me.Location Point.Empty) Then Me.Location = Point.Empty MyBase.WndProc(m)End Sub

Win32 API 有很多让你意想不到的功能.要创建特殊的不规则窗口看上去似乎很难.但我们如果我们说我们用几行代码就可以实现,这似乎不可思议.但事实就是如此!请试试: Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal

VB中就有呀叫MDI窗体,你选择“工程添加MDI窗体”就可以了,然后把你刚刚的FORM1窗体设为MDI的子窗体就在它的属性里MDIChild设为True就可以了

网站首页 | 网站地图
All rights reserved Powered by www.mydy.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com