Нет, это невозможно. Windows определяет ширину свернутого окна, используя текущие системные параметры, и невозможно изменить это динамически для одного приложения без изменения значений во всей системе..
В частности, размер всех свернутых окон по умолчанию - 160x31.В приложении MDI вы действительно можете увидеть этот размер, потому что окно свернуто в его хост MDI, а не в панель задач Windows.Рэймонд Чен (Raymond Chen) (разработчик из команды Windows Shell в Microsoft) недавно опубликовал несколько записей в блоге, в которых объясняется, почему был выбран именно этот размер и что он означает.Первый доступен здесь: Почему минимизированные окна имеют видимый размер 160x31? И вторую дополнительную запись можно прочитать здесь: Нет, действительно, почему это 160x31? Как он объясняет во втором посте:
Ширина миниатюрной строки заголовка определяется элементом iWidth
структуры MINIMIZEDMETRICS
.Вы можете получить и изменить эту структуру с помощью функции SystemParametersInfo
.(Используйте флаги SPI_GETMINIMIZEDMETRICS
и SPI_SETMINIMIZEDMETRICS
соответственно.) Некоторые люди упоминают значение реестра MinWidth
, но эти люди ошибаются.Обратите внимание, например, что для работы с MinWidth
требуется цикл выхода из системы, тогда как использование SPI_SETMINIMIZEDMETRICS
вступает в силу немедленно.Это связано с тем, что SPI_SETMINIMIZEDMETRICS
обновляет внутренние переменные состояния, тогда как взлом реестра вносит изменения в базу данных, на которую никто не обращает внимания после того, как вы вошли в систему.
А как насчет высоты?Это просто высота панели заголовков, которую вы можете настроить на вкладке «Внешний вид» панели управления «Дисплей».(Программно, вы можете использовать эту полезную функцию SystemParametersInfo
, на этот раз используя iCaptionHeight
член структуры NONCLIENTMETRICS
.)
Так как я сомневаюсь, что ваши пользователи действительно хотят, чтобы вы пошутилис их системными параметрами по умолчанию P / Invoking функции SystemParametersInfo
, у вас не останется много вариантов.Моя рекомендация, особенно если они работают с одним окном за раз, а остальные свернуты, - переключиться на альтернативный интерфейс.Цель MDI состояла в том, чтобы позволить пользователям размещать или каскадировать несколько окон, чтобы они могли видеть более одного одновременно.Поскольку это звучит так, как будто это не типичный вариант использования, вам обоим будет лучше, если вы переключите приложение на использование вкладок.Это часто называют интерфейсом документа с вкладками (TDI) , несколько более современной реализацией старого интерфейса с несколькими документами (MDI).Это стало довольно популярным за эти годы;проверить статью в Википедии .