Прежде чем использовать SetWindowLong
, позвоните ShowWindow(hWnd, SW_HIDE)
, затем наберите SetWindowLong
, затем снова наберите ShowWindow
, как ShowWindow(hWnd, SW_SHOW)
. Итак, ваш код будет выглядеть так:
long style= GetWindowLong(hWnd, GWL_STYLE);
style &= ~(WS_VISIBLE); // this works - window become invisible
style |= WS_EX_TOOLWINDOW; // flags don't work - windows remains in taskbar
style &= ~(WS_EX_APPWINDOW);
ShowWindow(hWnd, SW_HIDE); // hide the window
SetWindowLong(hWnd, GWL_STYLE, style); // set the style
ShowWindow(hWnd, SW_SHOW); // show the window for the new style to come into effect
ShowWindow(hWnd, SW_HIDE); // hide the window so we can't see it
Вот соответствующая цитата на веб-сайте Microsoft :
Чтобы кнопка окна не помещалась на панель задач, создайте
неизвестное окно с расширенным стилем WS_EX_TOOLWINDOW. Как
Кроме того, вы можете создать скрытое окно и сделать это скрытым
окно владелец вашего видимого окна.
Оболочка удалит кнопку окна с панели задач, только если
Стиль окна поддерживает видимые кнопки панели задач. Если хотите
динамически изменить стиль окна на тот, который не поддерживает
видимые кнопки панели задач, вы должны сначала скрыть окно (вызывая
ShowWindow с SW_HIDE), измените стиль окна, а затем отобразите
окно.