Форум: "Начинающим";
Текущий архив: 2009.04.19;
Скачать: [xml.tar.bz2];
ВнизTaskBar закрывает мое окно))) Найти похожие ветки
← →
Dm (2009-03-02 11:15) [0]Добрый день всем, проблема получилась с таскбаром, в моем приложении есть небольшие окошечки, которые можно таскать куда хочешь. Эти окошечки WS_POPUP or WS_CLIPSIBLINGS or WS_CLIPCHILDREN, к тому же еще топмост, дак вот, когда это окошечко перетаскиваешь на таскбар, а затем щелкаешь мышкой по таскбару, они прячутся под ним, что в принципе логично. Но окошечки узкие, и их потом оттуда уже не вытащищь, они полностью скрываются. Хотел написать хук на таскбар, но в итоге хук получился на все что угодно, только не на таскбар (по другим окнам щелкаю мышью, мои окна появляются (даже из под таскбара), все нормально), но когда щелкаю по таскбару, то такое ощущение, что оно сначала появляется, а потом таскбар опять делается выше, (сопротивляется?))) Подскажите что с этим делать, и если есть какой-либо способ без хука, то он будет предпочтительнее. Спасибо.
← →
markers © (2009-03-02 11:30) [1]Совет: Отслеживать чтоб твоё окно не задвигалось дальше рабочей области.
← →
Dm (2009-03-02 12:38) [2]Вся то прелесть в том, чтобы рабочая область была и на таскбаре тоже :)
← →
KSergey © (2009-03-02 12:47) [3]А промеж задачами как переключаться?
еще интересно как оно поведет себя с нестандартными десктопами: тоже будет конкурировать у кого топ_мост топмопестее?
← →
brother © (2009-03-02 12:48) [4]> тоже будет конкурировать у кого топ_мост топмопестее?
ясно мыслишь- ясно излагаешь)
← →
Dm (2009-03-02 15:56) [5]>А промеж задачами как переключаться?
Мои окошечки более узкие, чем стандарный таскбар, так что переключиться можно даже если мое окно перекрывает задачу на таскбаре, либо ALT+TAB.
Нестандартные десктопы я не рассматриваю, ибо приложение пишу для узкого круга пользователей... нет у них нестандартных десктопов :)
Так возможно ли быть всегда выше таскбара?
← →
Denis__ © (2009-03-02 16:29) [6]
> Вся то прелесть в том, чтобы рабочая область была и на таскбаре
> тоже :)
это еще зачем? Всего экрана не хватает что ли? Таскбар он на то и есть таск бар! Ибо нефиг!
← →
DVM © (2009-03-02 23:09) [7]
> Так возможно ли быть всегда выше таскбара?
Конечно возможно. Таскбар - обычное окно.
← →
Германн © (2009-03-03 00:31) [8]
> DVM © (02.03.09 23:09) [7]
>
>
> > Так возможно ли быть всегда выше таскбара?
>
> Конечно возможно. Таскбар - обычное окно.
>
Да. Но у меня, к примеру, он тоже "... поверх остальных окон".
← →
DVM © (2009-03-03 01:25) [9]
> Германн © (03.03.09 00:31) [8]
Устанавливается ловушка на сообщения окна с классом Shell_TrayWnd, отлавливаем WM_WINDOWPOSCHANGING и немного ему правим структуру в lParam.
← →
Германн © (2009-03-03 01:34) [10]
> DVM © (03.03.09 01:25) [9]
>
>
> > Германн © (03.03.09 00:31) [8]
Это ты автору сабжа объясняй.
Мне оное ни к чему.
← →
DVM © (2009-03-03 01:40) [11]
> Германн © (03.03.09 01:34) [10]
> Мне оное ни к чему.
Да мне оно тоже не нужно, но в [8] ты же ко мне обращался, а не к автору вопроса.
← →
Германн © (2009-03-03 01:50) [12]
> DVM © (03.03.09 01:40) [11]
>
>
> > Германн © (03.03.09 01:34) [10]
>
>
> > Мне оное ни к чему.
>
> Да мне оно тоже не нужно, но в [8] ты же ко мне обращался,
> а не к автору вопроса.
Да. К тебе.я обращался. Но только " с дополнительной" информацией.
← →
Anatoly Podgoretsky © (2009-03-03 08:58) [13]Приложение требует скрытого таскбара, вот пускай пользователь и убирает его, если он согласен с использованием такой "программы".
← →
Dm (2009-03-03 13:15) [14]Во, нашел подобный моей пример формы, QIP Infium, плавающий контакт.
← →
{RASkov} © (2009-03-03 14:05) [15]> [14] Dm (03.03.09 13:15)
хочешь его переплюнуть? Ведь там они прячутся за таксбаром....
:о)
← →
Dm (2009-03-03 15:41) [16]{RASkov}, почему бы и нет? :)
Они прячутся за таскбаром, если при клике по таскбару фокус был не на контакте.
← →
Dm (2009-03-04 15:35) [17]В общем проблема, которую мой мозг не осилил, помогите :)
function sysmsgproc(code:integer; wparam:word; lparam:longint):longint; stdcall;
var i:integer;
begin
result:=callnexthookex(myhook, code, wparam, lparam);
if code = hc_action then
begin
wnd:=tmsg(pointer(lparam)^).hwnd;
if tmsg(pointer (lparam)^).message = WM_NCLBUTTONDOWN then
begin
if wnd=FindWindow("Shell_TrayWnd", nil) then
begin
sendmessage(findwindow("TSettingsForm",nil),wm_close,0,0);// если так пишу, то работает
settingsform.close // а если так, то не работает
end;
end;
end;
end;
Почему в принципе одно и тоже выражение по смыслу так работает, а иначе - нет? :)
← →
antonn © (2009-03-05 01:58) [18]
> Приложение требует скрытого таскбара, вот пускай пользователь
> и убирает его, если он согласен с использованием такой "программы".
>
Приложение не требует :)
Во вторых автор нас не заставляет использовать его софт, и может захотеть сделать что угодно, не стоит его переубеждать правилами хорошего программирования GUI 2001 года :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.04.19;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.044 c