怎样去掉窗体上的标题栏!

zhangt2001 2004-01-11 02:17:21
谢谢!
...全文
326 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
flc 2004-01-14
  • 打赏
  • 举报
回复
呵呵
好好学习
kmzs 2004-01-14
  • 打赏
  • 举报
回复
borderstyle=0
孔南 2004-01-14
  • 打赏
  • 举报
回复
...俺也本以为是一个属性能搞定的,结果看了狼的呼唤以后大大受教...记得这个问题好面善啊,在哪里见过?好像在这里http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=184574
longki 2004-01-13
  • 打赏
  • 举报
回复

一个属性就搞定了!既然上面已说了,俺就闪了!
cso 2004-01-13
  • 打赏
  • 举报
回复
setwindowlong是个好方法,但是3D边框却出来了,只有用变通的方法:
这个例子展示了左右移动的方法,并且保持原窗体原样!!!!!!
你可以自行加入上下移动,斜移动等
Option Explicit
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Const HTLEFT = 10
Private Const HTRIGHT = 11
Private Const WM_NCLBUTTONDOWN = &HA1

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim nParam As Long
With Me
If X > 0 And X < 100 Then
nParam = HTLEFT
ElseIf X > .Width - 100 And X < .Width Then
nParam = HTRIGHT
End If
If nParam Then
Call ReleaseCapture
Call SendMessage(.hwnd, WM_NCLBUTTONDOWN, nParam, 0)
End If
End With
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim Np As MousePointerConstants
With Me
If X > 0 And X < 100 Then
Np = vbSizeWE
ElseIf X > .Width - 100 And X < .Width Then
Np = vbSizeWE
Else '此处还可以继续加
Np = vbDefault
End If
If Np <> .MousePointer Then
.MousePointer = Np
End If
End With
End Sub
zhangt2001 2004-01-13
  • 打赏
  • 举报
回复
还是不行啊
窗体里是要画控件实现功能的
pic里不能画控件吧!
而且窗体是要改变的
如资源管理器,左边是树不动的,有边有几十个窗口,根据点击树的节点变化
rainstormmaster 2004-01-12
  • 打赏
  • 举报
回复
楼上的说的很对,另外说一下 northwolves(野性的呼唤)的代码同样有问题(用鼠标改变窗体大小看一下就知道了),如何取舍就看楼主的要求了
renjunjun 2004-01-12
  • 打赏
  • 举报
回复
哈哈,又是你!
我有个主意对付你,你只做一个窗体,让它没有标题,然后在中间画一个象是两个窗体一样分开的Pic,然后移动这个Pic,这样看上去两个窗体紧靠着,改变其中一个,另一个当然就显得变小了!
怎么样?这下大家满意了吧?
zhangt2001 2004-01-12
  • 打赏
  • 举报
回复
如果BorderStyle=0,则没有标题栏,但是窗口也不能改变大小、
我的要求如下:
窗口没有标题栏,可以改变大小,最好是纵向大小不能改变,横向大小可以改变!
lingll 2004-01-11
  • 打赏
  • 举报
回复
用setwindowlong去掉标题栏会有问题,只要改变caption就会还原
rainstormmaster 2004-01-11
  • 打赏
  • 举报
回复
//form 的borderstyle 改为0就可以了。

呵呵,如果还想在任务栏同时显示图标呢?

这个问题可用setwindowlong解决,以前讨论过很多次了,楼主自己搜索一下吧
lingll 2004-01-11
  • 打赏
  • 举报
回复
caption =""
controlbox=false
标题栏就不见了
海牛 2004-01-11
  • 打赏
  • 举报
回复
9494,,,没有必要弄得像楼上的星星那么麻烦
Huaraco 2004-01-11
  • 打赏
  • 举报
回复
form 的borderstyle 改为0就可以了。
northwolves 2004-01-11
  • 打赏
  • 举报
回复
'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
xzp1030 2004-01-11
  • 打赏
  • 举报
回复
borderstyle设为0即可。
LanceJin 2004-01-11
  • 打赏
  • 举报
回复
设置form的borderstyle为0-none即可

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧