Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

Еще раз про "приклеивание" окна к рабочему столу   Найти похожие ветки 

 
Ал   (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 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.074 c
1-1081885296
KyRo
2004-04-13 23:41
2004.05.02
Вопрос по CheckListBox


11-1066608261
mike.dld
2003-10-20 04:04
2004.05.02
Сайты программистов на KOL и MCK


1-1082217633
Piter
2004-04-17 20:00
2004.05.02
TTabControl


3-1080829113
kaif
2004-04-01 18:18
2004.05.02
Уникальность с UPPER


4-1078831672
mixi
2004-03-09 14:27
2004.05.02
Значения переменных