Форум: "KOL";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизЕще раз про "приклеивание" окна к рабочему столу Найти похожие ветки
← →
Ал (2003-10-21 11:57) [0]Хотел "прилепить" окно к рабочему столу, чтобы оно ничем не сворачивалось (WinKey+D) и убрать кнопку с Toolbar.
Сделал:
1) Applet.Visible := False;
2) SetParent(Form1.Form.Handle, FindWindow("ProgMan", nil));
3) Form1.Form.StayOnTop := True;
Получилось:
Если перед запуском программы сворачивал все окна (кнопкой "Свернуть все окна" или WinKey+D),
то окно не показывается, пока не откроешь какое-нибудь другое окно (например папку).
Потом все работает так как ожидаю.
Если окна не сворачивать - то сразу все работает.
Если не делать SetParent(Form1.Form.Handle, FindWindow("ProgMan", nil)), то окно программы появляется,
но оно не "приклеивается" к рабочему столу.
Думаю, нужно как-то вернуть рабочий стол из свернутого состояния в нормальное. А как - не знаю.
Подскажите, что можно сделать?
← →
Ал (2003-10-21 15:55) [1]Знатоки, подскажите, как сдернуть Explorer из состояния "Свернуть все окна". Пробовал слать разные сообщения окну FindWindow("ProgMan", nil) - ничего не помогает.
Двигал свое "прилипшее" и из-за этого потерявшееся окно функциями MoveWindow, SetWindowPos - окно не показывается, пока вручную мышью не откроешь какое-нибудь другое окно - тогда и мое "прилипшее" становится видно. И видно, что я его двигал!
Словно оно двигалось в невидимой области (хотя координаты давал 0, 0).
← →
Yury Sidorov (2003-10-21 20:46) [2]Похоже когда происходит "Свернуть все окна", то окно, которе представляет собой десктоп перемещается в самый верх. Все окна оказываются внизу, под ним.
← →
Ал (2003-10-21 22:09) [3]Похоже, что так. Но как-то можно вытянуть его назад? В ручном режиме достаточно открыть любое окно в Explorer (либо снова WinKey+D) - и все нормально. Смотрел в WinSight - идут обычные сообщения WM_WINDOWPOSCHANGED, WM_WINDOWPOSCHANGING - просто меняют координаты окон функциями типа SetWindowPos (сбрасывают окна ниже видимой границы, а потом возвращают). Пытался проделывать это с ProgMan - никакой реакции. Но ведь как-то это можно. Не эмулировать же нажатие WinKey+D, да и в Win95 это не сработает.
Знатоки, еще идеи есть? Может интерфейс какой это делает? Долго рылся в msdn - ничего не нашел.
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.032 c