1  在窗口最小化的时候,引发的是什么事件?
   比如我要在窗口最小化的时候,showmessage显示“你好啊”2  怎么在程序的托盘中,加入一图片或是文字说明,就好象windows开始菜单左边显示的那个“windows professiaonal”和他的兰色背景

解决方案 »

  1.   


    procedure wmmessage(var msg:tmessage);message wm_syscommand;procedure tform1.wmmessage(var msg:tmessage);
    begin
     if msg.WParam=sc_icon then
       showmessage('你好');
     else
        inherited;
     end;
      

  2.   

    pravite
       procedure myminimize(var msg: TWMSYSCOMMAND);message wm_syscommand;
    procedure tform1.myminimize(var msg: TWMSYSCOMMAND);
    beginend;
      

  3.   

    to  zhuxud(圣东方)
    谢谢
    但是这么做后,最小化后就没用了啊?
    不不仅要能显示信息,还要可以最小化
      

  4.   

    pravite
       procedure myminimize(var msg: TWMSYSCOMMAND);message wm_syscommand;
    procedure tform1.myminimize(var msg: TWMSYSCOMMAND);
    begin
          if msg.CmdType = sc_maximize then
            begin
                postmessage(handle,wm_syscommand,sc_maximize,0);        end;end;
      

  5.   

    procedure TfrmMain.wmmessage(var msg: tmessage);
    begin
     if msg.WParam=sc_icon then showmessage('你好');
     inherited;
    end;
      

  6.   

    2.好像有控件可以达到你的要求,好像有人改过xpmenu达到了那个效果,你找找试试
      

  7.   

    popupMenu的那个image属性,我怎么弄也用不了啊?
      

  8.   

    2
    1.新建一个PopupMenu1.设置OwnerDraw:=True; 
    2.添加一个菜单项m1.设置m1.Caption:=''; 
      m1.Enabled:=False; 
    3.添加一些你需要的菜单项m2,m3,m4,……. 
      其中设置m2.Break:=mbBreak; 
    4.在m1的DrawItem中: 
    procedure TForm1.m1DrawItem(Sender: TObject; ACanvas: TCanvas; 
      ARect: TRect; Selected: Boolean); 
    var 
      i:word; 
      dy,y:real; 
      lf:TLogFont; 
      tf:TFont; 
    begin 
      //画渐进色背景 
      dy:=(ARect.Bottom - ARect.Top)/256; 
      y:=0; 
      for i:=255 downto 0 do 
      begin 
        Acanvas.brush.color:=RGB(255-i,255-i,255); 
        Acanvas.fillrect(rect(0,round(y),ARect.Right - ARect.Left,round(y+dy))); 
        y:=y+dy; 
      end; 
      //写字 
      With ACanvas do 
        Begin 
          Brush.Style:=bsClear; 
          Font.Name:='宋体'; 
          Font.Size:=12; 
          Font.Color:=clred; 
          tf:=TFont.Create; 
          tf.Assign(Font); 
          GetObject(tf.Handle,sizeof(lf),@lf); 
          lf.lfEscapement:=900; 
          tf.Handle:=CreateFontIndirect(lf); 
          Font.Assign(tf); 
          tf.Free; 
          TextOut(ARect.Left +2,ARect.Bottom -2,'弹出菜单'); 
        End; 
    end; 
    5.在m1的MeasureItem中: 
    procedure TForm1.m1MeasureItem(Sender: TObject; ACanvas: TCanvas; 
      var Width, Height: Integer); 
    begin 
    ///////// 
      Width:= 10; 
      Height:= (PopupMenu1.Items.Count - 1) * 19; 
    end; 
      

  9.   

    这样显示“你好”与最小化都可
    private
      { Private declarations }
      Procedure WMSysCommand(Var msg : TMessage);Message M_SYSCOMMAND;  
    ......
    procedure TForm1.WMSysCommand(var msg: TMessage);
    begin
     if (msg.WParam=SC_MINIMIZE) then
      begin
       showmessage('你好啊!');  
       application.minimize;
      end
      else
        Inherited;
    end;
      

  10.   

    来晚了,不过我觉得如果要用被最小化的那个窗口的进程来发出
    showmessage函数的话,一定是不可能最小化的。