最 近 在 用 D e l p h i 做 一 个 小 程 序 ,其 中 有 个 功 能 是:
当 按 下 “最 小 化” 系 统 按 钮 时,程 序 S h o w M e s s a g e (‘ 最 小 化 了 ! ’)
这 个 功 能 我 已 经 实 现 了。 但 是 测 试 时 ,新 的 问 题 又 出 现 : 当 我 按 下 “ 显 示 桌 面 ”按 钮 时,我 的 程 序 最 小 化 了,但 是 并 没 有 执 行 S h o w M e s s a g e 。苦 苦 思 索,没 有 结 果。 我 的 问 题 就 是 这 :当 按 下 “ 显 示 桌 面 ” 按 钮 时,或 者 当 程 序 收 到 一 个“ 最 小 化 ”消 息,就 执 行 S h o w M e s s a g e ( ' 最 小 化 了 ! ' )。 谢 谢 老 师 解 答 !

解决方案 »

  1.   

    procedure TForm1.ApplicationEvents1Minimize(Sender: TObject);
    begin
      showmessage('最 小 化 了 ! ');
    end;
      

  2.   

    我晕。3楼 jackie168(花好月圓) 太不负责任了。。
    呵呵您可能还没有仔细看我的问题。
      

  3.   

    不知道写到TForm.OnClose事件里面如何呢?
      

  4.   

    。。
    我只是希望按下“显示桌面”按钮时,程序能响应
    我知道“显示桌面”的作用是遍历所有窗体,并给其发送最小化消息。
    但是,即使在窗体Form中拦截最小化消息,按下“显示桌面”Form并没有执行预设的操作我 的 问 题 就 是 这 :当 按 下 “ 显 示 桌 面 ” 按 钮 时,或 者 当 程 序 收 到 一 个“ 最 小 化 ”消 息,就 执 行 S h o w M e s s a g e ( ' 最 小 化 了 ! ' )。
      

  5.   

    可以响应WM_SHOWWINDOW消息 
    procedure ShowWindow(var msg : TMsg); message WM_SHOWWINDOW;
     procedure TForm1.Sizes(var msg: TMsg);
    begin
     if(msg.wParam=SW_PARENTCLOSING) then
     showmessage('hello');
    end;
      

  6.   

    响应的是wm_size 这个消息,具体的你可以参照API