0

次のコードを使用して、プログラムの最小化ボタンが押されたときにキャプチャし、タスクバーからフォームを非表示にして、システム トレイに最小化できるようにします。

procedure TForm1.WMSysCommand;
begin
   if (Msg.CmdType = SC_MINIMIZE) then
   begin
    form1.Hide;
    show1.Checked :=false;
    hide1.Checked :=true;
    end;
   if (Msg.CmdType = SC_CLOSE) then form1.Close;
end;

このコードは閉じるボタンを介してプログラムを閉じることを妨げていたため、閉じるボタンにもキャプチャを配置する必要がありました。私が助けを必要としているのは、このコードで機能しなくなったキャプション バーによるプログラム ウィンドウのドラッグを修正する方法です。

4

1 に答える 1

6

Windows メッセージの処理をオーバーライドする場合は、考えられるすべてのケースを処理するか、未処理のすべてのケースに対して継承されたコードを呼び出すように注意する必要があります。

procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);
begin
   if (Msg.CmdType = SC_MINIMIZE) then
   begin
     Hide;
     show1.Checked := False;
     hide1.Checked := True;
     Msg.Result := 0;
     exit;
   end;
   inherited;
end;
于 2010-01-13T08:15:00.760 に答える