SetCapture试试看
或者拦截鼠标的消息。
或者拦截鼠标的消息。
解决方案 »
- vb中winsock数据丢包的问题,分少,请大家见谅
- 用VSflexgrid保存修改记录求助
- 关于like子句,我这样用错在哪里?
- 如何替换包含了六个图的图标啊?
- vb中的应用程序的执行顺序!!!!!!!!晕!!!!大家帮帮忙~~~~~急急。。。。。。。
- 请教各位大虾---vb入门用哪本教材较好?
- 交叉查询怎么导出表啊?
- 请问怎么把它修改成是以word格式打印?
- 请问:用adodc控件直接右键属性设置连接的数据库改成用代码连接该如何实现?谢谢。以前做的程序,是单机版的。现在想弄成C/S的。
- 我的控件有一个外带的查询窗体,但无法将查询的窗体的查询结果传回控件??
- 感谢 CSDN !!!为我们提供的这样的论坛!!!!
- 求救!vb
'窗体
VERSION 5.00
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 1650
ClientLeft = 60
ClientTop = 345
ClientWidth = 4350
LinkTopic = "Form1"
ScaleHeight = 1650
ScaleWidth = 4350
StartUpPosition = 3 '窗口缺省
Begin VB.CommandButton Command1
Caption = "Popup"
Height = 375
Left = 1440
TabIndex = 1
Top = 600
Width = 1455
End
Begin VB.PictureBox Picture1
Appearance = 0 'Flat
BackColor = &H80000005&
ForeColor = &H80000008&
Height = 2295
Left = 360
ScaleHeight = 2265
ScaleWidth = 1785
TabIndex = 0
Top = 1920
Visible = 0 'False
Width = 1815
Begin VB.TextBox Text1
Height = 315
Left = 120
TabIndex = 2
Top = 120
Width = 1575
End
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option ExplicitPrivate Sub Form_Load()
m_Hwnd = Me.hwnd
End SubPrivate Sub Command1_Click()
Dim rc As RECT
Call Hook
GetWindowRect Command1.hwnd, rc
SetWindowLong Picture1.hwnd, GWL_STYLE, WS_POPUP Or WS_BORDER
SetWindowLong Picture1.hwnd, GWL_EXSTYLE, WS_EX_TOPMOST Or WS_EX_TOOLWINDOW
SetParent Picture1.hwnd, 0
Picture1.Move rc.Left * Screen.TwipsPerPixelX, (rc.Bottom + 2) * Screen.TwipsPerPixelY, Picture1.Width, Picture1.Height
Picture1.Visible = True
Call SetCapture(Picture1.hwnd)
End SubPrivate Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Visible = False
Call ReleaseCapture
Call Unhook
End SubPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If X > Text1.Left And X < Text1.Left + Text1.Width _
And Y > Text1.Top And Y < Text1.Top + Text1.Height Then
Call ReleaseCapture
Call SetCapture(Text1.hwnd)
Else
Call SetCapture(Picture1.hwnd)
End If
End SubPrivate Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If X < 0 Or X > Text1.Width Or Y < 0 Or Y > Text1.Height Then
Call ReleaseCapture
Call SetCapture(Picture1.hwnd)
End If
End Sub
'模块
Option ExplicitPublic Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Public Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function ReleaseCapture Lib "user32" () As Long
Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As LongPublic Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End TypePublic Type POINTAPI
X As Long
Y As Long
End TypePublic Const GWL_EXSTYLE = (-20)
Public Const GWL_STYLE = (-16)
Public Const GWL_HWNDPARENT = (-8)
Public Const GWL_WNDPROC = (-4)Public Const WS_THICKFRAME = &H40000
Public Const WS_VISIBLE = &H10000000
Public Const WS_POPUP = &H80000000
Public Const WS_BORDER = &H800000Public Const WS_EX_TOPMOST = &H8
Public Const WS_EX_TOOLWINDOW = &H80Public Const WM_NCACTIVATE = &H86
Public Const WM_ACTIVATEAPP = &H1CPublic m_Hwnd As Long
Public m_Hook As Boolean
Private m_PrevWndProc As LongPublic Sub Hook()
If Not m_Hook Then
m_PrevWndProc = SetWindowLong(m_Hwnd, GWL_WNDPROC, AddressOf WindowProc)
m_Hook = True
End If
End SubPublic Sub Unhook()
If m_Hook Then
Call SetWindowLong(m_Hwnd, GWL_WNDPROC, m_PrevWndProc)
m_Hook = False
End If
End SubPrivate Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Select Case uMsg
Case WM_NCACTIVATE
WindowProc = CallWindowProc(m_PrevWndProc, hw, uMsg, 1, lParam)
Case Else
WindowProc = CallWindowProc(m_PrevWndProc, hw, uMsg, wParam, lParam)
End Select
End Function