| Консоль vs GUI | |
| От: | Hibiscus | ||
| Дата: | 28.07.10 12:16 |
| Всем привет! Такая проблема. Есть MFC-проект, с окошками и т.д., к нему еще прикручена консоль, примерно так, как написано вот здесь Автор: onegold (единственное отличие: вывожу я в нее обычным wprintf_s, без cout). Проблема в том, что когда мы закрываем консоль, нажав на крестик, все приложение закрывается, при этом GUI никак об этом не узнает (т.е. никаких WM_CLOSE не приходит). Как сделать так, чтобы он об этом узнавал? Задача, чтобы можно было во время работы динамически то открывать, то закрывать консоль.Дата: 25.11.05 Заранее спасибо за советы! |
| Re: Консоль vs GUI | |
| От: | Pavel Dvorkin | ||
| Дата: | 29.07.10 09:26 | ||
| Оценка: | 2 (1) +1 | ||
| Здравствуйте, Hibiscus, Вы писали: H>Всем привет! H>Такая проблема. Есть MFC-проект, с окошками и т.д., к нему еще прикручена консоль, примерно так, как написано вот здесь Автор: onegold (единственное отличие: вывожу я в нее обычным wprintf_s, без cout). Проблема в том, что когда мы закрываем консоль, нажав на крестик, все приложение закрывается, при этом GUI никак об этом не узнает (т.е. никаких WM_CLOSE не приходит). Как сделать так, чтобы он об этом узнавал? Дата: 25.11.05 SetConsoleCtrlHandler With best regards Pavel Dvorkin |
| Re[2]: Консоль vs GUI | |
| От: | Hibiscus | ||
| Дата: | 31.07.10 14:45 |
| Здравствуйте, Pavel Dvorkin, Вы писали: PD>SetConsoleCtrlHandler Да вот не помогает что-то. Причем обработчик срабатывает (ставлю breakpoint), и возвращаю TRUE, прога все равно вылетает. Пока насильно задисейблил кнопку закрытия на консольке, но хотелось конечно не этого. Возможно проблема в системе (Win7 x86). |
| Re[3]: Консоль vs GUI | |
| От: | Dzirt2005 | ||
| Дата: | 31.07.10 17:17 |
| Здравствуйте, Hibiscus, Вы писали: H>Здравствуйте, Pavel Dvorkin, Вы писали: PD>>SetConsoleCtrlHandler H>Да вот не помогает что-то. Причем обработчик срабатывает (ставлю breakpoint), и возвращаю TRUE, прога все равно вылетает. Пока насильно задисейблил кнопку закрытия на консольке, но хотелось конечно не этого. Возможно проблема в системе (Win7 x86). Выделенное — и есть проблема... Можете проверить на WinXP — все будет работать. Способа таки отловить момент закрытия консоли под Win7 при нажатии "на крестик" пока не знаю |
| Re[3]: Консоль vs GUI | |
| От: | Nikolaz | ||
| Дата: | 01.08.10 11:03 |
| Здравствуйте, Hibiscus, Вы писали: Вот кусок кода из одного старого проекта. Как это работает в Win 7 я не знаю, но вплоть до WinXP это вроде работало нормально.
-- www.nikeware.com — "To merge or not to merge?" |
| Re[4]: Консоль vs GUI | |
| От: | Hibiscus | ||
| Дата: | 03.08.10 14:37 |
| Здравствуйте, Nikolaz, Вы писали: N>Здравствуйте, Hibiscus, Вы писали: N>Вот кусок кода из одного старого проекта. Как это работает в Win 7 я не знаю, но вплоть до WinXP это вроде работало нормально. skip Вот ровно так и у меня написано. Но не работает. Пошерстил по инету, похоже действительно проблема в Win7. Проверить прогу под WinXP нет возможности пока. Как проверю, отпишусь. |
| Re[5]: Консоль vs GUI | |
| От: | Nikolaz | ||
| Дата: | 03.08.10 19:24 |
| Здравствуйте, Hibiscus, Вы писали: H>Вот ровно так и у меня написано. Но не работает. Я все-таки что именно "ровно так и у меня"? Код можете показать? В приведенном выше примере помимо просто возврата TRUE, еще производится симуляция нажатия Ctrl+F4 записью в буфер клавиатуры консоли. -- www.nikeware.com — "To merge or not to merge?" |