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

Discussion in 'WASM.WIN32' started by CodeGrinder, Jan 19, 2009.

  1. CodeGrinder

    CodeGrinder New Member

    Blog Posts:
    0
    Joined:
    Feb 9, 2007
    Messages:
    56
    Есть основное диалоговое окно и диалог с инструментами. Нужно чтобы эти два диалога вели себя как один (т.е. не менять фокус с главного диалога на другой, не отображать второй диалог на панели задач). Какие флаги помогут это реализовать?

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

    Twister New Member

    Blog Posts:
    0
    Joined:
    Oct 12, 2005
    Messages:
    720
    Location:
    Алматы
    WS_EX_APPWINDOW
     
  3. CodeGrinder

    CodeGrinder New Member

    Blog Posts:
    0
    Joined:
    Feb 9, 2007
    Messages:
    56
    Сам по себе не пашет..(
     
  4. Twister

    Twister New Member

    Blog Posts:
    0
    Joined:
    Oct 12, 2005
    Messages:
    720
    Location:
    Алматы
    Завтра могу кинуть утилитку - пошерстишь различные комбинации оконных стилей.
     
  5. CodeGrinder

    CodeGrinder New Member

    Blog Posts:
    0
    Joined:
    Feb 9, 2007
    Messages:
    56
    Был бы оч благодарен!
    CodeGrinder(dog)vinbazar.com
     
  6. kero

    kero Модератор SOURCES & 2LZ Staff Member

    Blog Posts:
    0
    Joined:
    Apr 4, 2006
    Messages:
    1,074
    Location:
    Москва
    Может, имелось в виду не WS_EX_APPWINDOW, а WS_EX_NOACTIVATE ? :)
     
  7. Twister

    Twister New Member

    Blog Posts:
    0
    Joined:
    Oct 12, 2005
    Messages:
    720
    Location:
    Алматы
    Ну я точно имелл ввиду первое, независимо от того, насколько верным оказалось предположение. ;)

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

    kero Модератор SOURCES & 2LZ Staff Member

    Blog Posts:
    0
    Joined:
    Apr 4, 2006
    Messages:
    1,074
    Location:
    Москва
    Что за "окно 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

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

    CodeGrinder New Member

    Blog Posts:
    0
    Joined:
    Feb 9, 2007
    Messages:
    56
    А каким еще методом можно создать окно или диалог, которое будет как-бы дополнением к основному?
     
  11. kero

    kero Модератор SOURCES & 2LZ Staff Member

    Blog Posts:
    0
    Joined:
    Apr 4, 2006
    Messages:
    1,074
    Location:
    Москва
    Зачем сомневаться, если легко проверить ? :)
     
  12. Twister

    Twister New Member

    Blog Posts:
    0
    Joined:
    Oct 12, 2005
    Messages:
    720
    Location:
    Алматы
    Bradcast сообщения по-любому не будут приходить. Проверено. Остальное - поверю на слово, пусть себе работает...

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

    kero Модератор SOURCES & 2LZ Staff Member

    Blog Posts:
    0
    Joined:
    Apr 4, 2006
    Messages:
    1,074
    Location:
    Москва
    Все-таки: дополнительный - CreateDialog (т.е. немодальный) с WS_EX_NOACTIVATE и главным диалогом в качестве owner-а.
     
  14. CodeGrinder

    CodeGrinder New Member

    Blog Posts:
    0
    Joined:
    Feb 9, 2007
    Messages:
    56
    Тогда оно будет модальным к отцу..
     
  15. Twister

    Twister New Member

    Blog Posts:
    0
    Joined:
    Oct 12, 2005
    Messages:
    720
    Location:
    Алматы
    Я не про модальное, а про дочернее.

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

    CodeGrinder New Member

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

    Twister New Member

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

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

    CodeGrinder New Member

    Blog Posts:
    0
    Joined:
    Feb 9, 2007
    Messages:
    56
    Я и хотел так сделать, просто на ум пришла извращенная форма и любопытство победило..)
    Теперь не успокоюсь пока не разберусь!))
     
  19. CodeGrinder

    CodeGrinder New Member

    Blog Posts:
    0
    Joined:
    Feb 9, 2007
    Messages:
    56
    Я хочу убрать у дополнительного диалогу титлбар. А без него некрасиво будет, если фокус будет бегать..)
     
  20. kero

    kero Модератор SOURCES & 2LZ Staff Member

    Blog Posts:
    0
    Joined:
    Apr 4, 2006
    Messages:
    1,074
    Location:
    Москва
    CodeGrinder
    А что значит "модальным к отцу" ? Это что-то новенькое :)