Как сделать окно AlwaysOnTop и\или модальным по отношению ко всему ?

Тема в разделе "WASM.BEGINNERS", создана пользователем gershkovich, 13 мар 2006.

  1. gershkovich

    gershkovich New Member

    Публикаций:
    0
    Регистрация:
    14 фев 2006
    Сообщения:
    97
    В общем то сабж.



    Мне надо чтобы юзер не смог не заметить мое окно.



    Устраивает два варианта - сделать окно AlwaysOnTop

    или сделать его модальным по отношению ко всему

    т.е. чтоб юзер не смог переключиться на другие приложения

    или окна (интересно, возможно ли такое ???)



    Поцкажите пжл как. Поиск по это форуму ничего не дал (по слову AlwaysOnTop). Гугл тоже выдает что-то не то (в основном на нимецком)



    Заранее спасибо.
     
  2. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    .If !bViewOnTop

    mov ecx,HWND_NOTOPMOST

    .Else

    mov ecx,HWND_TOPMOST

    .EndIf

    invoke SetWindowPos,hDlg,ecx,0,0,0,0,SWP_NOMOVE+SWP_NOSIZE+SWP_SHOWWINDOW
     
  3. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    есть еще стиль DS_SYSMODAL...
     
  4. gershkovich

    gershkovich New Member

    Публикаций:
    0
    Регистрация:
    14 фев 2006
    Сообщения:
    97
    Спасибо.

    С HWND_TOPMOST помогло.
    Код (Text):
    1. invoke  CreateWindowEx,WS_EX_TOPMOST, ......






    А куда DS_SYSMODAL вставлять? (Извини, за тупой

    вопрос. Сегодня же начну читать туториалы :) )



    Судя по названию, это то что нужно.
     
  5. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    DS_SYSMODAL - стиль (не _ЕХ_ ) вообще-то он для диалоговых окон, но можно и для обычных попробовать.

    я использовал DS_CENTER для обычных вместо процедуры центрирования - нормально работало.
     
  6. gershkovich

    gershkovich New Member

    Публикаций:
    0
    Регистрация:
    14 фев 2006
    Сообщения:
    97
    Выяснил, что DS_SYSMODAL то же самое что и WS_EX_TOPMOST



    Т.е. можно писать и так и так.



    Вот что пишут http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui /winui/windowsuserinterface/windowing/dialogboxes/aboutdialogboxes.asp



    This style is obsolete and is included for compatibility with 16-bit versions of Windows. If you specify this style, the system creates the dialog box with the WS_EX_TOPMOST style. This style does not prevent the user from accessing other windows on the desktop.