Основной кадр в моем приложении является общим: класс CMainFrame: public CFrameWndEx.
В моем коде я ищу положение MainFrame на экране и, если оно отсутствует, (например, когда какой-либо монитор выключен или отключен), я перемещаю окно в допустимую область.
int VIRTSCR_Left = GetSystemMetrics(SM_XVIRTUALSCREEN);
int VIRTSCR_Top = GetSystemMetrics(SM_YVIRTUALSCREEN);
int VIRTSCR_Width = GetSystemMetrics(SM_CXVIRTUALSCREEN);
int VIRTSCR_Height = GetSystemMetrics(SM_CYVIRTUALSCREEN);
int VIRTSCR_Right = VIRTSCR_Left + VIRTSCR_Width;
int VIRTSCR_Bottom = VIRTSCR_Top + VIRTSCR_Height;
Так что в моем случае я получаю (за один экран) 0, 1920, 0, 1200.
Размер CMainFrame и положение, когда оно развернуто:
CRect rc;
pMainFrame->GetWindowRect(rc);
Дайте мне -8, -8, 1928, 1168.
(Внизу находится главная панель задач Windows высотой 40px).
Таким образом, вокруг видимой основной рамки находится следующий невидимый 8-пиксельный отступ.
Где я могу найти это значение 8px?
Это повторно для GetSystemMetrics (...)?
Является ли значение 8px одинаковым для других разрешений экрана (например, 2k, 3k мониторов)?
Спасибо за идеи и помощь:)
Любомир