WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Создать невидимое окно

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Создать невидимое окно
VladF опубликован 28-11-2001 12:46 MSK   Click Here to See the Profile for VladF   Click Here to Email VladF  
Есть простой вопрос: диалоговое окно создается с помощью DoModal. Как сделать так, чтобы оно создалось невидимым (именно не видимым, а не нарисовалось и тут же исчезло)?
Пробовал вставлять ShowWindow(SW_HIDE) в разные места - результат: окно появляется на доли секунды и тут же исчезает.
Kostik опубликован 29-11-2001 05:27 MSK     Click Here to See the Profile for Kostik  Click Here to Email Kostik     
Убери WS_VISIBLE
DmitryRyvkin опубликован 29-11-2001 13:21 MSK     Click Here to See the Profile for DmitryRyvkin  Click Here to Email DmitryRyvkin     
2Kostic Расскажите как именно c DoModal
убрать этот стиль
Kostik опубликован 29-11-2001 13:56 MSK     Click Here to See the Profile for Kostik  Click Here to Email Kostik     
У тебя ресурс диалога есть?
Убери у него стиль "Visible".
DmitryRyvkin опубликован 29-11-2001 14:56 MSK     Click Here to See the Profile for DmitryRyvkin  Click Here to Email DmitryRyvkin     
Ну и ? Попробуй сам . У него он и так не стоит. А вот по DoModal окно появится.
DmitryRyvkin опубликован 29-11-2001 15:37 MSK     Click Here to See the Profile for DmitryRyvkin  Click Here to Email DmitryRyvkin     
Кусок MFC кода
int CDialog::DoModal()
{
..............
VERIFY(RunModalLoop(dwFlags) == ModalResult);
...........
}

далее
int CWnd::RunModalLoop(DWORD dwFlags)
{
for (;;)
{
if (bShowIdle)
{
ShowWindow(SW_SHOWNORMAL);
UpdateWindow();
}
.......................................
По стилю SW_SHOWNORMAL диалог покажется.
А сделать флаг bShowIdle в false можно поставив диалогу стиль .... Visible
}

server_mouse опубликован 29-11-2001 17:56 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
Перехвати для класса диалога PreCreateWindow() и там сними WS_VISIBLE. Должно помочь.
DmitryRyvkin опубликован 30-11-2001 05:14 MSK     Click Here to See the Profile for DmitryRyvkin  Click Here to Email DmitryRyvkin     
Всех я достал :) Не поможет. DoModal само создает диалог, для него не нужно в итоге вызывать Create и PreCreate попросту не будет вызвано. Это верно для обычных окон, или для диалогов создаваемых по Create но не DoModal
rodion опубликован 30-11-2001 09:07 MSK     Click Here to See the Profile for rodion  Click Here to Email rodion     
Хотя я не понял зачем невидимый диалог,
но у него наверное есть событие типа WM_SHOW
к тому же если он невидымй то можно задать его размер 1*1?

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.