当前位置:编程学习 > VB >>

不规则窗体如何创建


这个形状的不规则窗体谁创建能顺手捏来?
100分求助不要跟我说什么用什么和什么请用代码说话 举例说明~!图上是一个窗体不是贴图 --------------------编程问答--------------------
看看背景的代码,关键的在最下面一行 --------------------编程问答--------------------
引用 1 楼 SupermanKing 的回复:
看看背景的代码,关键的在最下面一行

这是你的代码吗?你先捏出个我那样子在让我看哪行 --------------------编程问答-------------------- 呵呵,看来你还不明白,我上面的窗口与你的那个窗口实现都不是一个级别的。
不知道你注意看没有,窗口有全透明区域、有半透明区域还有不透明区域,还有阴影部分(透明过度)。
这些都能实现,你的那个窗口要实现起来难道你认为不行? --------------------编程问答-------------------- Private Declare Function RoundRect Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Sub Form_Load()
    AutoRedraw = True
    BackColor = vbWhite
    FillStyle = 0
    Call RoundRect(Me.hdc, 20, 20, 200, 70, 5, 5)
    Call RoundRect(Me.hdc, 50, 10, 90, 80, 5, 5)
    Dim rtn As Long
    rtn = GetWindowLong(hwnd, -20)
    rtn = rtn Or &H80000
    Call SetWindowLong(hwnd, -16, 0)
    Call SetWindowLong(Me.hwnd, -20, rtn)
    SetLayeredWindowAttributes hwnd, vbWhite, 0, 1
End Sub


就这么简单吗?直接把代码复制过去看看吧。 --------------------编程问答-------------------- 好像楼主发过一个重复贴了,看这个例子: http://download.csdn.net/detail/WallesCai/795601 --------------------编程问答--------------------
引用 4 楼 tianzhi0549 的回复:
Private Declare Function RoundRect Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
Pri……
都牛人啊 --------------------编程问答-------------------- 简单点是贴图,用Ps之类的处理好,然后用4楼的方法透明掉背景。

引用 1 楼 SupermanKing 的回复:
看看背景的代码,关键的在最下面一行
GDI+? --------------------编程问答--------------------
引用 7 楼 c0631106233 的回复:
GDI+?

正是 GDI+ 配合 UpdateLayeredWindow 函数,可以使用 PNG 做素材(想怎么透明头可以),还可以动态绘制带透明的图像层,完成后 UpdateLayeredWindow 就搞定,界面灵活多变,可以说只有你想不到的,没有做不到的效果。
补充:VB ,  控件
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,