Auflösung ändern !

utzutz

Mitglied
Hi ich ma wieda ...

ich bräuchte mal ein tutorial oder die befehle bzw funktionen mit der ich die auflösung auslesen kann und verändern aknn ...

ich weiß das cih sie per reg auslesen aknn aber wie kann cih die auflösung verändern ?
 
Also auslesen geht 100pro mit diesen Funktionen :

GetSystemMetrics(...),
SystemParametersInfo(...)
GetDeviceCaps(..)

aber ob man die so einfach änderen kann weis ich nicht.

M.f.G. Erik
 
Hi,

hier haste bissi Code:

Auflösung des Benutzers ermitteln:
Code:
// Auflösung ermitteln
int nBreite, nHoehe;
CString strBreite, strHoehe;
nBreite = GetSystemMetrics(SM_CXSCREEN);
nHoehe = GetSystemMetrics(SM_CYSCREEN); 
 
// Ausgelesene Auflösung ausgeben
strBreite.Format("%d", nBreite);
strHoehe.Format("%d", nHoehe);
MessageBox("Die Breite: " + strBreite + "\nDie Höhe: "+ strHoehe);

Auflösung des Benutzers ändern:
Code:
DEVMODE dmAufloesung;
memset(&dmAufloesung, 0 , sizeof(dmAufloesung));
dmAufloesung.dmSize = sizeof(dmAufloesung); 
dmAufloesung.dmPelsWidth = 1024; // Breite der Auflösung 
dmAufloesung.dmPelsHeight = 768; // Höhe der Auflösung
dmAufloesung.dmBitsPerPel = 32; // Farbtiefe 
dmAufloesung.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
if (ChangeDisplaySettings(&dmAufloesung , CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL)
{
MessageBox("FEHLER!", "FEHLER",MB_OK);
return;
}

Musst mal nach DEVMODE in der MSDN suchen, da gibts noch mehr Variablen. Hier noch die Funktion zum zurücksetzen der Auflösung:

Code:
ChangeDisplaySettings(NULL,CDS_RESET);
 
gut war alles super ...

ich hab aber leider momentan keine msdn also könntest du mir erklären was changedisplaysettings zurückgibt ....(DISP_CHANGE_SUCCESSFUL)

gibt es noch einen befehl der die farbtiefe ausliest? nicht nur ändertt?
hab in der msdn nichts weiteres dazu gefunden !
 
Zuletzt bearbeitet:
MSDN gibts such online, aber schau ma hier:

The ChangeDisplaySettings function returns one of the following values:

DISP_CHANGE_SUCCESSFULT
he settings change was successful.

DISP_CHANGE_RESTART
The computer must be restarted in order for the graphics mode to work.

DISP_CHANGE_BADFLAGS
An invalid set of flags was passed in.DISP_CHANGE_BADPARAMAn invalid parameter was passed in. This can include an invalid flag or combination of flags.

DISP_CHANGE_FAILED
The display driver failed the specified graphics mode.DISP_CHANGE_BADMODEThe graphics mode is not supported.DISP_CHANGE_NOTUPDATEDWindows NT: Unable to write settings to the registry.


Wie du die Farbtiefe ausliest weiss ich jetzt auf Anhieb auch nicht
 
Zuletzt bearbeitet:
ja per registry weis ichs ...

hm und warum behält der bei mir die aulösung nicht bei ?
wenn ich das programm schließe ist die auflösung die alte !
wie geht das?
 
Ups, sorry da hab ich was vergessen. Das liegt daran:

Code:
if (ChangeDisplaySettings(&dmAufloesung , CDS_FULLSCREEN | CDS_UPDATEREGISTRY) != DISP_CHANGE_SUCCESSFUL)
{
MessageBox("FEHLER!", "FEHLER",MB_OK);
return;
}

Ich habe CDS_UPDATEREGISTRY vergessen.

Aber poste doch mal bitte wie du die Farbtiefe per Registry ausliest, das würde mich mal interessieren
 

Neue Beiträge

Zurück