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

Автор Тема:   Спрятать диалог ?
MatrixST опубликован 31-01-2002 18:22 MSK   Click Here to See the Profile for MatrixST   Click Here to Email MatrixST  
Как можно инициализировать диалог чтобы его небыло видно но он постоянно выполнялся пока не будет подана какаято команда ?
Muran опубликован 31-01-2002 20:36 MSK     Click Here to See the Profile for Muran  Click Here to Email Muran     
dlg.ShowWindow(SW_HIDE);
MatrixST опубликован 01-02-2002 18:54 MSK     Click Here to See the Profile for MatrixST  Click Here to Email MatrixST     
Muran - к диалогу такая штука не рименяется !

Dialog1 dlg;
dlg.DoModal();

Как тут можно сделать диалог не видимым ! Чтобы он даже не появился ?


reporter опубликован 01-02-2002 22:56 MSK     Click Here to See the Profile for reporter  Click Here to Email reporter     
На хрена тебе тогда диалог, если он и показываться не будет. Запускай отдельный поток, там делай все свои вычисления...
Muran опубликован 02-02-2002 12:49 MSK     Click Here to See the Profile for Muran  Click Here to Email Muran     
2MatrixST не правда, можно сделать так:
Dialog1 dlg;
dlg.Create(IDD_DIALOG1,this);
dlg.ShowWindow(SW_HIDE);
и всё.
Диалог создасться и начнет работать,
но его не будет видно.
Не веришь, попробуй.
Muran опубликован 02-02-2002 12:53 MSK     Click Here to See the Profile for Muran  Click Here to Email Muran     
IDD_DIALOG1 - это ID диалога.
Должен существовать.
DmitryRyvkin опубликован 02-02-2002 03:28 MSK     Click Here to See the Profile for DmitryRyvkin  Click Here to Email DmitryRyvkin     
И когда ж он по вашему закончит свое существование ? При разрушении стека при выходе их ф-ции ? Если немодальный он ? Вобщем, скажите, вы именно так пробовали ? И получилось ?
Muran опубликован 02-02-2002 12:38 MSK     Click Here to See the Profile for Muran  Click Here to Email Muran     
2DmitryRyvkin: да, я так пробовал, диалог завершает свою работу когда закрывается главное окно, или по вызову CDialog::OnOk(),
OnCancel();
MatrixST опубликован 02-02-2002 12:48 MSK     Click Here to See the Profile for MatrixST  Click Here to Email MatrixST     
2Muran При компиляции выдает такую ошибку
: error C2664: 'int __thiscall CDialog::Create(const char *,class CWnd *)' : cannot convert parameter 1 from 'const int' to 'const char *'


2reporter : А диалог мне нужен для того чтобы на него компонент прицепить, чтобы он все время работал !

Muran опубликован 02-02-2002 15:38 MSK     Click Here to See the Profile for Muran  Click Here to Email Muran     
2MatrixST: Ты глючиш. Привожу код, который у меня компилится и работает как надо:

dlg.Create (IDD_DIALOG1,this);
dlg.ShowWindow (SW_HIDE);
Создается в функции InitDialog главного диалога, но можно вставить куда угодно.
IDD_DIALOG1 - это ID диалога в ресурс-вьювере.
this - ну это наверное понятно что.
Create имеет 3 определения, одно из которых - вышепреведенное.
Если не получается, то могу выслать готовую прогу.

Muran опубликован 02-02-2002 15:40 MSK     Click Here to See the Profile for Muran  Click Here to Email Muran     
2MatrixST: а какой у тебя компилятор?
Я пишу под VC++ 6.0 SP2
MatrixST опубликован 02-02-2002 20:57 MSK     Click Here to See the Profile for MatrixST  Click Here to Email MatrixST     
2Muran ;) Мне ужо стыдно ! Елементарная задача, но не получается ! Может гдето я и сплужил, с кем не бывает :)

Если могешь вышли исходник проги на
st-matrix@mail.ru
Заранее спасибо

Student опубликован 02-02-2002 23:00 MSK     Click Here to See the Profile for Student  Click Here to Email Student     
По-моему, все очень просто: создаем диалог с родителем==NULL и выносим его за пределы экрана. Вызываем ShowModal(), но в самом диалоге запрещаем выход по ESC и т.д.
ADK опубликован 04-02-2002 06:07 MSK     Click Here to See the Profile for ADK  Click Here to Email ADK     
CDialog::Create у меня используется почти во всех программах. Тот же механизм немодальных применяю на API. Всё работает!!! Если главное окно, не забудь запустить цикл сообщений в InitInstance - Run()
dvorobjov опубликован 09-02-2002 23:01 MSK     Click Here to See the Profile for dvorobjov  Click Here to Email dvorobjov     
Замени
dlg.Create(IDD_DIALOG1,this);
на
dlg.Create(MAKEINTRESOURCE(IDD_DIALOG1),this);

Moroz опубликован 12-02-2002 19:40 MSK     Click Here to See the Profile for Moroz  Click Here to Email Moroz     
сть два варианта:
1. HideApplication();
2. В OnPaint() нафигачить что-то вроде if(flag) ShowWindow(SW_HIDE) else ShowWindow(SW_SHOW)

Ну или нечто подобное.

ADK опубликован 13-02-2002 06:13 MSK     Click Here to See the Profile for ADK  Click Here to Email ADK     
Решение №2 заведомо кривое
al опубликован 13-02-2002 13:53 MSK     Click Here to See the Profile for al  Click Here to Email al     
Решение элементарно - надо убрать диалог с экрана? Так убери (пеемести) его за пределы экрана - об этом уже говорил Student
Drugan опубликован 13-02-2002 13:57 MSK     Click Here to See the Profile for Drugan  Click Here to Email Drugan     
Когда я писал троян, мне тоже нужно было спрятать диалог (и с экрана и из ситрея и т.д.), так вот, с экрана я его убирал так:

mydlg.ShowWindow(SW_HIDE);

И все работает! Muran прав!

;(onflict

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


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.