SDL déplacer fenêtre (noframe)
Résolu/Fermé
A voir également:
- SDL déplacer fenêtre (noframe)
- Déplacer une colonne excel - Guide
- Déplacer une fenetre hors écran - Guide
- Raccourci agrandir fenetre - Guide
- Déplacer la barre des taches windows 11 - Guide
- Fenêtre - Guide
1 réponse
Hxyp
Messages postés
401
Date d'inscription
vendredi 28 janvier 2011
Statut
Membre
Dernière intervention
27 avril 2014
54
Modifié par Hxyp le 31/03/2013 à 00:46
Modifié par Hxyp le 31/03/2013 à 00:46
Bonjour,
Voici un exemple sous windows pour le déplacement et le minimize :
touche echap = quit, space = minimize
sources :
handle de la fenêtre : https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getactivewindow?redirectedfrom=MSDN
event sdl : http://www.libsdl.org/intro.fr/usingeventsfr.html
déplacement : https://social.msdn.microsoft.com/Forums/vstudio/en-US/b9985b19-cab5-4fba-9dc5-f323d0d37e2f/move-form-without-titlebar?forum=csharpgeneral
minimize : https://www.codeproject.com/Answers/286300/SendMessage-WM_SYSCOMMAND-fails-to-minimize-a-wind.aspx#answer1
Voici un exemple sous windows pour le déplacement et le minimize :
#include <stdlib.h> #include <stdio.h> #include <SDL/SDL.h> #include <windows.h> int main( int argc, char *argv[] ) { SDL_Surface *screen; HWND hwnd; int quit = 0; if( SDL_Init( SDL_INIT_VIDEO ) == -1 ) { printf( "Can't init SDL: %s\n", SDL_GetError( ) ); return EXIT_FAILURE; } atexit( SDL_Quit ); screen = SDL_SetVideoMode( 200, 200, 16, SDL_HWSURFACE|SDL_NOFRAME ); if( screen == NULL ) { printf( "Can't set video mode: %s\n", SDL_GetError( ) ); return EXIT_FAILURE; } hwnd = GetActiveWindow(); while(!quit){ SDL_Event event; while ( SDL_PollEvent(&event) ) { switch (event.type) { case SDL_MOUSEMOTION: ReleaseCapture(); SendMessage(hwnd,WM_NCLBUTTONDOWN,HTCAPTION,0); break; case SDL_KEYDOWN: if(event.key.keysym.sym == SDLK_ESCAPE) quit=1; if(event.key.keysym.sym == SDLK_SPACE) SendMessage(hwnd, WM_SYSCOMMAND, SC_MINIMIZE, 0); break; case SDL_QUIT: exit(0); } } SDL_Delay(10); } return EXIT_SUCCESS; }
touche echap = quit, space = minimize
sources :
handle de la fenêtre : https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getactivewindow?redirectedfrom=MSDN
event sdl : http://www.libsdl.org/intro.fr/usingeventsfr.html
déplacement : https://social.msdn.microsoft.com/Forums/vstudio/en-US/b9985b19-cab5-4fba-9dc5-f323d0d37e2f/move-form-without-titlebar?forum=csharpgeneral
minimize : https://www.codeproject.com/Answers/286300/SendMessage-WM_SYSCOMMAND-fails-to-minimize-a-wind.aspx#answer1
31 mars 2013 à 20:21