Как Вы программно изменяете размер и перемещаете окна с Windows API?

Это выглядит просто как неправильный дизайн. В общем случае команда Linux может быть любым двоичным файлом в вашей переменной PATH, встроенной оболочкой или псевдонимом.

Вы можете проверить, указывает ли первое слово на двоичный файл вашего пути, но это все еще не решает псевдонимы оболочки или встроенные модули (вам по крайней мере нужен список встроенных элементов).

А что если кто-то введет «текстовое сообщение», которое, как правило, начинается с общего слова, которое также является командой Linux (echo, cat, ...)?

Краткий ответ: не сделайте это или пострадайте от последствий.

26
задан Joel Spolsky 4 April 2009 в 07:08
поделиться

5 ответов

Для немерцающего, одновременно располагая два (или больше) окна, Ваш лучший выбор состоит в том, чтобы использовать BeginDeferWindowPos (), DeferWindowPos () и EndDeferWindowPos (). В Вашем случае, так как Вы перемещаетесь два одновременно, это - Ваш лучший выбор.

Тремя более старыми, более простыми функциями, которые Вы могли бы также рассмотреть, является SetWindowPos (), MoveWindow () и AdjustWindowRectEx ().

38
ответ дан Andreas Haferburg 28 November 2019 в 06:39
поделиться

Используйте SetWindowPos () в Windows API.

Учитывая HWND, можно изменить z-порядок, положение (верхний левый угол), размер, а также многочисленные другие флаги (как показ или сокрытие, создание его активное окно или нет, и т.д.).

12
ответ дан Joel Spolsky 28 November 2019 в 06:39
поделиться

Вы ищете один из SetWindowPos, MoveWindow и AdjustWindowRectEx.

Можно ли быть более конкретны относительно сценария так, чтобы мы могли рекомендовать самый соответствующий API?

5
ответ дан JaredPar 28 November 2019 в 06:39
поделиться

SetWindowPos или MoveWindow выполнят это для Вас

4
ответ дан Net Citizen 28 November 2019 в 06:39
поделиться

Ищите MoveWindow в своей документации SDK.

3
ответ дан Toon Krijthe 28 November 2019 в 06:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: