Форум: "Основная";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];
ВнизАктивировать форму Найти похожие ветки
← →
Чапаев © (2006-07-10 13:36) [0]В определённый момент приложение показывает форму. При этом кнопка, соответствующая этой форме появляется на панели задач, мигает. Если нажать клавишу на клавиатуре, сообщение о нажатии передаётся рабочему столу. Если нажать кнопку мыши на форме, панель задач скрывается (ну или не скрывается, если автоскрытие не включено ;-) ). Для активации формы при показе используется такой код:
procedure TdlgGetKey.ActivateForm;
var
R:TRect;
begin
SetWindowPos(Handle,HWND_TOPMOST,(Screen.Width-Width) div 2,(Screen.Height-Height) div 2,0,0,SWP_NOMOVE or SWP_NOSIZE or SWP_SHOWWINDOW);
SetForegroundWindow(Handle);
Windows.SetFocus(Handle);
R.Left:=(Screen.Width-ClientWidth) div 2+5;
R.Right:=(Screen.Width+ClientWidth) div 2-5;
R.Top:=(Screen.Height-Height) div 2+GetSystemMetrics(SM_CYCAPTION)+5;
R.Bottom:=(Screen.Height+Height) div 2-5;
ClipCursor(@R);
end;
Чего не хватает? :-)
← →
capkoh © (2006-07-10 16:29) [1]И в итоге она не активируется? :-)
А нужно вызывать SetForegroundWindow? Без нее не работает?
Если нет, то я бы посоветовал поменять местами первые 2 строки. Сначала SetForegroundWindow, а потом уже SetWindowPos.
← →
Ketmar © (2006-07-10 19:03) [2]ещё можно попробовать привинтить поток ввода. а вообще -- гугль. где-то там я встречал по похожему поводу детальное исследование. %-)
← →
Leonid Troyanovsky © (2006-07-10 19:56) [3]
> Чапаев © (10.07.06 13:36)
> Чего не хватает? :-)
Видимо, не удовлетворены ограничения MS.
RTFM: msdn SetForegroundWindow.
--
Regards, LVT.
← →
второе явление Чапаева народу (2006-07-11 10:35) [4]
> А нужно вызывать SetForegroundWindow? Без нее не работает?
И с ней, и без неё не работает. По крайней мере, не работает так, как мне хотелось бы.
> RTFM: msdn SetForegroundWindow.
Та уже RTFM (перед тем, как вызов указанной функции вставить)... Ну что ж, попытаемся ещё.
← →
второе явление Чапаева народу (2006-07-11 10:37) [5]В принципе, проблема решается вызовом AllocConsole;FreeConsole; после показа формы, но это ж всё равно, что гланды через ухо удалять...
← →
Ketmar © (2006-07-11 17:08) [6]ой. до такого способа я не додумался... %-)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.046 c