Конференция "WinAPI" » Как обработать нажатие на кнопку минимизации?
 
  • demon © (05.09.09 03:27) [0]
    Как через api обработать нажатие в окне на кнопку минимизации? т.е. какое событие за это отвечает?..
  • KilkennyCat © (05.09.09 03:38) [1]
  • Ruzzz (05.09.09 05:23) [2]
    procedure WMGetSysCommand(var Message : TMessage); message WM_SYSCOMMAND;

    procedure TfrmMain.WMGetSysCommand(var Message: TMessage);
    begin
     if (Message.WParam = SC_MINIMIZE) and FSettings.MinimizeToTray then
       Application.MainForm.Visible := False
     else if (Message.WParam = SC_CLOSE) and FSettings.CloseToTray then
       Application.MainForm.Visible := False
     else
     inherited;
    end;
  • Юрий Зотов © (05.09.09 17:26) [3]
    > Ruzzz   (05.09.09 05:23) [2]

    In WM_SYSCOMMAND messages, the four low-order bits of the wParam parameter are used internally by the system. To obtain the correct result when testing the value of wParam, an application must combine the value 0xFFF0 with the wParam value by using the bitwise AND operator.

    if Message.WParam and $FFF0 = SC_MINIMIZE ...

  • demon © (06.09.09 02:26) [4]
    Что-то не получаеться сделать так как хотелось, а хотелось чтобы окно закрывалось вместо сворачивания...
  • Ruzzz (06.09.09 16:31) [5]
    вместо
    if (Message.WParam = SC_MINIMIZE) and FSettings.MinimizeToTray then
      Application.MainForm.Visible := False
    написать
    if (Message.WParam = SC_MINIMIZE) then Close;

    Не проверял :) Попробуйте сами
  • Ruzzz (06.09.09 16:51) [6]
    ах да if (Message.WParam and $FFF0 = SC_MINIMIZE) then Close;
  • clickmaker © (08.09.09 16:27) [7]
    > хотелось чтобы окно закрывалось вместо сворачивания

    зачем?
    оно в трэй что-ли сворачивается?
  • demon © (12.09.09 05:18) [8]

    > зачем?оно в трэй что-ли сворачивается?

    Не совсем, но чтото вроде того. Оно сварачиваеться в меленькую панельку ну например как в аимпе ;)
 
Конференция "WinAPI" » Как обработать нажатие на кнопку минимизации?
Есть новые Нет новых   [134434   +27][b:0][p:0.001]