CreateWindowEx

Signaler
Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
-
Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
-
Salut,

J'ai fait une application en plein ecran en utilisant la fonction CreateWindowEx et directX. (pour l'instant j'ai desactivé les textures)

L'appui sur la touche Alt-tab est censé faire passer une autre application au premier plan (et mettre la mienne au second plan).
Or, la, mon application reste sur le bureau, pas moyen de voir ce qu'il y a derriere, pourtant la barre de taches apparait en bas et indique qu'une autre application est effectivement au premier plan.

Comment dire a ma fenetre de se cacher jusqu'a ce qu'on l'appelle a nouveau?

Il faut sans doute completer la fonction WindowProc .. mais comment ?

long FAR PASCAL WindowProc( HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam )
{
switch ( message )
{
case WM_SETCURSOR:
SetCursor( NULL );
return TRUE;

case WM_KEYDOWN:
switch ( wParam )
{
case VK_ESCAPE:
PostMessage( hWnd, WM_CLOSE, 0, 0 );
break;
}
break;

case WM_DESTROY:
control->ReleaseObjects();
PostQuitMessage( 0 );
break;
}

// Redonner à Windows les messages qui ne nous interessent pas
return DefWindowProc( hWnd, message, wParam, lParam );
}

Merci

1 réponse

Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
1
On peut remplacer WS_EX_TOPMOST (dans CreateWindowEx) par WS_EX_APPWINDOW et ca marche, la fenetre passe au second plan, puis revient quand on la rappelle.

Mais en gardant WS_EX_TOPMOST, la fonction SetWindowPos est censée pouvoir modifier la "priorite" de la fenetre.

Facile a dire, mais comment modifier WindowProc pour reperer quand la fenetre doit laisser le premier plan a une autre?

Merci