|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Авг 8, 2004 09:47:32 Здравствуйте! Есть простой диалог. Хочется, чтобы диалог не появлялся в центре экрана, а отображался над часами в трее. (Так делает Нортон Антивирус, т.е. чтобы диалог находися над панелью задач в правом углу). Как это реализовать? (Сорсы привествуются. :0) Я думаю, что есть какой-то стандартный стиль. (Или нужно устанавливать координаты размещения - как?) Заранее спасибо! 1990 |
|
|
Дата: Авг 8, 2004 10:05:22 > Так делает Нортон Антивирус Ну и заскринил бы, фиг его знает как он делает если у меня NAV никогда не было ;-) > Или нужно устанавливать координаты размещения - как? Ты не поверишь, ответ на вопрос "как?" уже имеется в статьях Iczelion'а и на форуме. Смотреть в сторону GetWindowRect, GetDesktopWindow, MoveWindow, ... |
|
|
Дата: Авг 8, 2004 10:15:41 Ну что тут сложного-то? Берем ширину рабочего стола. Берем ширину нашего окна. Вычитаем из ширины десктопа ширину окна - координата Х. Берем высоту рабочего стола. Берем высоту нашего окна. Берем толщину таскбара. Из высоты стола вычитаем высоту окна и толщину таскбара - координата Y. Необходимые апышки: GetSystemMetrics() - получение ширины/высоты десктопа и толщины таскбара. GetWindowRect() - получение размеров окна. MoveWindow() - перемещение окна. ЗЫ: это алгоритм для случая, когда таскбар стандартно висит на 6 часах. Для привязки к таскбару - надо думать. Алгоритм будет другой. ЗЗЫ: я не помню как GetWindowRect работает, так что если она не учитывает капшена (если есть), то надо через GetSystemMetrics еще ширину капшена получать и отнимать от Y. Ну да разберешься.. |
|
|
Дата: Авг 8, 2004 12:09:35 1990 Если положение таскбара нестандартное, то можно его найти через FindWindow, а потом GetWindowRect. n0p Там все в порядке. GetWindowRect возвращает non-client размеры, т.е. с кэпшеном и бордюрами. |
|
|
Дата: Авг 9, 2004 16:20:40 Если я не ошибаюсь, то есть разница между размером экрана и размером рабочей области экрана (одна из них уже с учетом таскбара). Какой параметр не помню, но функция, кажется, GetSystemMetrics. |
|
|
Дата: Авг 9, 2004 20:29:37 |
|
|
Дата: Авг 10, 2004 01:11:24 Sk. Inc. Таксбар тут не причем. Есть понятие work area, которая может быть меньше, чем экран_минус_таскбар. SystemParametersInfo + SPI_GETWORKAREA/SPI_SETWORKAREA |
|
|
Дата: Авг 10, 2004 09:55:44 ALL Спасибо! Решил проблему. |
|
|
Дата: Авг 10, 2004 10:02:01 |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.045 |