Pb avec le plein écran de DirectX que je veux enlever
cs_Diabolus
Messages postés61Date d'inscriptionsamedi 20 décembre 2003StatutMembreDernière intervention28 septembre 2007
-
15 févr. 2004 à 18:52
cs_Diabolus
Messages postés61Date d'inscriptionsamedi 20 décembre 2003StatutMembreDernière intervention28 septembre 2007
-
16 févr. 2004 à 13:30
Bonjour à tous !
Je souhaiterai créer une fenêtre en mode normal et tout ce que j'arrive à faire c'est du plein écran. J'aimerai enlever le plein écran.
J'aimerai également afficher la souris, qu'elle ne soit pas cachée.
Voici une partie de mon code :
DDraw(HINSTANCE hInstance, int nCmdShow){
//fonction initialisant les objets pour DDraw
WNDCLASS wc; //fenêtre Windows
//Création et déclaration de la classe de la fenêtre.
wc.style = CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WindowProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon( hInstance, IDI_APPLICATION );
wc.hCursor = LoadCursor( NULL, IDC_ARROW );
wc.hbrBackground = NULL;
wc.lpszMenuName = NAME;
wc.lpszClassName = NAME;
RegisterClass(&wc);
//Création de l'objet DirectDraw;
DirectDrawCreateEx(NULL,(void**)&lpDD,IID_IDirectDraw7,NULL);
//On demande le mode exclusif (priorité au niveau de Windows)
lpDD->SetCooperativeLevel( hwnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN |DDSCL_ALLOWREBOOT );
//Définition du mode vidéo
lpDD->SetDisplayMode(largeurFenetre, hauteurFenetre, bitsParPixel, 0, 0);
Je pensais que c'était SetCooperativeLevel qui permettait de régler ça mais si je mets DDSCL_NORMAL ça ne me change rien, j'ai encore le plein écran et en plus ça plante. Et si j'enlève l'appel complet ça plante aussi.
Donc je ne sais pas du tout où le plein écran se fait.
glipper
Messages postés246Date d'inscriptiondimanche 2 juin 2002StatutMembreDernière intervention11 septembre 20161 16 févr. 2004 à 00:45
Je ne suis pas sur de comprendre ce que tu veux, la question me parait tres clair, mais si tu connais directX, ce que je vais dire, tu le sais surement deja (moi je ne connais pas directX)... je pense donc que je ne t'aiderais pas, mais bon je le dis quand meme des fois que...
Pourquoi as tu ça dans ton code :
le WS_EX_TOPMOST signifie que la fenetre sera toujours au premier plan, et les coordonnées de le fenetre vont de 0, 0 à l'autre bout de l'ecran. Donc c'est du plein ecran.
Il me semble que ceci serait plus adapté par exemple :
Je peux voir une fenêtre s'ouvrir mais elle passe ensuite en plein écran.
Je pense que le plein écran s'enclanche au moment où je dis :
lpDD->SetCooperativeLevel( hwnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN |DDSCL_ALLOWREBOOT );
Mais si je mets autre chose comme
lpDD->SetCooperativeLevel( hwnd, DDSCL_NORMAL );
ou même si je supprime la ligne, le programme plante quand je le lance.
Sinon pour le curseur le problème est résolu.
Mais le plein écran reste toujours un problème.