Changer la résolution [C++ Builder] - C++ - Programmation
Marsh Posté le 07-04-2002 à 16:29:37
Y a pas un GetLastError()
Pour savoir ou est le problème?
Marsh Posté le 07-04-2002 à 16:30:15
Mieux que ca...
ChangeDisplaySettings
F1
Return Values
Returns one of the following values:
Value Meaning
DISP_CHANGE_SUCCESSFUL The 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_FAILED The display driver failed the specified graphics mode.
DISP_CHANGE_BADMODE The graphics mode is not supported.
DISP_CHANGE_NOTUPDATED Windows NT only: Unable to write settings to the registry.
Marsh Posté le 07-04-2002 à 16:52:29
salut,
n'ai-je point précisé que je me suis servi de l'aide ???
en fait il me fait un access violation, j'aurais du le préciser il est vrai...
à ton avis panzanni ???
@++
Marsh Posté le 07-04-2002 à 17:06:16
juju_le_barbare a écrit a écrit : en fait il me fait un access violation, j'aurais du le préciser il est vrai... |
Oui tu aurais dû le préciser
DEVMODE *chgres; // tu crées un pointeur
chgres->dmSize = sizeof(chgres); // tu accèdes à la valeur pointée par ce pointeur, une valeur au pif vu que tu n'as pas initialisé le pointeur : boum
Marsh Posté le 07-04-2002 à 18:37:59
antp a écrit a écrit : Oui tu aurais dû le préciser DEVMODE *chgres; // tu crées un pointeur chgres->dmSize = sizeof(chgres); // tu accèdes à la valeur pointée par ce pointeur, une valeur au pif vu que tu n'as pas initialisé le pointeur : boum |
salut OKY merci grand chef
Mais alors je dois l'initialiser avec quoi le ptr ???
DEVMODE *chgres = ???;
dans l'aide il me semble pas avoir vu quoique ce soit qui l'indique (aïe je vais me faire taper sur les doigts !!! )
@++
Marsh Posté le 07-04-2002 à 18:44:30
Avec "new":
chgres = new DEVMODE.
Mais comme DEVMODE c'est une structure et pas une classe, je sais plus si ça marche
C'est peut-être plus simple de pas mettre le "*" et d'y accéder alors avec un "."
[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]
Marsh Posté le 07-04-2002 à 18:49:51
antp a écrit a écrit : Avec "new": chgres = new DEVMODE. Mais comme DEVMODE c'est une structure et pas une classe, je sais plus si ça marche C'est peut-être plus simple de pas mettre le "*" et d'y accéder alors avec un "." |
merci, je vais essayer la 1st sol. si ça marche pas la 2nd.
Merci encore
PS : pas vexé pour la photo ? C'était dans un but sympathique ...
Marsh Posté le 07-04-2002 à 18:54:46
Non, mais tâche de ne pas recommencer
[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]
Marsh Posté le 07-04-2002 à 19:23:02
voici le code final qui "marche" :
Code :
|
sous winxp : il dit que la res est changée, mais c'est faux même après reboot, sous 98 il dit "moed graphique non supporté"...
Where's the problem ???
Marsh Posté le 07-04-2002 à 19:35:55
Je sais pas...
Mais tu dois pas oublier de faire un delete de ta variable après, vu que tu l'as créée avec un new (mais c'est pas ça qui fait que ça ne marche pas).
Marsh Posté le 07-04-2002 à 20:04:17
Code :
|
Ca serait pas plustôt:
Code :
|
Parce que autrement tu dit de n'utiliser que le dernier flag spécifier... qui se trouve à être DM_PELSHEIGHT...
[jfdsdjhfuetppo]--Message édité par Ventilo--[/jfdsdjhfuetppo]
Marsh Posté le 07-04-2002 à 20:06:23
Ventilo a écrit a écrit :
|
mais c'est bien sûr !!! que JE SUIS CON !!!
je teste, MERCI !!!
Marsh Posté le 07-04-2002 à 20:07:51
ça marche pas
pô grave merci
Marsh Posté le 07-04-2002 à 20:28:20
Je me suis penché sur ton problème (petit chanceux va ) et je me suis rappeller que j'avais déjà fait un truc comme ca en VB. Voilà donc ce que ma donner le code après avoir modifier ton code:
Code :
|
Fallait juste prendre la valeur actuelle(EnumDispleySettings) et les modifier
[jfdsdjhfuetppo]--Message édité par Ventilo--[/jfdsdjhfuetppo]
Marsh Posté le 07-04-2002 à 20:33:04
ReplyMarsh Posté le 08-04-2002 à 09:59:37
Ventilo a écrit a écrit : Je me suis penché sur ton problème (petit chanceux va ) et je me suis rappeller que j'avais déjà fait un truc comme ca en VB. Voilà donc ce que ma donner le code après avoir modifier ton code: [code] void ShowMessage (char *texte) { MessageBox(0,texte,"Fuck!",MB_OK | MB_ICONEXCLAMATION); } int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) etc... |
Merci beaucoup, j'analyse le tout !!!
@++
Marsh Posté le 07-04-2002 à 14:57:50
Bonjour,
sous windows et C++ Builder, j'aimerais changer la résolution d'écran et la profondeur des couleurs. J'ai trouvé l'API suivante : ChangeDisplaySettings() , et après avoir regardé l'aide voilà le code que j'ai fait, et bien sûr ça marche pas
Merci de vos réponses
---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com