关于无边框窗口最小化的问题。

XinJW 2011-01-18 12:24:52
程序季无边框,用一个按键执行窗口最小化Me.WindowState = 1,可是系统状态栏中没有,怎么显示在状态栏中,不是右下角的通知区域。
...全文
95 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
无·法 2011-01-18
  • 打赏
  • 举报
回复
将窗体属性 showintaskbar属性设置为true
无·法 2011-01-18
  • 打赏
  • 举报
回复
楼主这问题我以前也遇到过。参考帖子:
http://topic.csdn.net/u/20101115/10/abbabc3d-40a0-4a7a-9199-66c0acc0a152.html
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 Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Enum SetWindowPosConstants
SWP_ASYNCWINDOWPOS = &H4000
SWP_DEFERERASE = &H2000
SWP_FRAMECHANGED = &H20
SWP_HIDEWINDOW = &H80
SWP_NOACTIVATE = &H10
SWP_NOCOPYBITS = &H100
SWP_NOMOVE = &H2
SWP_NOOWNERZORDER = &H200
SWP_NOREDRAW = &H8
SWP_NOREPOSITION = SWP_NOOWNERZORDER
SWP_NOSENDCHANGING = &H400
SWP_NOSIZE = &H1
SWP_NOZORDER = &H4
SWP_SHOWWINDOW = &H40
End Enum
Private Const WS_SYSMENU = &H80000
Private Const WS_MINIMIZE = &H20000000
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_MAXIMIZE = &H1000000
Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_CAPTION = &HC00000 ' WS_BORDER Or WS_DLGFRAME
Private Const WS_BORDER = &H800000
Private Const WS_THICKFRAME = &H40000

Private Const GWL_STYLE = (-16)

Private Sub TitleBarVisible(hwnd As Long, Value As Boolean)
Dim Style As Long
Style = GetWindowLong(hwnd, GWL_STYLE)
If Value Then
Style = Style Or WS_SYSMENU
Style = Style Or WS_MAXIMIZEBOX
Style = Style Or WS_MINIMIZEBOX
Style = Style Or WS_CAPTION
Style = Style Or WS_THICKFRAME
Else
Style = Style And Not WS_MAXIMIZEBOX
Style = Style And Not WS_CAPTION
Style = Style And Not WS_THICKFRAME
End If
SetWindowLong hwnd, GWL_STYLE, Style
SetWindowPos hwnd, 0, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOREPOSITION Or SWP_NOZORDER Or SWP_FRAMECHANGED
End Sub

Private Sub Form_Load()
TitleBarVisible Me.hwnd, False
End Sub
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lyserver 的回复:]
设计时设置BorderStyle属性为0,设置ShowInTaskbar属性为True即可。
也可以使用SetWindowText设置窗口标题。
[/Quote]
学习……
lyserver 2011-01-18
  • 打赏
  • 举报
回复
设计时设置BorderStyle属性为0,设置ShowInTaskbar属性为True即可。
也可以使用SetWindowText设置窗口标题。
神马都能聊 2011-01-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xinjw 的回复:]
那怎么样,在状态栏上也有“标题”出现,在做无边框窗体的时候,窗体的Caption为空
[/Quote]
你可以指定窗口标题,Form1.Caption = "无边框窗体"
XinJW 2011-01-18
  • 打赏
  • 举报
回复
那怎么样,在状态栏上也有“标题”出现,在做无边框窗体的时候,窗体的Caption为空

7,763

社区成员

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

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