Как заставить Windows обновить диапазон DeskBand Min / Max? - PullRequest
1 голос
/ 11 марта 2020

У меня есть рабочий стол, и я обнаружил, что при добавлении его на панель задач он запрашивает как DBIM_MINSIZE, так и DBIM_ACTUAL. Он всегда выбирает DBIM_MINSIZE. После того, как вы впервые решите использовать настольную полосу, если вы решите lock / unlock панель задач, сообщения WM_SIZE не отправляются. Однако, если вы измените размер хотя бы одного пикселя и вернете его туда, где он был, переключение состояния отправит ожидаемое сообщение WM_SIZE. Теперь настольная лента игнорирует изменения ширины / высоты WM_WINDOWPOSCHANGING, поэтому она опирается на DBIM_MINSIZE. Проблема в том, что если вы передвинете его до минимального размера, а затем переключите состояние lock / unlock на панели задач, это сделает окно немного шире, что при наличии панели задач с несколькими строками может привести к смещению значков / кнопок. , то есть 3 сверху, 3 снизу, когда разблокированы, затем блокировка, 4 сверху, 2 снизу, потому что дополнительный размер позволяет еще одному соответствовать ширине. Поэтому вы должны сделать DBIM_MINSIZE меньшим, чем он есть на самом деле, что снова было бы хорошо, если бы начальный размер был DBIM_ACTUAL, в противном случае некоторые значки / кнопки обрезаются при первоначальном включении настольного ремешка.

Вопрос 1: Есть ли лучший способ управления размерами настольной ленты, чтобы исходный размер соответствовал фактическому минимуму, при этом позволяя меньшему минимальному размеру, чтобы блокировка / разблокировка давала желаемый результат?

Также , если кнопка / значок добавлена ​​или удалена, настольная лента не запрашивает DIBM_MINSIZE или DBIM_ACTUAL.

Вопрос 2: Есть ли способ заставить настольный браслет запрашивать новый DIBM_MINSIZE (блокировка / разблокировка вызовет его, но как вы делаете это из самого настольного браслета)?

TIA! !

...