Как убрать иконку окна с task bar'а
От: Долгов Сергей Сергеевич Украина  
Дата: 14.01.02 11:49
Оценка:
Hi!
Как можно убрать иконку окна с task bar'а? Пробовал через интерфейс ITaskbarList, иконка исчезает, но при активации этого окна, иконка снова появляется.
Re: Как убрать иконку окна с task bar'а
От: Курочкин Павел  
Дата: 14.01.02 16:32
Оценка:
Здравствуйте Долгов Сергей Сергеевич, Вы писали:

ДСС>Hi!

ДСС>Как можно убрать иконку окна с task bar'а? Пробовал через интерфейс ITaskbarList, иконка исчезает, но при активации этого окна, иконка снова появляется.

можно изменить стиль окна на WS_TOOLWINDOW...
хых...
Re: Как убрать иконку окна с task bar'а
От: ua1zcl Россия www.alexklm.ru
Дата: 14.01.02 16:32
Оценка: -1
Здравствуйте Долгов Сергей Сергеевич, Вы писали:

ДСС>Hi!

ДСС>Как можно убрать иконку окна с task bar'а? Пробовал через интерфейс ITaskbarList, иконка исчезает, но при активации этого окна, иконка снова появляется.

А почему она не должна появиться, ведь окно видно, потому и на таскбаре есть!
Александр
Re: Как убрать иконку окна с task bar'а
От: Willi  
Дата: 14.01.02 16:50
Оценка:
Здравствуйте Долгов Сергей Сергеевич, Вы писали:

ДСС>Hi!

ДСС>Как можно убрать иконку окна с task bar'а? Пробовал через интерфейс ITaskbarList, иконка исчезает, но при активации этого окна, иконка снова появляется.

На MSDN есть статейка
Create a Dialog while Keeping it off that Pesky Taskbar
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmag00/html/c0500.asp


Вот как она начинается
Q
How do I build a stealth dialog—one that doesn’t appear on the taskbar? I’ve tried manually setting the WS_EX_TOOLWINDOW style as it says in the documentation, but this only shrinks the caption bar; the dialog still shows up on the taskbar.
Martin MacRobert
A
As is so often the case in Windows, the answer involves a scratch-your-head-while-you-rub- your-stomach-and-touch- your-left-pinky-to-your-right-knee kind of solution.

т.e. через сами знаете что
и мне почему-то кажется что номального решения сей проблемы нет

Если тебя не волнует размер заголовка, то при создании можно указать WS_EX_TOOLWINDOW
\/\/i||i
Re[2]: Как убрать иконку окна с task bar'а
От: Tumypka  
Дата: 14.01.02 16:51
Оценка:
Здравствуйте ua1zcl, Вы писали:

U>Здравствуйте Долгов Сергей Сергеевич, Вы писали:


ДСС>>Hi!

ДСС>>Как можно убрать иконку окна с task bar'а? Пробовал через интерфейс ITaskbarList, иконка исчезает, но при активации этого окна, иконка снова появляется.

http://www.rsdn.ru/qna/?ui/wndhide.xml
Как убрать иконку окна с task bar'а
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.01.02 19:46
Оценка: 27 (4)
#Имя: FAQ.winapi.hidefromtaskbar1
Здравствуйте Долгов Сергей Сергеевич.

Приведенный ниже код скрывает/показывает первый попавшийся Notepad (т.е. можно скрывать любое окно... даже не свое).

HWND hWnd = ::FindWindow(_T("Notepad"), NULL);
if(!hWnd)
    return;
// Если окно уже имеет парента...
if(::GetWindowLong(hWnd, GWL_HWNDPARENT))
    // урать его, тем самым показав в таскбаре...
    ::SetWindowLong(hWnd, GWL_HWNDPARENT, NULL);
else
    // иначе ставим его парантом к DesktopWindow, тем самым убирая из таскбара.
    ::SetWindowLong(hWnd, GWL_HWNDPARENT, (LONG)::GetDesktopWindow());
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Как убрать иконку окна с task bar'а
От: Dr_Sh0ck Беларусь  
Дата: 14.01.02 23:10
Оценка:
Здравствуйте Долгов Сергей Сергеевич, Вы писали:

ДСС>Hi!

ДСС>Как можно убрать иконку окна с task bar'а? Пробовал через интерфейс ITaskbarList, иконка исчезает, но при активации этого окна, иконка снова появляется.

И когда же народ научится пользоваться кнопкой "П О И С К" Я скоро письмо напишу администраторам, чтобы они ее сделали побольше и красной
Do not fake yourself ;)
ICQ#: 198114726
Re[2]: Как убрать иконку окна с task bar'а
От: Alexander  
Дата: 16.01.02 13:23
Оценка:
Здравствуйте VladD2, Вы писали:

VD>Здравствуйте Долгов Сергей Сергеевич.


VD>Приведенный ниже код скрывает/показывает первый попавшийся Notepad (т.е. можно скрывать любое окно... даже не свое).


VD> ::SetWindowLong(hWnd, GWL_HWNDPARENT, (LONG)::GetDesktopWindow());


В МСДН написано, что вместо данной функции с параметром GWL_HWNDPARENT лучше (и желательно) использовать SetWindowParent (), но желаемый эффект от вызова последней почему-то не наблюдается, а с SetWindowLong () всё нормально... плз, объясните почему, если можно?

Успехов,
Alexander.
Re[3]: Как убрать иконку окна с task bar'а
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.01.02 03:35
Оценка:
Здравствуйте Alexander, Вы писали:

A>В МСДН написано, что вместо данной функции с параметром GWL_HWNDPARENT лучше (и желательно) использовать SetWindowParent (), но желаемый эффект от вызова последней почему-то не наблюдается, а с SetWindowLong () всё нормально... плз, объясните почему, если можно?


Вроде как SetParent работает только с чильд-окнами...

::SetWindowLong(hWnd, GWL_HWNDPARENT...

Это вообще прямая работа с содержимым окна. Для SetWindowLong флаг GWL_HWNDPARENT вообще не документирован. Однако во всех версиях виндовс это работает (видимо MS сами пользуются этой фичей, ну а другим рекамендуют как безопаснее).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Как убрать иконку окна с task bar'а
От: Alexander Shargin Россия RSDN.ru
Дата: 17.01.02 12:09
Оценка:
Здравствуйте VladD2, Вы писали:

VD>Это вообще прямая работа с содержимым окна. Для SetWindowLong флаг GWL_HWNDPARENT вообще не документирован. Однако во всех версиях виндовс это работает (видимо MS сами пользуются этой фичей, ну а другим рекамендуют как безопаснее).


А где Ты отрыл этот метод?
--
Я думал, ты огромный страшный Бажище,
А ты недоучка, крохотный Бажик...
Re[5]: Как убрать иконку окна с task bar'а
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.01.02 21:08
Оценка:
Здравствуйте Alexander Shargin, Вы писали:

AS>Здравствуйте VladD2, Вы писали:


VD>>Это вообще прямая работа с содержимым окна. Для SetWindowLong флаг GWL_HWNDPARENT вообще не документирован. Однако во всех версиях виндовс это работает (видимо MS сами пользуются этой фичей, ну а другим рекамендуют как безопаснее).


AS>А где Ты отрыл этот метод?


Ты будешь смеяться, но в MSDN/RSDN.

В мсдн-е написано, что выподающие окна комбов являются чилдами у десктопа. На этом один раз кто-то подловил AF (елси не ошибаюсь).

Про то, что SetWindowLong имеет неполное описание я и нашьше знал (все флаги из GetWindowLong можно использовать и в SetWindowLong). Мы для ascDB делали редактор ячейки который позволяет открывать иерархические псевдо-комбо-окна, котоные одержут грид и могут иметь фокус (в отличи от обычных комбов). При реализации данной фичи нам пнишлось повозиться с SetWindowLong. В том числе с динамической заменой парента у поуп-ап окон.

Ну, а далее сопоставил и сделал тест.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Как убрать иконку окна с task bar'а
От: IT Россия linq2db.com
Дата: 18.01.02 01:19
Оценка:
Здравствуйте Alexander Shargin, Вы писали:

VD>>Это вообще прямая работа с содержимым окна. Для SetWindowLong флаг GWL_HWNDPARENT вообще не документирован. Однако во всех версиях виндовс это работает (видимо MS сами пользуются этой фичей, ну а другим рекамендуют как безопаснее).


AS>А где Ты отрыл этот метод?


Саня, добавляй в Q&A
Если нам не помогут, то мы тоже никого не пощадим.
Re[6]: Как убрать иконку окна с task bar'а
От: Alexander Shargin Россия RSDN.ru
Дата: 18.01.02 11:03
Оценка:
Здравствуйте IT, Вы писали:

IT>Саня, добавляй в Q&A


Куда же я денусь.
--
Я думал, ты огромный страшный Бажище,
А ты недоучка, крохотный Бажик...
Re[7]: Как убрать иконку окна с task bar'а
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 24.10.02 05:41
Оценка:
Здравствуйте Alexander Shargin, Вы писали:

IT>>Саня, добавляй в Q&A


AS>Куда же я денусь.


хорош-б туда же добавить рецепт от Павла Дворкина


#include "ShlObj.h "

   CoInitialize(NULL);
   ITaskbarList *pTaskBar = 0;
   HRESULT hr = CoCreateInstance(CLSID_TaskbarList, 0,
                                 CLSCTX_ALL, IID_ITaskbarList, (void**)&pTaskBar);
   if(SUCCEEDED(hr))
   {
        pTaskBar->DeleteTab(hWnd);
        pTaskBar->Release();
   }     
   CoUninitialize();
Re[2]: Как убрать иконку окна с task bar'а
От: Аноним  
Дата: 14.05.03 07:34
Оценка:
D_S>И когда же народ научится пользоваться кнопкой "П О И С К" Я скоро письмо напишу администраторам, чтобы они ее сделали побольше и красной

да ты не горячись... лучше нарой способ перманентно снести из таскбара консольное окно. в XP или Win2k
Re[3]: Как убрать иконку окна с task bar'а
От: kero Россия  
Дата: 10.08.07 01:24
Оценка:
Ветка включена в "WIN API — Q&A", а это как приглашение продолжить.

А>лучше нарой способ перманентно снести из таскбара консольное окно. в XP или Win2k


Ну да, консольное окно — как раз пример, когда код с SetWindowLong/GWL_HWNDPARENT не работает (т.е. консольному окну "owner" просто так не назначить).
Но 1) консольное окно не возражает против parent-а — окна Progman (через SetParent),
и 2) ничто не мешает в ToolbarWindow32 таскбара соответствующую кнопку — спрятать (TBSTATE_HIDDEN).

А об обычной путанице с parent и owner в данной ветке см. здесь
Автор: kero
Дата: 05.08.07
.
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.