'BorderStyle属性设置为None 'ShowInTaskBar 的的属性 True ,但任务栏的按钮没有图标,再加上以下代码就行了: '使无标题栏的窗体,在任务栏显示图标----------------------------- 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 As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Const GWL_STYLE = (-16) Private Const WS_SYSMENU = &H80000 '一个Function ShowIcon(m_hwnd As Long)过程 '调用方法: ShowIcon Me.hwnd '-------------------------------------------------------------- Function ShowIcon(m_hwnd As Long) '使任务栏显示图标 Dim lStyle As Long lStyle = GetWindowLong(m_hwnd, GWL_STYLE) Or WS_SYSMENU SetWindowLong m_hwnd, GWL_STYLE, lStyle End Function Private Sub Form_Load() ShowIcon Me.hWnd End Sub
Form1.Caption = ""
Form1.BorderStyle = 0
Form1.Caption = "Your Caption"
End Sub
用SubClass技术拦截消息
处理WM_NCPAINT,这时绘制自己的标题栏
可参考:
http://vbaccelerator.com/home/VB/Code/Controls/Skins/article.asp
'ShowInTaskBar 的的属性 True ,但任务栏的按钮没有图标,再加上以下代码就行了:
'使无标题栏的窗体,在任务栏显示图标-----------------------------
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 As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const GWL_STYLE = (-16)
Private Const WS_SYSMENU = &H80000
'一个Function ShowIcon(m_hwnd As Long)过程
'调用方法: ShowIcon Me.hwnd
'--------------------------------------------------------------
Function ShowIcon(m_hwnd As Long)
'使任务栏显示图标
Dim lStyle As Long
lStyle = GetWindowLong(m_hwnd, GWL_STYLE) Or WS_SYSMENU
SetWindowLong m_hwnd, GWL_STYLE, lStyle
End Function
Private Sub Form_Load()
ShowIcon Me.hWnd
End Sub