Запрос «c свернуть окно» чаще всего означает одно из двух: либо пользователю нужно быстро свернуть окно в Windows с клавиатуры, либо разработчику требуется свернуть окно программно на языке C через WinAPI — функцией ShowWindow с параметром SW_MINIMIZE. Ниже разобраны оба сценария: горячие клавиши, работа мышью и готовый код для сворачивания окна из приложения.
Определитесь с задачей до начала действий: если окно «зависло» и не сворачивается обычными способами, это отдельная проблема, и её решение описано в разделе про неисправности. Если же нужно просто убрать окно на панель задач — хватит одной комбинации клавиш.
Свернуть окно горячими клавишами в Windows
Самый быстрый способ свернуть активное окно — комбинация Win + стрелка вниз. Первое нажатие переводит окно из полноэкранного режима в обычное, второе сворачивает его на панель задач. Если окно уже в оконном режиме, достаточно одного нажатия.
Для сворачивания всех окон сразу используется Win + D (показать рабочий стол). Повторное нажатие возвращает окна обратно. Альтернатива — Win + M, которая сворачивает все окна без возможности обратного восстановления одной комбинацией.
- ⌨️ Win + ↓ — свернуть активное окно
- 🖥️ Win + D — свернуть все окна / показать рабочий стол
- 📉 Win + M — свернуть все окна без возврата
- 📋 Alt + Пробел, затем N — открыть системное меню окна и свернуть его
Сворачивание окна мышью и через системное меню
Классический способ — кнопка «Свернуть» (значок горизонтальной линии) в правом верхнем углу заголовка окна. Рядом расположены кнопки разворачивания и закрытия, поэтому при быстрой работе легко промахнуться. Если окно закрывается вместо сворачивания, проверьте, не нажимаете ли вы на крестик.
Ещё один вариант — щелчок правой кнопкой мыши по значку окна на панели задач: в контекстном меню доступен пункт «Свернуть». В Windows 11 этот пункт может отсутствовать в меню для уже активного окна — поведение зависит от версии системы.
⚠️ Внимание: некоторые приложения (мессенджеры, плееры) при сворачивании уходят не на панель задач, а в системный трей возле часов. Если окно «пропало», проверьте скрытые значки в трее — программа может продолжать работать в фоне.
Как свернуть окно программно на C (WinAPI)
Для сворачивания окна из программы на языке C используется функция ShowWindow из WinAPI с параметром SW_MINIMIZE. Функции передаётся дескриптор окна (HWND), которое нужно свернуть. Если сворачивается собственное окно приложения, дескриптор обычно доступен в оконной процедуре или сохраняется при создании окна.
Минимальный пример для сворачивания собственного окна:
#include <windows.h>
// hWnd — дескриптор окна, которое нужно свернуть
ShowWindow(hWnd, SW_MINIMIZE);
Для сворачивания чужого окна сначала нужно получить его дескриптор — например, функцией FindWindow по имени класса или заголовку:
HWND hWnd = FindWindow(NULL, L"Калькулятор");
if (hWnd != NULL) {
ShowWindow(hWnd, SW_MINIMIZE);
}
Учтите, что заголовок окна зависит от языка системы и версии приложения, поэтому поиск по заголовку ненадёжен. Для устойчивого поиска лучше использовать имя класса окна, которое можно узнать через инструменты вроде Spy++ из состава Visual Studio.
☑️ Свернуть окно через WinAPI — порядок действий
Другие параметры ShowWindow и связанные функции
Функция ShowWindow принимает разные константы, определяющие состояние окна. Знание основных значений помогает не только сворачивать, но и восстанавливать окна.
| Константа | Действие |
|---|---|
SW_MINIMIZE | Сворачивает окно на панель задач |
SW_RESTORE | Восстанавливает окно из свёрнутого или развёрнутого состояния |
SW_MAXIMIZE | Разворачивает окно на весь экран |
SW_HIDE | Скрывает окно полностью (без значка на панели задач) |
SW_SHOW | Отображает скрытое окно |
Отдельно стоит функция CloseWindow — несмотря на название, она не закрывает приложение, а именно сворачивает окно. Это историческое название, оставшееся со старых версий Windows. Для полного закрытия используется DestroyWindow или сообщение WM_CLOSE.
Сворачивание в системный трей
Обычный SW_MINIMIZE убирает окно на панель задач. Чтобы приложение сворачивалось в область уведомлений (трей), нужно скрыть окно через ShowWindow(hWnd, SW_HIDE) и добавить значок в трей функцией Shell_NotifyIcon с заполненной структурой NOTIFYICONDATA. При клике по значку окно восстанавливается через ShowWindow(hWnd, SW_RESTORE).
Что делать, если окно не сворачивается
Если кнопка сворачивания неактивна или окно игнорирует команды, возможная причина — приложение работает в полноэкранном эксклюзивном режиме (характерно для игр). Попробуйте комбинацию Alt + Enter, которая во многих играх переключает оконный и полноэкранный режим, либо Alt + Tab для переключения на другое окно.
Другая типичная ситуация — зависшее окно. Признак: заголовок не реагирует, а в диспетчере задач приложение помечено как «Не отвечает». Откройте диспетчер задач через Ctrl + Shift + Esc, найдите процесс и при необходимости завершите его. Учтите, что несохранённые данные при этом будут потеряны.
⚠️ Внимание: если кнопки управления окном пропали у всех приложений сразу, возможная причина — сбой проводника Windows. Перезапустите процесс explorer.exe через диспетчер задач: вкладка «Процессы» → «Проводник» → «Перезапустить».
Сворачивание окон на macOS и Linux для сравнения
На macOS окно сворачивается комбинацией Cmd + M или жёлтой кнопкой в левом верхнем углу окна. Свёрнутое окно попадает в Dock, а не на аналог панели задач. Вернуть его можно кликом по миниатюре в Dock.
В Linux поведение зависит от окружения рабочего стола (GNOME, KDE Plasma и других). Во многих окружениях работает комбинация Super + H или Alt + F9, но точное сочетание нужно проверять в настройках клавиатуры конкретного окружения — единого стандарта здесь нет.
Частые вопросы
Как свернуть все окна, кроме активного?
Используйте комбинацию Win + Home — она сворачивает все окна, кроме текущего. Повторное нажатие возвращает окна на место.
Почему FindWindow возвращает NULL?
Скорее всего, указан неверный заголовок или класс окна. Заголовок должен совпадать точно, с учётом регистра и языка системы. Проверьте реальные значения через утилиту Spy++ или перечислите все окна функцией EnumWindows.
Чем SW_MINIMIZE отличается от SW_HIDE?
SW_MINIMIZE сворачивает окно, но его значок остаётся на панели задач. SW_HIDE полностью скрывает окно — оно исчезает и с панели задач, хотя процесс продолжает работать.
Как свернуть окно игры, если горячие клавиши не работают?
Попробуйте Alt + Tab для переключения на другое окно или Ctrl + Shift + Esc для вызова диспетчера задач. Также проверьте в настройках игры режим «оконный без рамки» — в нём сворачивание обычно работает корректнее, чем в эксклюзивном полноэкранном.
Можно ли свернуть чужое окно из своей программы?
Технически да — через FindWindow и ShowWindow с SW_MINIMIZE, если у процесса достаточно прав. Однако вмешательство в окна других приложений без согласия пользователя считается плохой практикой и может блокироваться защитным ПО.