窗体小工具
Private Declare Function MoveWindow Lib "user32"<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p>
(ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long<o:p></o:p>
Private Declare Function GetWindowRect Lib<o:p></o:p>
"user32" (ByVal hwnd As Long, lpRect As<o:p></o:p>
RECT) As Long<o:p></o:p>
'获取窗口的位置参数 Private Type RECT<o:p></o:p>
Left As Long<o:p></o:p>
Top As Long<o:p></o:p>
Right As Long<o:p></o:p>
Bottom As Long<o:p></o:p>
End Type<o:p></o:p>
Dim TWin As Long, TWin1 As Long, T0 As Integer, T1 As Integer, flag As Boolean, R0 As RECT, R1 As RECT<o:p></o:p>
'TWin 表示被选择窗口的句柄,Twin1 表示当 前工作窗口的句柄<o:p></o:p>
'R1表示当被选窗口再次被选中时的位置参数, R0表示初始时被选窗口的位置参数<o:p></o:p>
'T0,T1,flag 用来标志触发时间及标志<o:p></o:p>
<o:p></o:p>
Private Sub Command1_Click()<o:p></o:p>
Command1.Enabled = False<o:p></o:p>
Command4.Enabled = False<o:p></o:p>
Text1.Enabled = False<o:p></o:p>
Timer1.Enabled = True<o:p></o:p>
flag = True<o:p></o:p>
End Sub<o:p></o:p>
<o:p></o:p>
Private Sub Command2_Click()<o:p></o:p>
Command1.Enabled = True<o:p></o:p>
Command4.Enabled = True<o:p></o:p>
Timer1.Enabled = False<o:p></o:p>
Text1.Text = T1<o:p></o:p>
Text1.Enabled = True<o:p></o:p>
Text1.BackColor = vbWhite<o:p></o:p>
T0 = 0<o:p></o:p>
If TWin Then '撤消窗体在最前面<o:p></o:p>
SetWindowPos TWin, -2, 0, 0, 0,<o:p></o:p>
0, 3<o:p></o:p>
MsgBox "您选择的窗体已经撤消了<o:p></o:p>
"<o:p></o:p>
End If<o:p></o:p>
End Sub<o:p></o:p>
<o:p></o:p>
Private Sub Command3_Click()<o:p></o:p>
End<o:p></o:p>
End Sub
Private Sub Command4_Click()<o:p></o:p>
T1 = Val(Text1.Text) End Sub<o:p></o:p>
<o:p></o:p>
Private Sub Form_Load()<o:p></o:p>
T0 = 0<o:p></o:p>
T1 = Val(Text1.Text) End Sub<o:p></o:p>
<o:p></o:p>
Private Sub Timer1_Timer()<o:p></o:p>
If T0 < T1 Then<o:p></o:p>
Text1.BackColor = vbRed<o:p></o:p>
T0 = T0 1<o:p></o:p>
Text1.Text = T1 - T0 '到计时<o:p></o:p>
Else<o:p></o:p>
If flag Then '如果窗体不在最前面 则设它在最前<o:p></o:p>
TWin = GetForegroundWindow<o:p></o:p>
()<o:p></o:p>
flag = False<o:p></o:p>
SetWindowPos TWin, -1, 0,<o:p></o:p>
0, 0, 0, 3<o:p></o:p>
GetWindowRect TWin, R0<o:p></o:p>
MsgBox "您选择的窗体已经放 在最前面了"<o:p></o:p>
Else<o:p></o:p>
If Check1.Value Then '如果选 择了卷帘功能<o:p></o:p>
TWin1 = GetForegroundWindow() '获取当前窗口<o:p></o:p>
If TWin1 <> TWin Then<o:p></o:p>
'如果当前窗口不是 被选窗口则将被选窗口卷起<o:p></o:p>
MoveWindow TWin, R0.Left, R0.Top, 0, 0, 1<o:p></o:p>
Else<o:p></o:p>
'如果当前窗口是被 选窗口则将被选窗口卷开<o:p></o:p>
GetWindowRect<o:p></o:p>
TWin, R1<o:p></o:p>
MoveWindow TWin, R1.Left, R1.Top, R0.Right - R0.Left, R0.Bottom<o:p></o:p>
- R0.Top, 1<o:p></o:p>
GetWindowRect<o:p></o:p>
TWin, R0<o:p></o:p>
End If<o:p></o:p>
End If<o:p></o:p>
End If<o:p></o:p>
Text1.Text = T1 '表示窗体操作完 毕<o:p></o:p>
Text1.BackColor = vbWhite<o:p></o:p>
End If<o:p></o:p>
End Sub<o:p></o:p>
好了,运行一下程序,这个窗体小 工具是不是非常有用呢?<o:p></o:p>
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:rect id=_x0000_s1026 style="MARGIN-TOP: 49.5pt; Z-INDEX: -1; LEFT: 0px; MARGIN-LEFT: 477.8pt; WIDTH: 14.65pt; POSITION: absolute; HEIGHT: 7.9pt; TEXT-ALIGN: left; mso-position-horizontal-relative: page" stroked="f"><v:fill type="frame" o:title="" src="file:///C:\DOCUME~1\OWNER\LOCALS~1\Temp\msohtml1\01\clip_image001.png"></v:fill><v:path arrowok="t"></v:path><?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" /><w:wrap anchorx="page"></w:wrap></v:rect>程序在 Windows XP、VB6 下调试 通过。源程序以及可执行程序下载地址:http://www.cfan.net.cn/qikan/ cfan/source/0304ctx.zip。<o:p></o:p>