怎么制作像WINDOWS窗口左下角点击开始弹出的那种菜单?
DELPHI自带了这个组件吗?
还是要自己写或是去下载专门制作这类菜单的控件?

解决方案 »

  1.   

    Windows开始菜单其实并不是菜单(Menu),是窗口(Windows),只是在窗口中加了特殊处理,使其看起来象菜单而已。你可以自己用一个窗口实现。在窗口中加几个SpeedButton就可以了。至于说菜单出现时的动画效果,可以使用AnimateWindow()函数实现。具体使用方法可以到google上搜一下。 ^_^
      

  2.   

    我觉得QQ那个菜单也是仿照WINDOWS做的啊~
    有没有谁有这方面的经验,让参考一下~
      

  3.   

    做成PopMenu,然后判断Menu的出现位置旧行了
      

  4.   

    非常规程序菜单吧?简易托盘图标控件-TTrayIcon可以实现!
    http://sd.2ccc.com/downloads/vcl/bars/iamdream_TrayIcon.rar
    至于菜单的样式,可采用界面控件!
      

  5.   

    以前用Memu做过一个仿制的。
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls;type
      TForm1 = class(TForm)
        Image1: TImage;
        procedure FormCreate(Sender: TObject);
        procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
          Y: Integer);
        procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
          Y: Integer);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    var
    tep:integer;
    begin
    tep:=0;
    systemparametersinfo(spi_setfasttaskswitch,1,@tep,0);
    systemparametersinfo(spi_screensaverrunning,1,@tep,0);//屏蔽Ctrl+F4&Ctrl+Alt+del
    end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
    if Y>screen.Height-30 then
    begin
    form2.left:=0;
    form2.top:=screen.Height-30;
    form2.width:=screen.Width;
    form2.height:=30;
    form2.show;
    end
    else
    form2.hide;
    end;
    procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
    if Y>screen.Height-30 then
    begin
    form2.left:=0;
    form2.top:=screen.Height-30;
    form2.width:=screen.Width;
    form2.height:=30;
    form2.show;
    end
    else
    form2.hide;
    end;end.form2的源代码不给出了,调整一个合适的大小就可以了。form1.Align设置为alClient.
      

  6.   

    忘了说,form2上得放置一个TSpeedButton&TPopupMenu。当鼠标移动到一定得位置,Form2显示,点击TSpeedButton,弹出TPopupMenu.
      

  7.   

    通过SetMenuItemInfo将MenuItemInfo中的fType设置包含有MFT_OWNERDRAW属性
    然后在WM_MEASUREITEM事件里设定菜单尺寸
    最后在WM_DRAWITEM里重绘菜单项
      

  8.   

    高手们~
    说的那么复杂~
    如果DELPHI没有这方面的控件,看来只有自己用窗体实现是最好的办法了啊~