明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

加一個菜單項到Windows的系統(tǒng)菜單

[摘要]為什么Windows的系統(tǒng)菜單總是一成不變?這個例子教你如何往系統(tǒng)菜單添加一個菜單項如about或information等。 這個例子將一個菜單項加到系統(tǒng)菜單中去。我們需要兩個東西,一個是項名,這可以是如何整數(shù);我們還需要一個程序去收取Windows對確認(rèn)點擊我們創(chuàng)建的菜單項的信息。 Uni...
為什么Windows的系統(tǒng)菜單總是一成不變?這個例子教你如何往系統(tǒng)菜單添加一個菜單項如about或information等。
    這個例子將一個菜單項加到系統(tǒng)菜單中去。我們需要兩個東西,一個是項名,這可以是如何整數(shù);我們還需要一個程序去收取Windows對確認(rèn)點擊我們創(chuàng)建的菜單項的信息。

Unit OhYeah;

Interface

Uses
    SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, Menus;

Type
   TForm1 = Class (TForm)
      Procedure FormCreate (Sender : TObject);
          Private {Private declarations}
   Public {Public declarations}
      Procedure WinMsg (Var Msg : TMsg; Var Handled : Boolean);
      Procedure DoWhatEever;

End;

Var
   Form1 : TForm1;

Implementation

{$R *.DFM}

Const
     ItemID = 99; // 這個ID number代表你的菜單項,可以是任何值。

Procedure Tform1.WinMsg (Var Msg : TMsg; Var Handled : Boolean);

Begin
     If Msg.Message = WM_SYSCOMMAND Then
        If Msg.WParam = ItemID Then DoWhatEver;

End;

Procedure TForm1.FormCreate (Sender : TObject);

Begin
     Application.OnMessage := WinMsg;
     AppendMenu (GetSystemMenu (Form1.Handle, False), MF_SEPARATOR, 0, '');
     AppendMenu (GetSystemMenu (Form1.Handle, False), MF_BYPOSITION, ItemID, '&My menu');
     AppendMenu (GetSystemMenu (Application.Handle, False), MF_SEPARATOR, 0, '');
     AppendMenu (GetSystemMenu (Application.Handle, False), MF_BYPOSITION, ItemID,'&My menu minimized');

End;

Procedure TForm1.DoWhatEver;

Begin
     Exit; //你可以添加任何你想加的東西到這里
End;

End.