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:
) 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