Sdílet prostřednictvím


Více metrik systému monitorování

Funkce GetSystemMetrics vrací hodnoty pro primární monitor s výjimkou SM_CXMAXTRACK a SM_CYMAXTRACK, které odkazují na celou plochu. Následující metriky jsou stejné pro všechny ovladače zařízení: SM_CXCURSOR, SM_CYCURSOR, SM_CXICON, SMCYICON. Následující možnosti zobrazení jsou stejné pro všechny monitory: LOGPIXELSX, LOGPIXELSY, DESTOPHORZRES, DESKTOPVERTRES.

GetSystemMetrics také obsahuje konstanty, které odkazují pouze na systém více monitorování. SM_XVIRTUALSCREEN a SM_YVIRTUALSCREEN identifikují levý horní roh virtuální obrazovky, SM_CXVIRTUALSCREEN a SM_CYVIRTUALSCREEN jsou svislé a vodorovné rozměry virtuální obrazovky, SM_CMONITORS je počet monitorů připojených k ploše a SM_SAMEDISPLAYFORMAT označuje, jestli mají všechny monitory na ploše stejný barevný formát.

Chcete-li získat informace o jednom monitoru zobrazení nebo všech monitorech na ploše, použijte EnumDisplayMonitors. Obdélník okna plochy vrácené GetWindowRect nebo GetClientRect se vždy rovná obdélníku primárního monitoru kvůli kompatibilitě s existujícími aplikacemi. Výsledek

GetWindowRect(GetDesktopWindow(), &rc);

bude:

rc.left = 0; 
rc.top = 0; 
rc.right = GetSystemMetrics (SM_CXSCREEN); 
rc.bottom = GetSystemMetrics (SM_CYSCREEN);

Pokud chcete změnit pracovní oblast monitoru, zavolejte SystemParametersInfo s SPI_SETWORKAREA a pvPara m odkazující na strukturu RECT, která je na požadovaném monitoru. Pokud je pvParamnull, pracovní oblast primárního monitoru je změněna. Použití SPI_GETWORKAREA vždy vrátí pracovní oblast primárního monitoru. Pokud chcete získat pracovní oblast jiného monitoru než primární monitor, zavolejte GetMonitorInfo.