| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Открыть прогу как дочернее окно |
| Автор: Дрон 26.7.2005, 12:39 |
| Вот такой вопросик появился. Давно я что-то на WinAPI не писал Можно ли открыть произвольную прогу (ну, например, блокнот) не на рабочем столе, а в заданном мной окне? Пока единственное, что мне пришло в голову так это перехватывать сообщения, связанные с размером и позиционированием окна программы и следить, чтобы оно оставалось в пределах моего. Может есть какие-то более естественные способы? ЗЫ: Хотя я в этом очень сомневаюсь |
| Автор: chaos 26.7.2005, 13:10 | ||
| это что из фантастики короче есть такая функция
но не уверен что она тебе поможет тк она вроде как переставляет парентов пределах потока |
| Автор: Дрон 26.7.2005, 13:18 | ||
Согласен. Но было бы забавно SetParent точно не прокатит. Ладненько. Буду извращаться. |
| Автор: chaos 26.7.2005, 13:18 | ||
| хотя проверил, получилось!!!! зацени:
|
| Автор: Дрон 26.7.2005, 13:24 |
| СУПЕР!!!!! Правда есть проблемы с перерисовкой -- но это вполне можно исправить Добавлено @ 13:27 Только, собственно, непонятно почему же оно работает? В MSDN написано, что окна должны быть в пределах одного приложения. Какая у тебя ОСь? У меня Windows XP SP1. Как бы так не вышло, что в след. версиях Виндовоза они эту лавочку прикроют? |
| Автор: chaos 26.7.2005, 13:30 | ||
2000 |
| Автор: Дрон 26.7.2005, 13:43 |
| Проверил: в Win98 SE работает. В остальных старых осях, думаю тоже. Интересно было бы глянуть в WinXP SP2 -- там они с безопсаностью много чего понаворотили. |
| Автор: chaos 26.7.2005, 13:52 | ||
| в WM_PAINT можно засунуть перерисовку и будет лутше типо
|
| Автор: Дрон 26.7.2005, 13:59 |
| По хорошему, нужно поколдовать со стилями родительского окна, да посмотреть какие сообщения когда отправлять дочернему. В общем, всё круто. Спасибо. |
| Автор: Nastya 27.7.2005, 16:58 |
| А еще ему можно подменить оконную процедуру через SetWindowLong |
| Автор: Fixin 28.7.2005, 22:04 |
| Да это так можно много чего наворотить с чужими прогами... Может это вы новую дыру в безопасности виндовсов нашли? Добавлено @ 22:05 Хотя "файндвиндоу" - все законно |
| Автор: ManiaK 2.8.2005, 10:08 |
| Дрон Лень собирать проект, не подкинешь скрин как это всё выглядит? |
| Автор: Дрон 2.8.2005, 11:53 |
| Вот так. Только там Paint запущен. На скриншоте это не очень впечатляюще, зато когда в работе забавно. |
| Автор: Дрон 2.8.2005, 11:54 |
| А вот свёрнутое окно |
| Автор: ManiaK 2.8.2005, 15:09 |
| Дрон СИЛЁН!!! |