Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.04;
Скачать: CL | DM;

Вниз

Убрать кнопку окна с панели задач   Найти похожие ветки 

 
Olgerd ©   (2001-11-24 17:58) [0]

Вот у меня есть хэндл окошка, пытаюсь убрать его с панели задач, но ничего не получается:

h:=FindWindow("TWINDOWSCMD",nil);
AStyle:=GetWindowLong(h, GWL_EXSTYLE);
SetWindowLong(h,GWL_EXSTYLE,AStyle or WS_EX_TOOLWINDOW );


 
Suntechnic ©   (2001-11-24 23:08) [1]

Убери стиль WS_EX_APPWINDOW


 
NetBreaker666 ©   (2001-11-25 01:29) [2]

Нахрена так мудиться ?????
ShowWindows(Handle,0)


 
NetBreaker666 ©   (2001-11-25 01:32) [3]

FUCK !!!!!!!!
не ShowWindows, а ShowWindow !!!!!!


 
Suntechnic ©   (2001-11-25 03:22) [4]

> NetBreaker666 © (25.11.01 01:29)
Ты хоть понял чего спрашивают?


 
NetBreaker666 ©   (2001-11-25 03:35) [5]

Ну уж наверное понял !
Ламо сам ! (ShowWindow(Handle, SW_Hide) - уберает окно из Таск Бара, ни это ли надо ?????????)


 
Olgerd ©   (2001-11-25 06:01) [6]

>NetBreaker666 © (25.11.01 03:35)
ShowWindow(Handle, SW_Hide) - вообще скрывает окно и с панели задач тоже, естественно, но мне надо, чтобы окошко видимым оставалось...

>Suntechnic © (24.11.01 23:08)
AStyle:=GetWindowLong(hwndHandle, GWL_EXSTYLE);
SetWindowLong(hwndHandle,GWL_EXSTYLE,AStyle or WS_EX_APPWINDOW );

Так ничего не происходит.

Жду помощи.


 
Suntechnic ©   (2001-11-25 06:25) [7]

> Olgerd © (25.11.01 06:01)
Я сказал не поставить, а убрать стиль WS_EX_APPWINDOW! Чувствуешь разницу? А поставить как раз и надо WS_EX_TOOLWINDOW. Т.е. начало у тебя было правильно описано, только убери стиль WS_EX_APPWINDOW.


 
Olgerd ©   (2001-11-25 12:57) [8]


AStyle:=GetWindowLong(hwndHandle, GWL_EXSTYLE);
SetWindowLong(hwndHandle,GWL_EXSTYLE,AStyle or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);

Извращался я так над несколькими программами, но может потому что у меня Win2k, само окно становится TOOLWINDOW, убирается только иконка из кнопки в панели задач, а сама кнопка остаётся.


 
NetBreaker666 ©   (2001-11-25 14:28) [9]

Блин !

ShowWindow(Application.Handle,0); //motherfucker

Вот эта херня уберет только с панели задач.


 
Olgerd ©   (2001-11-25 17:34) [10]

Убирать-то убирает, но я беру хэндл другого окна, например, блоконота, через FindWindow и она просто скрывает это окно.

З.Ы.
>NetBreaker666 © (25.11.01 14:28)
>Блин !
>
>ShowWindow(Application.Handle,0); //motherfucker
Как я понял, в качестве комментария автор этого кода написал своё имя.


 
Admin   (2001-11-25 20:44) [11]

Удалено модератором


 
Olgerd ©   (2001-12-02 19:22) [12]

Admin, наверное, правильно написал, жалко я посмотреть не успел ;)
Короче, Мастера! Вот задача:
Открываем блокнот, далее пишем код:

var h:HWND;
begin
h:=FindWindow("Notepad",nil); // получаем handle блокнота (у него класс "Notepad" - я проверял)

Внимание, вопрос! Как убрать кнопку блокнота с панели задач? (само окно, естественно должно остаться ;))


 
Olgerd ©   (2001-12-07 16:49) [13]

Да уж, хороши мастера!


 
VladD2 ©   (2001-12-08 03:16) [14]

Да. Прийдется старому (ну, в меру) сишнику вмешаться. :)

Надо делать так (вы уж извенитя я таки на сях пример приведу... думаю разберетесь... мне так проще):

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());


PS

Очень интересное обсуждение данного вопроса было на www.rsdn.ru.


 
Olgerd ©   (2001-12-08 18:56) [15]

Большое спасибо, действительно работающий код.
Если кому интересно на Delphi это будет так:
var h: HWND;
begin
h:=FindWindow("Notepad", nil);
if GetWindowLong(h, GWL_HWNDPARENT)<>0 then SetWindowLong(h, GWL_HWNDPARENT, 0);
SetWindowLong(h, GWL_HWNDPARENT, GetDesktopWindow);
end;


Я думаю, тему можно считать закрытой.



Страницы: 1 вся ветка

Текущий архив: 2002.02.04;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.011 c
1-8808
DDDeN
2002-01-16 07:29
2002.02.04
Restorator


3-8773
derr
2002-01-05 11:25
2002.02.04
Получаю ошибку при создании таблицы через Tquery. Почему ???


1-8947
EvgenK
2002-01-15 21:51
2002.02.04
Вопросик по OpenGL...


14-8975
Вячеслав_
2001-10-10 05:13
2002.02.04
1C:Предприятие


3-8754
KonuhovSegey
2001-12-30 11:21
2002.02.04
Ограничения на транзакцию