Прежде всего, я знаю, что в SO есть вопрос с аналогичной формулировкой, но на него не ответили должным образом, и большая часть обсуждения вокруг него сводилась к тому, что «вы не должны этого делать».
Итак, давайте начнем с основ. Зачем это нужно.
Я работаю в компании, которая раздала нашим работникам несколько десятков планшетных нетбуков. Как вы знаете, у нетбуков сравнительно низкое разрешение, и площадь экрана очень и очень важна.
Когда мы поворачиваем нетбуки в режим планшета, мы используем их для письма, а портретный режим для этого гораздо удобнее. Дело в том, что при повороте экрана панель задач остается на том же относительном краю, что и в альбомной ориентации. Если он был внизу, он остается внизу на портретной ориентации. Но поскольку мы уже используем его на левом краю в альбомной ориентации, в итоге панель задач занимает очень заметный процент доступного экрана.
У меня уже есть структура для прослушивания события изменения разрешения, и она работает правильно, но все примеры, которые я видел относительно передачи сообщений в окно панели задач, в конечном итоге не могут ее переместить. Как будто его насильно игнорируют.
Есть ли способ добиться этого? В настоящее время я использую С#, но это не является определенным требованием, я могу легко добиться преобразования из С++ или vb, и p/invokes не страшны.
Операционная система - виндовс 7.
[Редактировать: я уже пробовал SHAppBarMessage с SETPOS, он не работает в Windows 7. Я пробовал PIN-коды MoveWindow и SetWindowPos, также не работают в Windows 7 на панели задач. В других окнах работает нормально. И я уверен, что у меня правильный дескриптор, потому что, если я использую ShowWindow pinvoke, чтобы скрыть его, он действительно скроется, хотя я не могу освободить неиспользуемое пространство для чего-либо еще. Эти методы работали на XP, поэтому это так расстраивает.]
Большое спасибо за ваше время, Жоао Коррейя