Как установить модальное положение в левом нижнем углу экрана? - PullRequest
0 голосов
/ 20 сентября 2018

Я использую WinApi и C ++ и пытаюсь установить модальную позицию в левом нижнем углу экрана, но не знаю как.Я хочу, чтобы эта программа работала для разных разрешений экрана и учитывала панель задач (модал должен быть прямо над ней).В настоящее время я устанавливаю позицию окна, используя это:

SetWindowPos( GetHwnd(), HWND_TOPMOST, 0,0,0,0, SWP_NOMOVE | SWP_NOSIZE );

1 Ответ

0 голосов
/ 20 сентября 2018

Вы можете использовать MonitorFromWindow , чтобы получить дескриптор монитора, на котором отображается окно.

Затем используйте GetMonitorInfo , чтобы получить MONITORINFO этого монитора.

В MONITORINFO вы найдете RECT rcWork, который описывает рабочую область, т.е. исключая панель задач, где бы она ни была.

Узнайте размер вашегоокно с GetWindowRect и поместите его в нижний левый угол rcWork.

Обратите внимание, что в этом случае вы не должны использовать SWP_NOMOVE , потому что это

Сохраняет текущую позицию (игнорирует параметры X и Y).

...