
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
	<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head><card id="MainCard" title="&#x6B22;&#x8FCE;&#x5149;&#x4E34;"><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a><br/>&nbsp;</p><p><b>&#x6807;&#x9898;&#x3A;</b> &#x56;&#x42;&#x36;&#x2E;&#x30;&#x5B9E;&#x73B0;&#x6258;&#x76D8;&#x56FE;&#x6807;&#x793A;&#x4F8B;</p><p><b>&#x4F5C;&#x8005;&#x3A;</b> &#x64;&#x6E;&#x61;&#x77;&#x6F;</p><p><b>&#x65E5;&#x671F;&#x3A;</b> &#x32;&#x30;&#x30;&#x39;&#x2D;&#x31;&#x30;&#x2D;&#x31;&#x34;&#x20;&#x31;&#x31;&#x3A;&#x30;&#x37;&#x20;&#x41;&#x4D;</p><p><b>&#x5206;&#x7C7B;&#x3A;</b> <a href="wap.asp?do=showLog&amp;cateID=16">&#x57;&#x69;&#x6E;&#x7F16;&#x7A0B;</a></p><p><b>&#x5185;&#x5BB9;&#x3A;</b> &#x6253;&#x5F00;&#x83DC;&#x5355;&#x7F16;&#x8F91;&#x5668;&#xFF0C;&#x6DFB;&#x52A0;&#x4E0B;&#x8FB9;&#x83DC;&#x5355;&#x9879;&#xFF1A;<br/>1). &#x6DFB;&#x52A0;&#x6A21;&#x5757;Tray.bas&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;Option Explicit<br/>Declare Function CallWindowProc Lib &#34;user32&#34; Alias &#34;CallWindowProcA&#34; (ByVal lpPrevWndFunc As Long, ByVal HWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long<br/>Declare Function SetWindowLong Lib &#34;user32&#34; Alias &#34;SetWindowLongA&#34; (ByVal HWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long<br/>Declare Function Shell_NotifyIcon Lib &#34;shell32.dll&#34; Alias &#34;Shell_NotifyIconA&#34; (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long<br/>&#39;&#x8BB0;&#x5F55; &#x8BBE;&#x7F6E;&#x6258;&#x76D8;&#x56FE;&#x6807;&#x7684;&#x6570;&#x636E; &#x7684;&#x6570;&#x636E;&#x7C7B;&#x578B;NOTIFYICONDATA<br/>Public Type NOTIFYICONDATA<br/>&nbsp;&nbsp;&nbsp;&nbsp;cbSize As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;HWnd As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;Uid As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;UFlags As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;UCallbackMessage As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;HIcon As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;SzTip As String * 64<br/>End Type<br/>Public Const WM_USER = &amp;H400<br/>Public Const WM_LBUTTONUP = &amp;H202<br/>Public Const WM_MBUTTONUP = &amp;H208<br/>Public Const WM_RBUTTONUP = &amp;H205<br/>Public Const TRAY_CALLBACK = (WM_USER + 1001&amp;)<br/>Public Const GWL_WNDPROC = (-4)<br/>Public Const GWL_USERDATA = (-21)<br/>Public Const NIF_ICON = &amp;H2<br/>Public Const NIF_TIP = &amp;H4<br/>Public Const NIM_ADD = &amp;H0<br/>Public Const NIF_MESSAGE = &amp;H1<br/>Public Const NIM_MODIFY = &amp;H1<br/>Public Const NIM_Del&#101;te = &amp;H2<br/>Public OldWindowProc As Long<br/>Public TheForm As Form<br/>Public TheMenu As Menu<br/>Private TheData As NOTIFYICONDATA<br/>&#39; *********************************************<br/>&#39; &#x65B0;&#x7684;&#x7A97;&#x53E3;&#x8FC7;&#x7A0B;--&#x4E3B;&#x7A0B;&#x5E8F;&#x4E2D;&#x91C7;&#x7528;SetWindowLong&#x51FD;&#x6570;&#x6539;&#x53D8;&#x4E86;&#x7A97;&#x53E3;&#x51FD;&#x6570;&#x7684;&#x5730;&#x5740;&#xFF0C;&#x6D88;&#x606F;&#x8F6C;&#x5411;&#x7531;NewWindowProc&#x5904;&#x7406;<br/>&#39; *********************************************<br/>Public Function NewWindowProc(ByVal HWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5982;&#x679C;&#x7528;&#x6237;&#x70B9;&#x51FB;&#x4E86;&#x6258;&#x76D8;&#x4E2D;&#x7684;&#x56FE;&#x6807;&#xFF0C;&#x5219;&#x8FDB;&#x884C;&#x5224;&#x65AD;&#x662F;&#x70B9;&#x51FB;&#x4E86;&#x5DE6;&#x952E;&#x8FD8;&#x662F;&#x53F3;&#x952E;<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Msg = TRAY_CALLBACK Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5982;&#x679C;&#x70B9;&#x51FB;&#x4E86;&#x5DE6;&#x952E;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If lParam = WM_LBUTTONUP Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x800C;&#x8FD9;&#x65F6;&#x7A97;&#x4F53;&#x7684;&#x72B6;&#x6001;&#x662F;&#x6700;&#x5C0F;&#x5316;&#x65F6;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If TheForm.WindowState = vbMinimized Then _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x6062;&#x590D;&#x5230;&#x6700;&#x5C0F;&#x5316;&#x524D;&#x7684;&#x7A97;&#x4F53;&#x72B6;&#x6001;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TheForm.WindowState = TheForm.LastState<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TheForm.SetFocus<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5982;&#x679C;&#x70B9;&#x51FB;&#x4E86;&#x53F3;&#x952E;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If lParam = WM_RBUTTONUP Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5219;&#x5F39;&#x51FA;&#x53F3;&#x952E;&#x83DC;&#x5355;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TheForm.PopupMenu TheMenu<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5982;&#x679C;&#x662F;&#x5176;&#x4ED6;&#x7C7B;&#x578B;&#x7684;&#x6D88;&#x606F;&#x5219;&#x4F20;&#x9012;&#x7ED9;&#x539F;&#x6709;&#x9ED8;&#x8BA4;&#x7684;&#x7A97;&#x53E3;&#x51FD;&#x6570;<br/>&nbsp;&nbsp;&nbsp;&nbsp;NewWindowProc = CallWindowProc(OldWindowProc, HWnd, Msg, wParam, lParam)<br/>End Function<br/>&#39; *********************************************<br/>&#39; &#x628A;&#x4E3B;&#x7A97;&#x4F53;&#x7684;&#x56FE;&#x6807;&#xFF08;Form1.icon&#x5C5E;&#x6027;&#x53EF;&#x6539;&#x53D8;&#xFF09;&#x6DFB;&#x52A0;&#x5230;&#x6258;&#x76D8;&#x4E2D;<br/>&#39; *********************************************<br/>Public Sub AddToTray(frm As Form, mnu As Menu)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x4FDD;&#x5B58;&#x5F53;&#x524D;&#x7A97;&#x4F53;&#x548C;&#x83DC;&#x5355;&#x4FE1;&#x606F;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set TheForm = frm<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set TheMenu = mnu<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;GWL_WNDPROC&#x83B7;&#x5F97;&#x8BE5;&#x7A97;&#x53E3;&#x7684;&#x7A97;&#x53E3;&#x51FD;&#x6570;&#x7684;&#x5730;&#x5740;<br/>&nbsp;&nbsp;&nbsp;&nbsp;OldWindowProc = SetWindowLong(frm.HWnd, GWL_WNDPROC, AddressOf NewWindowProc)<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5C06;&#x4E3B;&#x7A97;&#x4F53;&#x56FE;&#x6807;&#x6DFB;&#x52A0;&#x5728;&#x6258;&#x76D8;&#x4E2D;<br/>&nbsp;&nbsp;&nbsp;&nbsp;With TheData<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Uid = 0&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5FD8;&#x4E86;&#x5417;&#xFF1F;&#x53C2;&#x8003;&#x4E00;&#x4E0B;&#x524D;&#x9762;&#x5185;&#x5BB9;,Uid&#x56FE;&#x6807;&#x7684;&#x5E8F;&#x53F7;&#xFF0C;&#x505A;&#x52A8;&#x753B;&#x56FE;&#x6807;&#x6709;&#x7528;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.HWnd = frm.HWnd<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.cbSize = Len(TheData)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.HIcon = frm.Icon.Handle<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.UFlags = NIF_ICON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x6307;&#x660E;&#x8981;&#x5BF9;&#x56FE;&#x6807;&#x8FDB;&#x884C;&#x8BBE;&#x7F6E;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.UCallbackMessage = TRAY_CALLBACK<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.UFlags = .UFlags o&#114; NIF_MESSAGE&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x6307;&#x660E;&#x8981;&#x8BBE;&#x7F6E;&#x56FE;&#x6807;&#x6216;&#x8FD4;&#x56DE;&#x4FE1;&#x606F;&#x7ED9;&#x4E3B;&#x7A97;&#x4F53;&#xFF0C;&#x6B64;&#x53E5;&#x4E0D;&#x80FD;&#x7701;&#x53BB;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.cbSize = Len(TheData)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x4E3A;&#x4EC0;&#x4E48;&#x5462;&#xFF1F;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x5728;&#x6DFB;&#x52A0;&#x56FE;&#x6807;&#x7684;&#x540C;&#x65F6;&#xFF0C;&#x8BA9;&#x5176;&#x8FD4;&#x56DE;&#x4FE1;&#x606F;<br/>&nbsp;&nbsp;&nbsp;&nbsp;End With&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x7ED9;&#x4E3B;&#x7A97;&#x4F53;&#xFF0C;Or&#x7684;&#x610F;&#x601D;&#x662F;&#x540C;&#x65F6;&#x8FDB;&#x884C;&#x8BBE;&#x7F6E;&#x548C;&#x8FD4;&#x56DE;&#x6D88;&#x606F;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Shell_NotifyIcon NIM_ADD, TheData&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;&#x6839;&#x636E;&#x524D;&#x9762;&#x5B9A;&#x4E49;NIM_ADD&#xFF0C;&#x8BBE;&#x7F6E;&#x4E3A;&#x201C;&#x6DFB;&#x52A0;&#x6A21;&#x5F0F;&#x201D;<br/>End Sub<br/>&#39; *********************************************<br/>&#39; &#x5220;&#x9664;&#x7CFB;&#x7EDF;&#x6258;&#x76D8;&#x4E2D;&#x7684;&#x56FE;&#x6807;<br/>&#39; *********************************************<br/>Public Sub RemoveFromTray()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5220;&#x9664;&#x6258;&#x76D8;&#x4E2D;&#x7684;&#x56FE;&#x6807;<br/>&nbsp;&nbsp;&nbsp;&nbsp;With TheData<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.UFlags = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;End With<br/>&nbsp;&nbsp;&nbsp;&nbsp;Shell_NotifyIcon NIM_Del&#101;te, TheData&nbsp;&nbsp; &#39;&#x6839;&#x636E;&#x524D;&#x9762;&#x5B9A;&#x4E49;NIM_Del&#101;te&#xFF0C;&#x8BBE;&#x7F6E;&#x4E3A;&#x201C;&#x5220;&#x9664;&#x6A21;&#x5F0F;&#x201D;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x6062;&#x590D;&#x539F;&#x6709;&#x7684;&#x8BBE;&#x7F6E;<br/>&nbsp;&nbsp;&nbsp;&nbsp;SetWindowLong TheForm.HWnd, GWL_WNDPROC, OldWindowProc<br/>End Sub<br/>&#39; *********************************************<br/>&#39; &#x4E3A;&#x6258;&#x76D8;&#x4E2D;&#x7684;&#x56FE;&#x6807;&#x52A0;&#x4E0A;&#x6D6E;&#x52A8;&#x63D0;&#x793A;&#xFF08;&#x4E5F;&#x5C31;&#x662F;&#x9F20;&#x6807;&#x79FB;&#x4E0A;&#x53BB;&#x65F6;&#x51FA;&#x73B0;&#x7684;&#x63D0;&#x793A;&#x5B57;&#x6761;&#xFF09;<br/>&#39; *********************************************<br/>Public Sub SetTrayTip(tip As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;With TheData<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.SzTip = tip &amp; vbNullChar<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.UFlags = NIF_TIP&nbsp;&nbsp; &#39;&#x6307;&#x660E;&#x8981;&#x5BF9;&#x6D6E;&#x52A8;&#x63D0;&#x793A;&#x8FDB;&#x884C;&#x8BBE;&#x7F6E;<br/>&nbsp;&nbsp;&nbsp;&nbsp;End With<br/>&nbsp;&nbsp;&nbsp;&nbsp;Shell_NotifyIcon NIM_MODIFY, TheData&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x6839;&#x636E;&#x524D;&#x9762;&#x5B9A;&#x4E49;NIM_MODIFY&#xFF0C;&#x8BBE;&#x7F6E;&#x4E3A;&#x201C;&#x4FEE;&#x6539;&#x6A21;&#x5F0F;&#x201D;<br/>End Sub<br/>&#39; *********************************************<br/>&#39; &#x8BBE;&#x7F6E;&#x6258;&#x76D8;&#x7684;&#x56FE;&#x6807;&#xFF08;&#x5728;&#x672C;&#x4F8B;&#x4E2D;&#x6CA1;&#x6709;&#x7528;&#x5230;&#xFF0C;&#x5982;&#x679C;&#x8981;&#x52A8;&#x6001;&#x6539;&#x53D8;&#x6258;&#x76D8;&#x5185;&#x663E;&#x793A;&#x7684;&#x56FE;&#x6807;&#xFF0C;&#x5B83;&#x975E;&#x5E38;&#x6709;&#x7528;&#xFF09;<br/>&#39; &#x4F8B;&#x5982;&#xFF1A;1&#x3001;&#x663E;&#x793A;&#x52A8;&#x753B;&#x56FE;&#x6807;&#xFF08;&#x65B9;&#x6CD5;&#x4F60;&#x4E00;&#x5B9A;&#x731C;&#x5230;&#x4E86;&#xFF0C;&#x5BF9;&#xFF01;&#x4F7F;&#x7528;Timer&#x63A7;&#x4EF6;&#xFF0C;&#x4E0D;&#x65AD;&#x8C03;&#x7528;&#x6B64;&#x8FC7;&#x7A0B;&#xFF0C;&#x6CE8;&#x610F;&#x628A;&#x52A8;&#x753B;&#x653E;&#x5728;pic&#x6570;&#x7EC4;&#x4E2D;&#xFF09;<br/>&#39;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&#x3001;&#x7A0B;&#x5E8F;&#x5904;&#x4E8E;&#x4E0D;&#x540C;&#x72B6;&#x6001;&#x65F6;&#xFF0C;&#x663E;&#x793A;&#x4E0D;&#x540C;&#x7684;&#x56FE;&#x6807;&#xFF0C;&#x65B9;&#x6CD5;&#x662F;&#x7C7B;&#x4F3C;&#x7684;<br/>&#39; &#x6709;&#x5174;&#x8DA3;&#x7684;&#x8BDD;&#x8BD5;&#x4E00;&#x8BD5;&#x5427;&#x3002;<br/>&#39; *********************************************<br/>Public Sub SetTrayIcon(pic As Picture)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5224;&#x65AD;&#x4E00;&#x4E0B;pic&#x4E2D;&#x5B58;&#x653E;&#x7684;&#x662F;&#x4E0D;&#x662F;&#x56FE;&#x6807;<br/>&nbsp;&nbsp;&nbsp;&nbsp;If pic.Type &lt;&gt; vbPicTypeIcon Then Exit Sub<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x66F4;&#x6362;&#x56FE;&#x6807;&#x4E3A;pic&#x4E2D;&#x5B58;&#x653E;&#x7684;&#x56FE;&#x6807;<br/>&nbsp;&nbsp;&nbsp;&nbsp;With TheData<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.HIcon = pic.Handle<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.UFlags = NIF_ICON<br/>&nbsp;&nbsp;&nbsp;&nbsp;End With<br/>&nbsp;&nbsp;&nbsp;&nbsp;Shell_NotifyIcon NIM_MODIFY, TheData<br/>End Sub<br/>2).&#x7A97;&#x4F53;&#x4EE3;&#x7801;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;Option Explicit<br/>Private Declare Function SendMessage Lib &#34;user32&#34; Alias &#34;SendMessageA&#34; (ByVal HWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long<br/>Private Const WM_SYSCOMMAND = &amp;H112<br/>Private Const SC_MOVE = &amp;HF010&amp;<br/>Private Const SC_RESTORE = &amp;HF120&amp;<br/>Private Const SC_SIZE = &amp;HF000&amp;<br/>Public LastState As Integer<br/>Private Sub Form_Load()<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x7A97;&#x4F53;&#x7684;WindowState&#x5C5E;&#x6027;&#xFF0C;&#x8FD4;&#x56DE;&#x6216;&#x8BBE;&#x7F6E;&#x4E00;&#x4E2A;&#x503C;&#xFF0C;&#x8BE5;&#x503C;&#x7528;&#x6765;&#x6307;&#x5B9A;&#x5728;&#x8FD0;&#x884C;&#x65F6;&#x7A97;&#x4F53;&#x7A97;&#x53E3;&#x7684;&#x53EF;&#x89C6;&#x72B6;&#x6001;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;vbNormal&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp; &#xFF08;&#x7F3A;&#x7701;&#x503C;&#xFF09;&#x6B63;&#x5E38; &#x3002;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;VbMinimized 1&nbsp;&nbsp; &#x6700;&#x5C0F;&#x5316;&#xFF08;&#x6700;&#x5C0F;&#x5316;&#x4E3A;&#x4E00;&#x4E2A;&#x56FE;&#x6807;&#xFF09;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;VbMaximized 2&nbsp;&nbsp; &#x6700;&#x5927;&#x5316;&#xFF08;&#x6269;&#x5927;&#x5230;&#x6700;&#x5927;&#x5C3A;&#x5BF8;&#xFF09;<br/>&nbsp;&nbsp;&nbsp;&nbsp;If WindowState = vbMinimized Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LastState = vbNormal<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LastState = WindowState<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;AddToTray Me, mnuTray &#39;&#x5C06;&#x56FE;&#x6807;&#x6DFB;&#x52A0;&#x5230;&#x6258;&#x76D8;&#x7684;&#x51FD;&#x6570;<br/>&nbsp;&nbsp;&nbsp;&nbsp;SetTrayTip &#34;&#x9F20;&#x6807;&#x79FB;&#x5230;&#x6258;&#x76D8;&#x56FE;&#x6807;&#x5C31;&#x770B;&#x5230;&#x6211;&#x4E86;^_^&#34;<br/>End Sub<br/>&#39;&#x5728;&#x4E3B;&#x7A97;&#x4F53;Form1&#x5927;&#x5C0F;&#x6539;&#x53D8;&#x65F6;&#xFF0C;&#x76F8;&#x5E94;&#x6539;&#x53D8;&#x53F3;&#x952E;&#x83DC;&#x5355;mnuTray&#x7684;&#x83DC;&#x5355;&#x9879;&#x7684;&#x53EF;&#x7528;&#x5C5E;&#x6027;Enabled<br/>Private Sub Form_Resize()<br/>&nbsp;&nbsp;&nbsp;&nbsp;Sel&#101;ct Case WindowState<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5982;&#x679C;&#x7A97;&#x4F53;&#x6700;&#x5C0F;&#x5316;&#x4E86;&#xFF0C;&#x628A;&#x83DC;&#x5355;&#x9879;&#x201C;&#x6700;&#x5927;&#x5316;&#x201D;&#x201C;&#x6062;&#x590D;&#x201D;&#x8BBE;&#x4E3A;&#x53EF;&#x7528;&#xFF0C;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x800C;&#x628A;&#x201C;&#x6700;&#x5C0F;&#x5316;&#x201D;&#x201C;&#x79FB;&#x52A8;&#x201D;&#x201C;&#x5927;&#x5C0F;&#x201D;&#x4E09;&#x9879;&#x8BBE;&#x4E3A;&#x4E0D;&#x53EF;&#x7528;.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x5982;&#x679C;&#x8FD9;&#x65F6;&#x5728;&#x6258;&#x76D8;&#x56FE;&#x6807;&#x4E0A;&#x70B9;&#x51FB;&#x9F20;&#x6807;&#x53F3;&#x952E;&#xFF0C;&#x4F1A;&#x53D1;&#x73B0;&#x4E0D;&#x53EF;&#x7528;&#x9879;&#x53D8;&#x4E3A;&#x7070;&#x8272;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case vbMinimized<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mnuTrayMaximize.Enabled = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mnuTrayMinimize.Enabled = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mnuTrayMove.Enabled = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mnuTrayRestore.Enabled = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mnuTraySize.Enabled = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x7A97;&#x4F53;&#x6700;&#x5927;&#x5316;&#x65F6;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case vbMaximized<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mnuTrayMaximize.Enabled = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mnuTrayMinimize.Enabled = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mnuTrayMove.Enabled = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mnuTrayRestore.Enabled = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mnuTraySize.Enabled = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&#x4E00;&#x822C;&#x72B6;&#x6001;&#x4E0B;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case vbNormal<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mnuTrayMaximize.Enabled = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mnuTrayMinimize.Enabled = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mnuTrayMove.Enabled = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mnuTrayRestore.Enabled = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mnuTraySize.Enabled = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;End Sel&#101;ct<br/>&nbsp;&nbsp;&nbsp;&nbsp;If WindowState &lt;&gt; vbMinimized Then LastState = WindowState<br/>End Sub<br/>&#39;&#x4FDD;&#x8BC1;&#x5728;&#x7A0B;&#x5E8F;&#x9000;&#x51FA;&#x65F6;&#x5220;&#x9664;&#x6258;&#x76D8;&#x56FE;&#x6807;<br/>Private Sub Form_Unload(Cancel As Integer)<br/>&nbsp;&nbsp;&nbsp;&nbsp;RemoveFromTray<br/>End Sub<br/>&#39;&#x201C;&#x6587;&#x4EF6;&#x201D;&#x83DC;&#x5355;&#x7684;&#x201C;&#x9000;&#x51FA;&#x201D;&#x9879;&#x88AB;&#x70B9;&#x51FB;&#x65F6;<br/>Private Sub mnuFileExit_Click()<br/>&nbsp;&nbsp;&nbsp;&nbsp;Unload Me<br/>End Sub<br/>&#39;&#x6258;&#x76D8;&#x56FE;&#x6807;&#x53F3;&#x952E;&#x83DC;&#x5355;&#x4E0A;&#x7684;&#x201C;&#x9000;&#x51FA;&#x201D;&#x9879;&#x88AB;&#x70B9;&#x51FB;&#x65F6;<br/>Private Sub mnuTrayClose_Click()<br/>&nbsp;&nbsp;&nbsp;&nbsp;Unload Me<br/>End Sub<br/>&#39;&#x6258;&#x76D8;&#x56FE;&#x6807;&#x53F3;&#x952E;&#x83DC;&#x5355;&#x4E0A;&#x7684;&#x201C;&#x6700;&#x5927;&#x5316;&#x201D;&#x9879;&#x88AB;&#x70B9;&#x51FB;&#x65F6;<br/>Private Sub mnuTrayMaximize_Click()<br/>&nbsp;&nbsp;&nbsp;&nbsp;WindowState = vbMaximized<br/>End Sub<br/>&#39;&#x6258;&#x76D8;&#x56FE;&#x6807;&#x53F3;&#x952E;&#x83DC;&#x5355;&#x4E0A;&#x7684;&#x201C;&#x6700;&#x5C0F;&#x5316;&#x201D;&#x9879;&#x88AB;&#x70B9;&#x51FB;&#x65F6;<br/>Private Sub mnuTrayMinimize_Click()<br/>&nbsp;&nbsp;&nbsp;&nbsp;WindowState = vbMinimized<br/>End Sub<br/>&#39;&#x6258;&#x76D8;&#x56FE;&#x6807;&#x53F3;&#x952E;&#x83DC;&#x5355;&#x4E0A;&#x7684;&#x201C;&#x79FB;&#x52A8;&#x201D;&#x9879;&#x88AB;&#x70B9;&#x51FB;&#x65F6;<br/>Private Sub mnuTrayMove_Click()<br/>&nbsp;&nbsp;&nbsp;&nbsp;SendMessage HWnd, WM_SYSCOMMAND, SC_MOVE, 0&amp;<br/>End Sub<br/>&#39;&#x6258;&#x76D8;&#x56FE;&#x6807;&#x53F3;&#x952E;&#x83DC;&#x5355;&#x4E0A;&#x7684;&#x201C;&#x6062;&#x590D;&#x201D;&#x9879;&#x88AB;&#x70B9;&#x51FB;&#x65F6;<br/>Private Sub mnuTrayRestore_Click()<br/>&nbsp;&nbsp;&nbsp;&nbsp;SendMessage HWnd, WM_SYSCOMMAND, SC_RESTORE, 0&amp;<br/>End Sub<br/>&#39;&#x6258;&#x76D8;&#x56FE;&#x6807;&#x53F3;&#x952E;&#x83DC;&#x5355;&#x4E0A;&#x7684;&#x201C;&#x9000;&#x51FA;&#x201D;&#x9879;&#x88AB;&#x70B9;&#x51FB;&#x65F6;<br/>Private Sub mnuTraySize_Click()<br/>&nbsp;&nbsp;&nbsp;&nbsp;SendMessage HWnd, WM_SYSCOMMAND, SC_SIZE, 0&amp;<br/>End Sub<br/>&#x8FD0;&#x884C;&#x5373;&#x53EF;&#x770B;&#x5230;&#x6548;&#x679C;&#xFF01;</p><p> + <a href="#CommentCard">&#x67E5;&#x770B;&#x5F53;&#x524D;&#x65E5;&#x5FD7;&#x8BC4;&#x8BBA;</a> (0)</p><p>&nbsp;<br/><br/><a href="wap.asp?do=Login">&#x767B;&#x5F55;</a></p><p><br/>&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;</p><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a></p><p><a href="http://www.pjhome.net/wap.asp">PJBlog3&nbsp;v3.2.9.518</a>&nbsp;Inside.</p><p>Processed&nbsp;In&nbsp;0.076&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card><card id="postCommentCard"><p><b>&#x6807;&#x9898;&#x3A;</b> <a href="#MainCard">&#x56;&#x42;&#x36;&#x2E;&#x30;&#x5B9E;&#x73B0;&#x6258;&#x76D8;&#x56FE;&#x6807;&#x793A;&#x4F8B;</a></p><p><br/>你没有权限发表评论</p><p><br/>&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;</p><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a></p><p><a href="http://www.pjhome.net/wap.asp">PJBlog3&nbsp;v3.2.9.518</a>&nbsp;Inside.</p><p>Processed&nbsp;In&nbsp;0.076&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card><card id="CommentCard"><p>&#x6682;&#x65E0;&#x8BC4;&#x8BBA;</p><p><a href="#MainCard">&#x8FD4;&#x56DE;</a></p><p><br/>&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;</p><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a></p><p><a href="http://www.pjhome.net/wap.asp">PJBlog3&nbsp;v3.2.9.518</a>&nbsp;Inside.</p><p>Processed&nbsp;In&nbsp;0.076&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card>
</wml>
