блокировка

Тема в разделе "WASM.UNIX", создана пользователем fastmod, 11 апр 2007.

  1. fastmod

    fastmod New Member

    Публикаций:
    0
    Регистрация:
    5 апр 2007
    Сообщения:
    7
    Всем привет!
    Если в главном окне программы открыть диалог (модальный), то выполнение главного окна блокируется, не реагируя на все нажатия, пока диалог не будет закрыт. Можно было по нажатию какой-нибудь кнопки открывать диалог и при этом запускать таймер, потом по событию таймера закрывать диалог, и дальше работать с главным окном.

    Такой вот вопрос: как создать такую же ситуацию без диалога, как заблокировать главное окно? НО чтобы события таймера при этом обрабатывались.

    Это нужно для того чтобы, по нажатию определенной кнопки начинают производиться расчеты, при этом курсор меняется на иконку песочных часов и главное окно не должно реагировать ни на что (не на нажатия мыши, не на клавиатуру) пока эти расчеты не закончатся. Как это сделать???
     
  2. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    В цикле сообщений не обрабатывать никакие сообщения, кроме таймера ;)
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    1) поставить стиль WM_DISABLED окну
    либо
    2) сделать флаг bool bProcessMessages, который изначально равен 1, а при выполнении действий сбрасывается в ноль. в цикле проверки сообщений если bProcessMessages==0 не обрабатывать ничего, кроме таймера
     
  4. fastmod

    fastmod New Member

    Публикаций:
    0
    Регистрация:
    5 апр 2007
    Сообщения:
    7
    Не проходит, т.к. у меня MDI-приложение. Таким образом не блокируется переключение между окнами, а надо :dntknw:
    Я пишу на платформу Linux, как я понял сообщения - это события, а событие допустим нажатия кнопки генерируется уже после нажатия. Или сообщения это что то другое?
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    упс.. на название форума я не смотрю конечно=\
     
  6. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Great
    Да нет, тема в ZEN была, а топикстартер не сказал, что ему под никсы.
     
  7. xlinuks

    xlinuks New Member

    Публикаций:
    0
    Регистрация:
    25 май 2006
    Сообщения:
    181
    fastmod
    Хотелось бы добавить/уточнить что в *никсах (как минимум под Gnome & KDE) главное окно в этом случае блокируется, но оно не перестает реагировать на некоторые *нажатия* как например минимизация, увеличение, перемещение и наконец закрытие окна (да, даже при наличии модального диалога). Это *новшество* (в отличии от мелкомягких) мне очень нравится (не стану говорить почему). Решил напомнить об этом факте на случай если это важно для твоей будущей программы.
     
  8. xlinuks

    xlinuks New Member

    Публикаций:
    0
    Регистрация:
    25 май 2006
    Сообщения:
    181
    Добавлю, еслиб ты писал на Java, это было бы очень легко сделать и работало бы одинаково на всех платформах, но на асме или С не знаю.