Конференция "WinAPI" » Кнопка закрытия формы [D5, WinXP]
 
  • Informer (25.03.08 17:58) [0]
    Подскажите, пожалуйста, каким образом можно реализовать Enable и Disable для кнопки закрытия формы.
    Спасибо.
  • Elec3C © (25.03.08 19:26) [1]
    Можно так, простым удаление из меню приложения кнопки закрыть:

    var hHan : HMENU;
    begin
      hHan := GetSystemMenu(Handle, False);
     
      if hMenuHandle <> 0 then DeleteMenu(hHan, SC_CLOSE, MF_BYCOMMAND);
    end;

  • Informer (25.03.08 21:01) [2]
    Собственно, я делаю таким образом:
    Запрещаю кнопку (но она визуально не дисейблится, хотя клики по ней (кнопке) не отрабатываются, что меня вполне устраивает (с некоторым запаздываем я наблюдаю "затененность" этой кнопки).
    DeleteMenu(GetSystemMenu(Form1.Handle, false), SC_CLOSE, MF_BYCOMMAND);


    Вопрос? Как ее визуально задисейблить, и второй вопрос:
    Я ее формально раздисейблю (аналогичной командой, она правильно реагирует на клики мыши), но в этот момент смотрится как "затенення".
  • Leonid Troyanovsky © (25.03.08 21:33) [3]

    > Informer   (25.03.08 21:01) [2]

    > Вопрос? Как ее визуально задисейблить, и второй вопрос:

    Испытать
    SetWindowPos( Form.Handle, 0, 0, 0, 0, 0,
      SWP_NOZORDER or SWP_NOSIZE or SWP_NOMOVE or
      SWP_DRAWFRAME or SWP_SHOWWINDOW )
    И зачем удалять, если можно EnableMenuItem.

    --
    Regards, LVT.
  • Informer (25.03.08 21:37) [4]
    > Leonid Troyanovsky ©   (25.03.08 21:33) [3]
    > И зачем удалять, если можно EnableMenuItem
    Посто не знал такого:(
    Спасибо, если возникнут вопросы, обращусь.
    Спасибо.
  • Leonid Troyanovsky © (25.03.08 21:45) [5]

    > Informer   (25.03.08 21:37) [4]

    И SetWindowPos не пригодилась?

    --
    Regards, LVT.
  • Informer (25.03.08 21:53) [6]
    > Leonid Troyanovsky ©   (25.03.08 21:45) [5]
    Пока не осмыслил:(
    Запостил в "Прочее" о другом:(
    Совсем не связанно...
 
Конференция "WinAPI" » Кнопка закрытия формы [D5, WinXP]
Есть новые Нет новых   [134433   +22][b:0][p:0.001]