Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
Корявая-корявая SetForegroundWindow 27.11.06 09:33 Число просмотров: 5014
Автор: Мак1 Статус: Незарегистрированный пользователь
|
Вероятно, каждый, кто хотел воспользоваться этой функцией получал не совсем тот результат, на который он рассчитывал. Под вин2000/ХР она не перемещает указанное окно на верх, а лишь заставляет его мигать на панели задач. На нескольких форумах уже обсуждалась эта проблема и даже было найдено решение(довольно страшное, но, как пишут, вполне эффективное). По идее идеальным решением является использование функции SystemParametrsInfo вызываемой с параметрами SPI_GETFOREGROUNDLOCKTIMEOUT и SPI_SETFOREGROUNDLOCKTIMEOUT, однако ее применение не решает всех проблем. У других. У меня все нормально, с одним маааленьким упущением.
Правила хорошего тона требуют: наследил - убери. В принципе я согласен. И люди, которые до меня решали проблему с поднятием окна думали также. Применение SystemParametrsInfo выглядело так:
SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT,0,&timeout,0);
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT,0,0,0);
SetForegroundWindow(Window);
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT,0,(void *)timeout,0);
И это работало довольно странным образом. Через раз. Это вселило в меня такое отчаяние, что я решил пойти напролом и закомментил последнюю строку. То есть я сбрасывал таймаут и не восстанавливал его.
Вы не поверите, но все стало работать на ура. Красота. Проблема решена, но мрачные мысли обуревают меня. Возможно ли всетаки восстанавливать значения по умолчанию? Но так чтоб и функция оставалась работоспособной. А с чем связано такое поведение функций? Может на установку системного параметра требуется время? Если у кого есть умные мысли на этот счет не смог бы он ими поделиться?
|
- Корявая-корявая SetForegroundWindow - Мак1 27.11.06 09:33 [5014]
|
|
|