Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
1-1210103637
andreil
2008-05-06 23:53
2009.04.19
Дельфийские аналоги функций _lrotr и _lrotr


2-1235398445
madmech
2009-02-23 17:14
2009.04.19
Как изменить TComboBoxEx


15-1235208148
Индеец
2009-02-21 12:22
2009.04.19
Компоненты для сжатия данных


3-1219735607
TNT
2008-08-26 11:26
2009.04.19
IBQuery и Filter


2-1235746713
Mops
2009-02-27 17:58
2009.04.19
Postdata & BeforeNavigate2 & string





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский