..::Zm∞na rozliÜenφ obrazovky::..

ObΦas se stane, ₧e navrhneme aplikaci pro urΦitΘ nastavenφ (rozliÜenφ, poΦet barev,...) obrazovky. V tom p°φpad∞ se nßm bude hodit funkce, kterß tyto vlastnosti zobrazenφ nastavφ. K tomu slou₧φ funkce

LONG ChangeDisplaySettings( LPDEVMODE lpDevMode, DWORD dwflags );

S popisem parametr∙ zaΦnu tentokrßt od konce.

dwflags - Udßvß jak²m zp∙sobem bude nastavenφ obrazovky zm∞n∞no. M∙₧e to b²t jedna z nßsledujφcφch hodnot:

0 Nastavenφ pro aktußlnφ obrazovku bude zm∞n∞no dynamicky.
CDS_UPDATEREGISTRY Nastavenφ bude zm∞n∞no dynamicky a bude ulo₧eno do registru. (Pro p°ihlßÜenΘho u₧ivatele.)
CDS_TEST Nezm∞nφ nastavenφ obrazovky, ale otestuje, zda lze tuto zm∞nu provΘst.
CDS_FULLSCREEN Zm∞nφ nastavenφ obrazovky. Toto nastavenφ je doΦasnΘ. Je to vhodnΘ pokud chcete zm∞nit nastavenφ obrazovky jen po dobu b∞hu urΦitΘho programu. K p∙vodnφm hodnotßm se vrßtφte, kdy₧ zavolßte tuto funkci takto:
ChangeDisplaySettings(NULL,0);
Windows NT: Pokud m∞nφte z anebo na jinΘ ploÜe, toto nastavenφ nebude resetovßno. (Pro vφce obrazovek, nebo pracovnφch ploch.)
CDS_GLOBAL Nastavenφ bude ulo₧eno do registr∙ pro vÜechny u₧ivatele. Musφ b²t pou₧ito s flagem CDS_UPDATEREGISTRY.
CDS_SET_PRIMARY Toto za°φzenφ se stane hlavnφm.
CDS_RESET Nastavenφ se zm∞nφ, i kdy₧ je stejnΘ jako aktußlnφ. Tj. resetuje se.
CDS_NORESET Nastavenφ se ulo₧φ do registru, ale provede se a₧ po restartu poΦφtaΦe. Musφ b²t pou₧ito s flagem CDS_UPDATEREGISTRY.

lpDevMode - Ukazatel na strukturu DEVMODE. Tato struktura mß velkΘ mno₧Ütvφ prvk∙, ale pro tuto funkci jsou platnΘ jen tyto:

dmBitsPerPel PoΦet bit∙ na pixel. (barevnß hloubka == poΦet barev)
1 - Φernß a bφlß
4 - 16 barev
8 - 256 barev
16 - 216 barev
24 - 224 barev
32 - 232 barev
dmPelsWidth X ovΘ rozliÜenφ obrazovky (nap°. 640, 800, 1024, ...)
dmPelsHeight Y ovΘ rozliÜenφ obrazovky (nap°. 480, 600, 768, ...)
dmDisplayFlags M≤d zobrazovacφho za°φzenφ. M∙₧e nab²vat nßsledujφcφch hodnot.
0 - ani jedno z nßsledujφcφch
DM_GRAYSCALE - ΦernobφlΘ zobrazenφ
DM_INTERLACED - M≤d je propleten² (interlaced). ?
dmDisplayFrequency Obnovovacφ frekvence v HZ.
dmPosition Windows 98, Windows NT 5.0 a nov∞jÜφ: Pozice za°φzenφ ve vφce monitorovΘ konfiguraci. Struktura POINTL. Udßvß pozici za°φzenφ vzhledem k ploÜe. Hlavnφ zobrazovacφ za°φzenφ mß sou°adnice 0,0.
dmFields Udßvß, kterß z p°edchozφch polo₧ek se pou₧ije. Tak₧e m∙₧ete zm∞nit jen n∞kterΘ parametry. M∙₧e b²t kombinacφ t∞chto hodnot:
DM_BITSPERPEL Pou₧ije se dmBitsPerPel
DM_PELSWIDTH Pou₧ije se dmPelsWidth
DM_PELSHEIGHT Pou₧ije se dmPelsHeight
DM_DISPLAYFLAGS Pou₧ije se dmDisplayFlags
DM_DISPLAYFREQUENCY Pou₧ije se dmDisplayFrequency
DM_POSITION Pou₧ije se dmPosition
dmSize Velikost tΘto struktury v bytech. Musφ b²t v₧dy nastavena. StaΦφ jφ p°i°adit toto: sizeof(DEVMODE);

NßvratovΘ hodnoty:

DISP_CHANGE_SUCCESSFUL Zm∞na byla ·sp∞Ünß.
DISP_CHANGE_RESTART Aby byla zm∞na provedena, musφ se restartovat poΦφtaΦ.
DISP_CHANGE_BADFLAGS Byly nastaveny ÜpatnΘ flagy.
DISP_CHANGE_BADPARAM Byl vlo₧en neplatn² parametr. To m∙₧e zahrnovat neplatn² flag, nebo kombinaci flag∙.
DISP_CHANGE_FAILED GrafickΘmu ovladaΦi se nepoda°ilo nastavit po₧adovan² grafick² m≤d.
DISP_CHANGE_BADMODE Tento grafick² m≤d nenφ podporovßn.
DISP_CHANGE_NOTUPDATED Windows NT: Nepoda°ilo se zapsat nastavenφ do registru.

Po zm∞n∞ se vÜem aplikacφm poÜle zprßva WM_DISPLAYCHANGE.