我制作的都是无标题窗体,采用图形界面,第一个窗体没有什么问题,但是第二个窗体在我加了个托盘图标后,就自动变成了有标题窗体了,我设置窗体的borderstyle为0并没有变,但是就是不边成无标题窗体,我的图形界面就很难看了!
不知道为什么自动变成有标题的窗体啊?有没有办法让它变回去啊!

解决方案 »

  1.   

    你加了一个托盘图标,自然就会出现标题栏啊,图标当然是要放在标题栏的啊。
    解决办法:你自己做一个仿真的标题栏,并加上MouseMove拖曳功能,这样可以与你的界面风格一致,不过得用api,也比较麻烦。
    其实你就一个图标也没什么大的用处,可以去掉嘛
      

  2.   

    隐藏标题栏(图标不丢失):'This sample show you how to cut the caption title exactly and create controls with code.
    'add a new form ,do nothing but copy this codes for it.
    Option Explicit
        Private Declare Function CreateRectRgn Lib "gdi32" (ByVal x1 As Long, ByVal y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
        Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
        Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long  Private WithEvents cmd1 As CommandButton
      Private WithEvents cmd2 As CommandButton
    Private Sub cmd1_Click() '******************
    Dim capheight As Long, area As Long
       Me.ScaleMode = 2
       Me.ForeColor = vbRed
       Me.Line (1, 0)-(Me.Width, 0) '紧贴标题栏画线做标记
       capheight = GetSystemMetrics(33) + GetSystemMetrics(4) ' 边框宽度+标题栏高度
       area = CreateRectRgn(0, capheight, Me.Width, Me.Height) '画无标题栏的矩形框
       area = SetWindowRgn(Me.hWnd, area, True) '裁剪标题栏
    End Sub
    Private Sub cmd2_Click() '*******************
    Me.ScaleMode = 2
    Dim area As Long
    area = CreateRectRgn(0, 0, Me.Width, Me.Height) '画含标题栏的矩形框
    area = SetWindowRgn(Me.hWnd, area, True) '恢复标题栏
    End Sub
    Private Sub Form_Load()
    Me.WindowState = 0
    Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2, 8000, 5000'居中及设置窗体大小
      Set cmd1 = Controls.Add("VB.CommandButton", "cmd1", Me)'添加cmd1按纽
      Set cmd2 = Controls.Add("VB.CommandButton", "cmd2", Me)'添加cmd2按纽
      cmd1.Move 1000, 1000, 1500, 500
      cmd2.Move 3000, 1000, 1500, 500
      cmd1.Caption = "裁剪标题栏"
      cmd2.Caption = "恢复标题栏"
      cmd1.Visible = True
      cmd2.Visible = True
    End Sub