У меня есть рабочий стол, и я обнаружил, что при добавлении его на панель задач он запрашивает как 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! !