begin process at 2012 05 29 17:45:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

DirectX

 > 

pb avec le plein écran de DirectX que je veux enlever


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pb avec le plein écran de DirectX que je veux enlever

dimanche 15 février 2004 à 18:52:48 | pb avec le plein écran de DirectX que je veux enlever

Diabolus

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

lpDD=NULL;

largeurFenetre=800;
hauteurFenetre=600;
bitsParPixel=16;

// Crée une fenêtre plein-écran.
hwnd = CreateWindowEx(WS_EX_TOPMOST, NAME, TITLE, WS_POPUP, 0, 0, GetSystemMetrics( SM_CXSCREEN ), GetSystemMetrics( SM_CYSCREEN ), NULL, NULL, hInstance, NULL );
ShowWindow( hwnd, nCmdShow );
UpdateWindow( hwnd );
hwndfm=hwnd;


//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.


Merci

lundi 16 février 2004 à 00:45:49 | Re : pb avec le plein écran de DirectX que je veux enlever

glipper

Membre Club
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 :


// Crée une fenêtre plein-écran.
hwnd = CreateWindowEx(WS_EX_TOPMOST, NAME, TITLE, WS_POPUP, 0, 0, GetSystemMetrics( SM_CXSCREEN ), GetSystemMetrics( SM_CYSCREEN ), NULL, NULL, hInstance, NULL );


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 :


hwnd = CreateWindowEx(NULL, NAME, TITLE, WS_POPUP, 0, 0, 300, 300, NULL, NULL, hInstance, NULL );


Puis pour la souris, je ne connais pas DirectX, mais ShowCursor(TRUE) ne ferait pas l'affaire ?

Glipper
lundi 16 février 2004 à 13:30:52 | Re : pb avec le plein écran de DirectX que je veux enlever

Diabolus

Salut,
Merci de m'avoir répondu,

en fait j'ai testé tout pleins de trucs sur ma façon d'ouvrir ma fenêtre. Ma version actuelle est :

hwnd = CreateWindowEx(WS_EX_TOPMOST, NAME, TITLE, WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_VISIBLE,CW_USEDEFAULT, CW_USEDEFAULT,LARGEUR_FENETRE, HAUTEUR_FENETRE, 0,0,hInstance, 0 );


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.



Cette discussion est classée dans : écran, fenêtre, hwnd, wc, hinstance


Répondre à ce message

Sujets en rapport avec ce message

dev sans MFC [ par c2millet ] Voilà j'essaie de faire un prog sans MFC et je voudrais changer la couleur de text d'un bouton ainsi que ça couleur de fond.Si qqun peu m'aider mercim [C++]Problème de pointeur ou de liste chainee [ par Arkko ] Bonjour... J'essaye de convertir une liste chainée du site en une liste chainée demandant comme parametre un new par exemple ajouter(new Test);Cela f Comment créer un Bouton [ par new0staff ] Bonjour!Le programme ci-dessous crée et affiche une fenêtre simple. Ce que je souhaite faire, c'est rajouter un Bouton à cette fenêtre.Ce qui ne joue Pb sur un ptit bout de prog en DirectX.... [ par Haldwin ] Salut a tous....Voila j'ai deux ptits pbs quand je lance cette appli ci-dessous... (VC++)La première est q'une fois sur deux ma variable hWnd apres le ouvrir une 2eme fenetre avec editbox et tout et tout, c'est possible? [ par Arnaud16022 ] Hello tout le monde!je voudrais mettre un bouton dans une fenetre (ca c'est facile), mais seulement quand on clique dessus un autre fenetre s'ouvre, a Colorier un static : HEeeeeeeelp !!! [ par sprintjeffC ] salut @ tousje me mets a la programmation windows en C/C++ (pas VC++ merci ... quitte à faire du microsoft je préfère VB ;-). Je démarrai pas mal et t Affichage avec API Windows [ par PunkDude424 ] Bon j'ai un problème avec l'affichage à l'aide de L'api win32Je suis débutant en la matière et j'ai le problème suivant.J'ai une application client se Problème de linker dans programme de base. [ par vith17 ] Bonjour,J'ai tapé le code suivant sous Dev-C++. Lorsque je lance la compilation, il me revoie l'erreur suivante :    [Linker error] undefined referenc API + logiciel réseau [ par lolorenzeb ] Bonjour à tous,Voila j'ai réalisé deux petites applications simples (client et serveur) en mode console. Je souhaite donc améliorer mon programme avec


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,209 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales