Создать невидимый диалог

Discussion in 'WASM.WIN32' started by CodeGrinder, Mar 27, 2009.

  1. CodeGrinder

    CodeGrinder New Member

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

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

    _DEN_ DEN

    Blog Posts:
    0
    Joined:
    Oct 8, 2003
    Messages:
    5,383
    Location:
    Йобастан
    CodeGrinder

    ShowWindow(SW_HIDE) по WM_INITDIALOG не помогает?
     
  3. HuXTUS

    HuXTUS New Member

    Blog Posts:
    0
    Joined:
    Jan 8, 2007
    Messages:
    240
    Насколько помню, у меня не получалось в INITDIALOG применить SW_HIDE. Хз почему. Поэтому создавал таймер, который при старте выключался и вызывал ShowWindow(SW_HIDE). При этом окно при запуске мерцало.
     
  4. FatMoon

    FatMoon New Member

    Blog Posts:
    0
    Joined:
    Nov 28, 2002
    Messages:
    954
    Location:
    Russia
    тут какой-то странный феномен - первый вызов не может скрыть окно. Я делал так:

    при WM_INITDIALOG:
    Code (Text):
    1. ;чтоб убрать с экрана, + первый, блин (комом), вызов
    2.       invoke ShowWindow,[hwnd],SW_MINIMIZE
    3. ...
    4. ;Пусть эта сволочь думает, что нажали кнопку 'Cancel'
    5.      invoke PostMessage,[hwnd],WM_COMMAND,BN_CLICKED shl 16 + IDCANCEL,0
    6. ...
    а при WM_COMMAND, собственно, по кнопке "Cancel" диалог скрывался:
    Code (Text):
    1. ...
    2.      cmp     [wparam],BN_CLICKED shl 16 + IDCANCEL
    3.      jz      hide_me
    4. ...
    5. hide_me:
    6.     invoke ShowWindow,[hwnd],SW_HIDE
    7.     jmp processed
    При вызове ShowWindow(SW_HIDE) при инициализации диалог в самом деле не прячется - спрятать можно только после. Свернутое окно не мерцает :)
     
  5. KeSqueer

    KeSqueer Сергей

    Blog Posts:
    0
    Joined:
    Jul 19, 2007
    Messages:
    1,183
    Location:
    Москва
    http://wasm.ru/forum/viewtopic.php?id=25332
     
  6. CodeGrinder

    CodeGrinder New Member

    Blog Posts:
    0
    Joined:
    Feb 9, 2007
    Messages:
    56
    И у меня не выходило. Просто диалог создается после вызова INITDIALOG с параметром по умолчанию SHOWNORMAL или типа того. Победить это, я думаю, можно только через DLGTEMPLATE.
     
  7. CodeGrinder

    CodeGrinder New Member

    Blog Posts:
    0
    Joined:
    Feb 9, 2007
    Messages:
    56
    Многое прояснилось. Я попробую! Спасибо!)
     
  8. mrcrown

    mrcrown Member

    Blog Posts:
    0
    Joined:
    Jan 18, 2008
    Messages:
    227
    А стиль WS_VISIBLE не пробывал?