Главная страница
    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
2-1236008804
Alexey
2009-03-02 18:46
2009.04.19
Изменение Canvas в TImage с загруженным JPEG


3-1219225831
AlexeyK
2008-08-20 13:50
2009.04.19
При сохранении созданой записи она исчезает


15-1235221405
Статистика
2009-02-21 16:03
2009.04.19
График популярности браузеров


2-1235981744
Dm
2009-03-02 11:15
2009.04.19
TaskBar закрывает мое окно)))


2-1236229299
Abcdef123
2009-03-05 08:01
2009.04.19
На что заменить TStringGrid?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский