Диалоговые окна

Тема в разделе "WASM.WIN32", создана пользователем CodeGrinder, 19 янв 2009.

  1. CodeGrinder

    CodeGrinder New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    56
    Есть основное диалоговое окно и диалог с инструментами. Нужно чтобы эти два диалога вели себя как один (т.е. не менять фокус с главного диалога на другой, не отображать второй диалог на панели задач). Какие флаги помогут это реализовать?

    Заранее благодарен за помощь!)
     
  2. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    WS_EX_APPWINDOW
     
  3. CodeGrinder

    CodeGrinder New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    56
    Сам по себе не пашет..(
     
  4. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Завтра могу кинуть утилитку - пошерстишь различные комбинации оконных стилей.
     
  5. CodeGrinder

    CodeGrinder New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    56
    Был бы оч благодарен!
    CodeGrinder(dog)vinbazar.com
     
  6. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    Может, имелось в виду не WS_EX_APPWINDOW, а WS_EX_NOACTIVATE ? :)
     
  7. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Ну я точно имелл ввиду первое, независимо от того, насколько верным оказалось предположение. ;)

    Вот смотрю на окно qip, то, где сообщения набираются. Оно отображается на панели задач, но вышеперечисленные стили не установлены. Убрать из таскбара не выходит. В чем может быть дело?
     
  8. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    Что за "окно qip" - врать не буду: не знаю :)
    Но что касается пребывания на таскбаре - WS_EX_APPWINDOW для этого не требуется.
    А убрать из таскбара можно разными способами, смотря по обстоятельствам.
    Например - (недокументированным) путем SetWindowLong(hWnd,GWL_HWNDPARENT,<message-only окно вроде class #32774).

    Между прочим, у WS_EX_APPWINDOW и WS_EX_NOACTIVATE в определенном смысле - противоположные задачи:

    WS_EX_APPWINDOW -
    WS_EX_NOACTIVATE -
    P.S. Еще способ убрать с таскбара "на лету": добавить WS_EX_TOOLWINDOW в промежутке между ShowWindow(...SW_HIDE) и ShowWindow(...SW_SHOWNORMAL). Естественно, при этом WS_EX_APPWINDOW д.б. похерен.
     
  9. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Не уверен, что оно после этого будет прорисовываться и нормально себя вести. :)
    Мне кроме WS_EX_APPWINDOW больше ни чего на ум не приходит.
    Не суть, что за окно. Берем другое (я взял главное окно WinRar), смотрим стили - WS_EX_APPWINDOW не стоит, однако такскбар его показывает. Убрать из таскбара игрой со стилями не выходит. Что за ерунда? Или я чего-то упустил...
     
  10. CodeGrinder

    CodeGrinder New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    56
    А каким еще методом можно создать окно или диалог, которое будет как-бы дополнением к основному?
     
  11. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    Зачем сомневаться, если легко проверить ? :)
     
  12. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Bradcast сообщения по-любому не будут приходить. Проверено. Остальное - поверю на слово, пусть себе работает...

    Только создать его как child.
     
  13. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    Все-таки: дополнительный - CreateDialog (т.е. немодальный) с WS_EX_NOACTIVATE и главным диалогом в качестве owner-а.
     
  14. CodeGrinder

    CodeGrinder New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    56
    Тогда оно будет модальным к отцу..
     
  15. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Я не про модальное, а про дочернее.

    Честно говоря, не совсем понятна конечная цель. Зачем так извращаться? Мало того, этого скорее всего не понимали и проектировщики WinNT, иначе наверняка реализовали бы подобный функционал - эдакую помесь child_without_parent + appwindow.
     
  16. CodeGrinder

    CodeGrinder New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    56
    Попросту говоря, при нажатии на кнопку на диалоге, должен справа появиться другой диалог, но он должен быть как чать основного диалога, т.е. когда на него кликнуть, фокус на него перемещаться не должен и т.д.
     
  17. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Сделай по-человечески - просто расширяй основную форму и отображай на ней доп. инфу.
    Это критично? Глянь на Microangelo версии 5.5 и ниже -> основное окно, рядом подобные твоим диалоги. И то, что на них может попасть фокус ни как не мешает "фунциклированию" программы.

    ЗЫ. Прогер не ищет легких путей? ;)
     
  18. CodeGrinder

    CodeGrinder New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    56
    Я и хотел так сделать, просто на ум пришла извращенная форма и любопытство победило..)
    Теперь не успокоюсь пока не разберусь!))
     
  19. CodeGrinder

    CodeGrinder New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    56
    Я хочу убрать у дополнительного диалогу титлбар. А без него некрасиво будет, если фокус будет бегать..)
     
  20. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    CodeGrinder
    А что значит "модальным к отцу" ? Это что-то новенькое :)