 Как закрыть все дочерние окна?
    Как закрыть все дочерние окна?
    
  |  | Наши проекты: Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту | |
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS | 
| [216.73.216.107] | 
|   | 
 | 
 Правила раздела Visual C++ / MFC / WTL (далее Раздела)
    Правила раздела Visual C++ / MFC / WTL (далее Раздела)
   FAQ Раздела
 FAQ Раздела   Обновления для FAQ Раздела
 Обновления для FAQ Раздела    Поиск по Разделу
 Поиск по Разделу   MSDN Library Online
 MSDN Library Online Как закрыть все дочерние окна?
    Как закрыть все дочерние окна?
    
  |  Сообщ.
           #1
          
          , | |
|  |  Набросал простенький проект, показывающий суть проблемы. Здесь по нажатию на кнопку "Тест" в главном окне запускается таймер на 10сек и открывается диалоговое окно-2, в котором мы жмем на кнопку "Окно-3". В итоге имеем 3 окна. Срабатывает таймер и посылает окну-2 сообщение на закрытие. Окно-2 закрывается, а вот окно-3 - нет! Как исправить? Прикреплённый файл  cc.zip (132,29 Кбайт, скачиваний: 76) | 
| 
         
         
          
           Сообщ.
           #2
          
          , 
          
         
         | |
|  | Цитата Vladimir_ @  Срабатывает таймер и посылает окну-2 сообщение на закрытие. Окно-2 закрывается, а вот окно-3 - нет! Как исправить? Так добавьте в обработчике закрытия у окна 2 проверку на открытое окно 3 и его закрытие. | 
| 
         
         
          
           Сообщ.
           #3
          
          , 
          
         
         | |
|  | Цитата macomics @  Добавляю в OnClose() ::SendMessage(hWnd3, WM_CLOSE, 0, 0); В итоге закрывается Окно-2, а потом Окно-3 и естественно вылетает ошибка А как дождаться закрытия окна-3, чтоб потом закрыть окно-2? | 
| 
         
         
          
           Сообщ.
           #4
          
          , 
          
         
         | |
|  |  Так у вас в таймере стоит PostMessage, а не SendMessage. Одна (SendMessage) дожидается завершения обработки и возвращает результат обработки сообщения, а вторая (PostMessage) просто отправляет сообщение. 	  | 
| 
         
         
          
           Сообщ.
           #5
          
          , 
          
         
         | |
|  |  Пробовал оба варианта - не помогает!   |