请参考《程序员》第四期配套光盘,来这下载 http://www.guozi.com/files/csdn_cd.zip那是我用VB写的。 解决了这个问题,但是还是有新的问题,你看过就知道了。就是不能相应最小化消息和关闭,不信你试。用SetWindowLong()改掉一些属性。我不详细的说了,不要问我。Public Sub ChangeWindowStyle(ByVal hwnd As Long) ' Dim oldStyle As Long
oldStyle = GetWindowLong(hwnd, GWL_EXSTYLE) oldStyle = oldStyle Or WS_EX_WINDOWEDGE 'oldStyle = oldStyle Or WS_EX_OVERLAPPEDWINDOW 'oldStyle = oldStyle Or WS_EX_PALETTEWINDOW ' ShowInTraybar oldStyle = oldStyle Or WS_EX_APPWINDOW ' ToolWindow 'oldStyle = oldStyle Or WS_EX_TOOLWINDOW ' 'oldStyle = oldStyle Or WS_EX_CLIENTEDGE ' Not ShowInTraybar 'oldStyle = oldStyle And (Not WS_EX_APPWINDOW) ' Not ToolWindow 'oldStyle = oldStyle And (Not WS_EX_TOOLWINDOW) ' Not ClientEdge 'oldStyle = oldStyle And (Not WS_EX_CLIENTEDGE) 'oldStyle = oldStyle Or WS_EX_CONTROLPARENT ' SetWindowLong hwnd, GWL_EXSTYLE, oldStyle
oldStyle = GetWindowLong(hwnd, GWL_STYLE) ' Caption 'oldStyle = oldStyle Or WS_CAPTION ' Show Border 'oldStyle = oldStyle Or WS_BORDER ' Show Popup 'oldStyle = oldStyle Or WS_POPUP ' Show Sys Menu oldStyle = oldStyle Or WS_SYSMENU ' Show Mini Box oldStyle = oldStyle Or WS_MINIMIZEBOX ' Show Maxi Box 'oldStyle = oldStyle Or WS_MAXIMIZEBOX ' Show Sizeble 'oldStyle = oldStyle Or WS_SIZEBOX 'oldStyle = oldStyle And (Not WS_CLIPCHILDREN) ' IconIC oldStyle = oldStyle Or WS_ICONIC
我想应该用api函数读出窗口的句柄,然后更改里面的一个图标函数,具体的做法我忘了,不好意思
'
Dim oldStyle As Long
oldStyle = GetWindowLong(hwnd, GWL_EXSTYLE)
oldStyle = oldStyle Or WS_EX_WINDOWEDGE
'oldStyle = oldStyle Or WS_EX_OVERLAPPEDWINDOW
'oldStyle = oldStyle Or WS_EX_PALETTEWINDOW
' ShowInTraybar
oldStyle = oldStyle Or WS_EX_APPWINDOW
' ToolWindow
'oldStyle = oldStyle Or WS_EX_TOOLWINDOW
'
'oldStyle = oldStyle Or WS_EX_CLIENTEDGE
' Not ShowInTraybar
'oldStyle = oldStyle And (Not WS_EX_APPWINDOW)
' Not ToolWindow
'oldStyle = oldStyle And (Not WS_EX_TOOLWINDOW)
' Not ClientEdge
'oldStyle = oldStyle And (Not WS_EX_CLIENTEDGE)
'oldStyle = oldStyle Or WS_EX_CONTROLPARENT
'
SetWindowLong hwnd, GWL_EXSTYLE, oldStyle
oldStyle = GetWindowLong(hwnd, GWL_STYLE)
' Caption
'oldStyle = oldStyle Or WS_CAPTION
' Show Border
'oldStyle = oldStyle Or WS_BORDER
' Show Popup
'oldStyle = oldStyle Or WS_POPUP
' Show Sys Menu
oldStyle = oldStyle Or WS_SYSMENU
' Show Mini Box
oldStyle = oldStyle Or WS_MINIMIZEBOX
' Show Maxi Box
'oldStyle = oldStyle Or WS_MAXIMIZEBOX
' Show Sizeble
'oldStyle = oldStyle Or WS_SIZEBOX
'oldStyle = oldStyle And (Not WS_CLIPCHILDREN)
' IconIC
oldStyle = oldStyle Or WS_ICONIC
SetWindowLong hwnd, GWL_STYLE, oldStyle
End Sub
可以响应最小化消息,只是不能关闭和移动。如果不用Hook能解决关闭和移动就好了。