mvc open pdf in new tab : How to extract a picture from a pdf SDK software API .net wpf asp.net sharepoint c27-part891

303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 271 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Exercice trop facile pour être vrai : pour le moment, on déplace Zozor quel que soit le bouton de la souris utilisé pour le clic. Essayez
de ne déplacer Zozor que si on fait un clic gauche avec la souris. Si on fait un clic droit, arrêtez le programme. 
(ceux qui se plantent je viens les fouetter personnellement !) 
Gérer le déplacement de la souris
Un déplacement de la souris génère un évènement de type SDL_MOUSEMOTION. 
Notez bien qu'on génère autant d'évènements que de pixels dont on se déplace ! Si on bouge la souris de 100 pixels (ce qui n'est pas
beaucoup), il y aura donc 100 évènements de générés. 
Mais, c'est pas beaucoup tous ces évènements à la fois pour mon ordinateur ? 
Pas du tout, rassurez-vous il en a vu d'autres 
Bon, que peut-on récupérer d'intéressant ici ? 
Les coordonnées de la souris bien sûr ! On les trouve dans event.motion.x et event.motion.y 
Faites attention : ce ne sont pas les mêmes variables que l'on utilise par rapport au clic de souris de toute à l'heure
(avant c'était event.button.x). Les variables utilisées sont différentes en SDL en fonction de l'évènement.
On va placer Zozor aux mêmes coordonnées que la souris là encore. Vous allez voir, c'est rudement efficace et toujours aussi simple ! 
Code : C
while (continuer)
{
SDL_WaitEvent(&event);
switch(event.type)
{
How to extract a picture from a pdf - Select, copy, paste PDF images in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document
extract images from pdf acrobat; extract pictures pdf
How to extract a picture from a pdf - VB.NET PDF Image Extract Library: Select, copy, paste PDF images in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document
how to extract images from pdf file; extract images from pdf files
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 272 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
case SDL_QUIT:
continuer = 0;
break;
case SDL_MOUSEMOTION:
positionZozor.x = event.motion.x/* On change les coordonnées de Zozor */
positionZozor.y = event.motion.y;
break;
}
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255255255));
SDL_BlitSurface(zozor, NULL, ecran, &positionZozor)/* On place zozor à sa nouvelle
position */
SDL_Flip(ecran);
}
Bougez votre Zozor à l'écran. Que voyez-vous ? 
Il suit naturellement la souris où que vous alliez 
C'est beau, c'est rapide, c'est fluide (vive le double buffering 
). 
Quelques autres fonctions avec la souris
Nous allons voir 2 fonctions très simples en rapport avec la souris, puisque nous y sommes 
Ces fonctions vous seront très probablement utiles bientôt. 
Masquer la souris 
On peut masquer le curseur de la souris très facilement. 
Il suffit d'appeler SDL_ShowCursor et de lui envoyer un flag : 
SDL_DISABLE : masque le curseur de la souris
SDL_ENABLE : réaffiche le curseur de la souris
Par exemple : 
Code : C
SDL_ShowCursor(SDL_DISABLE);
Le curseur de la souris restera masqué tant qu'il sera à l'intérieur de la fenêtre. 
Masquez de préférence le curseur avant la boucle principale du programme. Pas la peine en effet de le masquer à chaque tour de
boucle, une seule fois suffit 
Placer la souris à un endroit précis 
On peut placer manuellement la souris aux coordonnées que l'on veut dans la fenêtre. 
On utilise pour cela SDL_WarpMouse qui prend pour paramètres les coordonnées x et y où la souris doit être placée. 
Par exemple, le code suivant place la souris au centre de l'écran : 
Code : C
SDL_WarpMouse(ecran->w / 2, ecran->h / 2);
Lorsque vous faites un WarpMouse, un évènement de type SDL_MOUSEMOTION sera généré. Ben oui, la souris a bougé !
Même si c'est pas l'utilisateur qui l'a fait, il y a quand même eu un déplacement 
Il faut un peu de temps avant de se faire à la gestion des évènements. Passez donc le temps qu'il faudra pour être à l'aise, surtout avec
la boucle de traitement des évènements. 
C# PDF insert image Library: insert images into PDF in C#.net, ASP
How to Insert & Add Image, Picture or Logo on PDF Page Using C#.NET. Import graphic picture, digital photo, signature and logo into PDF document.
how to extract images from pdf; extract color image from pdf in c#
C# Word - Paragraph Processing in C#.NET
C# users can set paragraph properties and create content such as run, footnote, endnote and picture in a paragraph. Create Picture in Paragraph.
extract image from pdf in; extract images from pdf files without using copy and paste
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 273 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Quelques exercices
Avant de vous laisser, voici quelques idées d'exercices que je vous recommande de faire pour vous entraîner : 
Changement de la couleur de fond 
Faites un programme ouvrant une fenêtre initialement noire. 
Si on appuie sur la flèche "haut" du clavier, le fond doit se blanchir progressivement : couleur 1, 1, 1, puis couleur 2, 2, 2, jusqu'à la
couleur 255, 255, 255 (le blanc). 
La flèche "bas" du clavier, elle, doit noircir l'écran. 
Utilisez SDL_EnableKeyRepeat pour qu'on puisse changer la couleur de la fenêtre en laissant la touche enfoncée.
Attention : faites un test pour vérifier qu'on ne dépasse pas 255 et un autre pour vérifier si on ne va pas en-dessous de 0 ! Pour info, la
couleur 300, 300, 300 n'existe pas 
Traînée de Zozor 
Faites un programme dans lequel 3 Zozors suivent la souris. Placez le premier à la position de la souris
(comme on l'a fait dans le cours), puis le second 20 pixels en bas à droite, le troisième encore 20 pixels en bas
à droite. 
Vous n'avez besoin que d'une seule surface Zozor pour faire ça. Vous devrez juste la blitter 3 fois
à des positions différentes sur l'écran, c'est tout. 
Pour retenir 3 positions différentes, je vous recommande de créer un tableau de 3 SDL_Rect que vous
mettrez à jour à des positions différentes à chaque évènement SDL_MOUSEMOTION.
Le tampon Zozor 
Faites en sorte que lorsqu'on clique avec la souris sur l'écran, ça colle un Zozor à l'endroit indiqué. 
Oui je sais, on l'a déjà fait pour étudier l'évènement "clic de la souris", mais cette fois je veux que l'on puisse "coller" à l'écran 10 Zozors
maximum à la fois (alors qu'auparavant on ne pouvait en coller qu'un seul à la fois). 
Cet exercice est en fait assez similaire au précédent : vous n'avez besoin que d'une surface Zozor, mais de plusieurs SDL_Rect (faites un
tableau). 
La difficulté sera de savoir comment initialiser ces positions, car il ne faut pas qu'il y ait de Zozors affichés à l'écran au départ. A vous
de trouver une solution pour 
ne pas blitter de Zozor si, par exemple, les coordonnées sont (-1, -1). 
La touche "Suppr" doit servir à effacer l'écran (il faudra réinitialiser toutes les coordonnées à (-1, -1) par exemple). 
Si vous arrivez à faire tout ça, vous pouvez aller plus loin en faisant un "jeu de tampons" : on sélectionnera un tampon
différent en appuyant sur une touche numérique (0 à 9) qu'on pourra ensuite coller à l'écran en cliquant avec la souris. On peut
faire un mini-Paint pour les enfants, à condition d'avoir créé des tampons intéressants (vous avez déjà un Zozor et un sapin, à
vous d'imaginer d'autres éléments comme un soleil, un nuage 
)
Allez au boulot les programmeurs en herbe 
Que va-t-on faire maintenant ?
Si vous êtes un peu imaginatifs, vous devriez maintenant être capables de réaliser de véritables jeux en SDL ! Vous savez en effet
pratiquement tout ce qu'il faut savoir sur le clavier et la souris et vous pouvez donc faire dès à présent un grand nombre de jeux
intéressants. 
Dans peu de temps nous ferons un TP pour rassembler tout ce qu'on a appris sur la SDL afin de créer un premier jeu (et un jeu sérieux
attention, le temps du "Plus ou moins" est loin maintenant 
Bien entendu, il vous reste encore pas mal de choses à découvrir dans la SDL, comme la gestion du joystick, l'écriture de texte à l'écran,
la gestion du son etc... Tout vient à point à qui sait attendre dit-on 
VB.NET TIFF: How to Draw Picture & Write Text on TIFF Document in
drawing As RaterEdgeDrawing = New RaterEdgeDrawing() drawing.Picture = "RasterEdge" drawing provide powerful & profession imaging controls, PDF document, tiff
how to extract pictures from pdf files; pdf image text extractor
VB.NET Image: Image Cropping SDK to Cut Out Image, Picture and
first! VB.NET Image & Picture Cropping Application. Do you need to save a copy of certain part of an image file in a programming way?
pdf image extractor c#; extract pdf pages to jpg
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 274 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Vu qu'il y a beaucoup de fonctions à retenir, je vous conseille vraiment de ne pas aller trop vite sinon vous ne
retiendrez rien. "Ne mettez pas la charrue avant les boeufs" : commencez par faire des choses simples, puis compliquez-les au
fur et à mesure. Ne commencez pas par quelque chose de compliqué dès le début, sinon c'est le ramassage de dents assuré !
La gestion des évènements (Partie 2/2)
Nous n'avons pas encore vu tous les évènements ! 
Comme il existe de nombreux évènements différents, je ne pouvais pas tout mettre dans un même chapitre. J'ai donc préféré le couper
en 2 
Dans ce chapitre, nous allons étudier les évènements : 
Liés au joystick
Liés à la fenêtre
La gestion du joystick est un peu délicate vous allez voir. Toutefois, comme la SDL nous permet de manier le joystick quel que soit le
système d'exploitation (Windows, Mac, Linux)... je ne pouvais pas passer à côté ! 
Initialiser le joystick
En plus du clavier et de la souris, qui sont des outils de contrôle courants, la SDL gère aussi... le joystick !
Vous pensez peut-être que le joystick est plus difficile à gérer parce qu'il y a des boutons, un manche qu'on
peut plus ou moins incliner etc... Eh bien, la manipulation du joystick nécessite quelques initialisations
supplémentaires c'est vrai, mais à part ça c'est aussi facile à gérer que le clavier et la souris alors ne nous
en privons pas 
Grâce à ce que vous allez apprendre, vous serez capables de créer un jeu qu'on peut manipuler au clavier, 
à la souris ou au joystick (ou avec les 3 à la fois 
Initialiser le joystick
Si vous comptez utiliser un joystick dans votre programme, vous devrez effectuer quelques initialisations
supplémentaires. Le clavier et la souris, eux, n'ont pas besoin d'être initialisés comme vous l'avez vu. 
Initialisation du système de joystick de la SDL 
Pour commencer, vous devez indiquer à SDL_Init que vous comptez utiliser le joystick dans votre programme. 
Jusqu'ici, vous ne devriez avoir envoyé qu'un seul flag à cette fonction : 
Code : C
SDL_Init(SDL_INIT_VIDEO);
Tout ce que vous devez faire, c'est rajouter le flag SDL_INIT_JOYSTICK que vous combinez au précédent à l'aide du symbole "|" : 
Code : C
SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK);
Voilà, la SDL sait maintenant qu'elle va devoir gérer les joysticks 
Compter le nombre de joysticks 
VB.NET Image: Image Resizer Control SDK to Resize Picture & Photo
VB.NET Method to Resize Image & Picture. Here we display the method that We are dedicated to provide powerful & profession imaging controls, PDF document, image
extract pdf images; extract image from pdf using
VB.NET Image: Image Scaling SDK to Scale Picture / Photo
VB.NET DLLs to Scale Image / Picture. There are two dlls that will be involved in the process of VB.NET image scaling, which are RasterEdge.Imaging.Basic.dll
extract image from pdf using; extract pdf pages to jpg
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 275 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Contrairement au clavier et la souris qu'on ne branche pas en double sur un ordinateur, il se peut que vous ayez plusieurs joysticks
branchés (que ce soit sur le port de jeu ou sur un port USB). 
On va compter le nombre de joysticks installés sur votre système. Pour ce faire, il suffit d'appeler SDL_NumJoysticks() qui renvoie le
nombre de joysticks. Cette fonction ne prend aucun paramètre. 
Le problème, ça va être pour afficher la valeur. En SDL, il n'y a pas de fonction pour afficher du texte dans la fenêtre. Heureusement,
nous apprendrons dans quelques chapitres qu'à l'aide d'une librairie supplémentaire (dans le même genre que SDL_Image) il sera possible
d'afficher du texte dans une fenêtre SDL. 
Mais... pour le moment, on n'en est pas là 
On va utiliser la bonne vieille fonction printf : 
Code : C
printf("Il y a %ld joysticks connectés\n", SDL_NumJoysticks());
Mais... s'il n'y a plus de console à l'écran où va s'afficher ce texte ?
Si vous êtes sous Linux, la console est toujours en arrière-plan donc vous devriez voir le texte s'afficher dans la console
Si vous êtes sous Windows, il ne peut pas y avoir de console et de fenêtre en même temps. Windows redirige tout le texte que
vous écrivez à l'aide de printf dans un fichier stdout.txt situé dans le dossier de votre exécutable (tout comme stderr.txt)
Sous Windows vous devrez donc ouvrir le fichier stdout.txt qui sera automatiquement créé par le système d'exploitation
lorsque vous utiliserez printf. Ce fichier reste sur le disque dur même après exécution du programme. Vous pourrez le
supprimer manuellement sans crainte, il sera simplement recréé lors du prochain démarrage du programme.
Voici ce que printf a écrit chez moi : 
Code : Console
Il y a 1 joysticks connectés
Cela signifie (je pense que vous l'aurez compris 
) que j'ai 1 joystick branché sur mon ordinateur. 
Si le joueur a 0 joystick, il ne pourra pas manipuler votre programme au joystick (ça peut sembler logique 
) il faudra donc le
rabattre sur une manipulation plus classique au clavier et à la souris. 
Lister les noms des joysticks 
La SDL nous permet d'avoir le nom des joysticks installés sur l'ordinateur. Cela devrait permettre de laisser au joueur le choix du joystick
qu'il veut utiliser. 
Je ne connais pas beaucoup de gens qui aient plusieurs joysticks branchés sur leur ordinateur, mais la SDL prévoit qu'il
puisse y en avoir plusieurs ce qui n'est pas plus mal 
Les joysticks sont numérotés de 0 à... autant qu'il y a de joysticks 
Si vous n'avez qu'un joystick, ce sera donc le n°0. 
On récupère le nom du joystick n°X en appelant : SDL_JoystickName(X). Cette fonction prend donc un paramètre : le numéro du joystick
dont on veut le nom. 
Puisqu'on y est, on va faire une boucle pour lister tous les joysticks présents sur l'ordinateur : 
Code : C
for (i = 0 ; i < SDL_NumJoysticks() ; i++ ) 
{
C# TIFF: How to Insert & Burn Picture/Image into TIFF Document
Support adding image or picture to an existing or new creating blank TIFF are dedicated to provide powerful & profession imaging controls, PDF document, tiff
some pdf image extractor; extract images from pdf files
VB.NET Image: VB.NET Planet Barcode Generator for Image, Picture &
png, gif, jpeg, bmp and tiff) and a document file (supported files are PDF, Word & Generate Planet Barcode on Picture & Image in VB.NET. In this part, we will
extract photos from pdf; extract images pdf acrobat
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 276 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
printf("Joystick n°%ld : %s\n", i, SDL_JoystickName(i));
}
Voici le résultat que ça donne chez moi : 
Code : Console
Il y a 1 joysticks connectés 
-> Joystick n°0 : Boîtier de commandes Microsoft SideWinder
Comme vous le voyez, je possède un joystick appelé "Boîtier de commandes Microsoft SideWinder". 
Charger le joystick désiré 
Bien, maintenant on va dire à la SDL le numéro du joystick qu'on veut utiliser dans notre programme. 
Dans mon cas ça ne sera pas très compliqué, je vais utiliser mon Joystick n°0 
Si vous ne savez pas quel numéro de joystick choisir, prenez le n°0 (à condition qu'il y ait au moins un joystick sur
l'ordinateur). 
Plus tard, lorsque vous serez plus à l'aise avec la SDL, vous serez capables de demander au joueur le joystick qu'il veut utiliser.
On va avoir besoin de créer un pointeur de type SDL_Joystick pour manipuler le joystick. Vous pouvez donc rajouter la ligne suivante au
début du main : 
Code : C
SDL_Joystick *joystick = NULL;
Ensuite, vous allez devoir appeler 2 fonctions : 
Code : C
SDL_JoystickEventState(SDL_ENABLE);
joystick = SDL_JoystickOpen(0);
La première active la gestion des évènements des joysticks. 
La seconde "ouvre" (= charge) le joystick n°0, c'est-à-dire le premier joystick. Le résultat doit être stocké dans une variable joystick de
type SDL_Joystick. 
A la fin de votre programme (avant SDL_Quit), vous devrez "fermer" le joystick en appelant : 
Code : C
SDL_JoystickClose(joystick);
Les évènements du joystick
Les propriétés du joystick
Nous avons vu comment charger un joystick. 
Maintenant que c'est fait, essayons de récupérer un maximum d'infos sur ce joystick ouvert. 
Il faut savoir qu'un joystick peut avoir 4 propriétés différentes, chacune pouvant générer des évènements : 
Les boutons
Les axes du stick directionnel
Les trackballs, s'il y en a.
Les chapeaux ("hats" en anglais) s'il y en a. On en trouve sur certains joysticks un peu perfectionnés.
VB.NET Image: Create Code 11 Barcode on Picture & Document Using
Write Code 11 barcode image on single-page or multi-page PDF, TIFF or Word document using VB.NET code. Code 11 Barcode Generation on PDF Using VB.NET Code.
extract image from pdf in; pdf image extractor
VB.NET Image: How to Save Image & Print Image Using VB.NET
tutorial page will tell you how to save and print image / picture file using Capable of saving and printing multi-page document files, like PDF and Word, in VB
extract vector image from pdf; extract images pdf
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 277 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Je possède personnellement un joystick assez simple. C'est un Sidewinder de Microsoft, comme je vous l'ai dit précédemment : 
Sur mon joystick, il n'y a que des boutons et un stick directionnel (donc des "axes"). Il n'y a ni trackballs ni chapeaux. Je doute d'ailleurs
fortement qu'il existe un joystick avec tous ces éléments à la fois (ou alors c'est une vraie machine de guerre 
). 
Bref, tout ça pour dire que je ne pourrai vous présenter que les évènements "boutons" et "axes". Heureusement, ce sont les plus
courants et vous pourrez déjà tout faire avec ça. Le jour où vous aurez besoin de gérer des trackballs ou des chapeaux (ce qui n'est pas
courant), vous serez déjà loin et bien meilleur que moi 
Lister le nombre de boutons, d'axes etc... 
Il y a 4 fonctions pour compter le nombre de chacun de ces éléments (boutons, axes, trackballs et chapeaux) présents sur le joystick. 
Vous pouvez tester avec ce code : 
Code : C
printf("----> %d boutons\n", SDL_JoystickNumButtons(joystick));
printf("----> %d axes\n", SDL_JoystickNumAxes(joystick));
printf("----> %d trackballs\n", SDL_JoystickNumBalls(joystick));
printf("----> %d chapeaux\n", SDL_JoystickNumHats(joystick));
Attention, le joystick doit avoir été ouvert au préalable. En effet, comme vous le voyez il faut envoyer à ces fonctions notre pointeur
joystick. 
Le résultat donné pour mon Sidewinder est le suivant : 
Code : Console
----> 10 boutons 
----> 2 axes 
----> 0 trackballs 
----> 0 chapeaux 
Je possède donc 10 boutons et 2 axes : un axe de haut en bas, un autre axe de gauche à droite. 
Je ne possède aucun trackball et aucun chapeau, comme prévu. 
Les évènements du joystick
Comme je vous l'ai dit, un joystick peut générer de nombreux évènements parce qu'il y a plusieurs types de joysticks. Je vais parler des 
évènements les plus courants ici : les boutons et les axes. 
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 278 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Les boutons 
Tout d'abord, commençons par un évènement commun à tous les joysticks : l'appui sur un bouton ! 
Vous avez 2 évènements possibles : 
SDL_JOYBUTTONDOWN : appui sur un bouton
SDL_JOYBUTTONUP : relâchement d'un bouton
Bref, classique 
On récupère le numéro du bouton enfoncé à l'aide de la variable : event.jbutton.button : 
Code : C
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
break;
case SDL_JOYBUTTONDOWN:
if (event.jbutton.button == 0) /* Arrêt du programme si on appuie sur le 1er bouton
*/
continuer = 0;
break;
}
Ici, le programme devrait s'arrêter si on appuie sur le bouton n°0 (le premier bouton 
Le stick directionnel (axe) 
Un déplacement de l'axe du joystick génère un évènement de type SDL_JOYAXISMOTION. 
Les évènements liés aux "axes" peuvent être générés soit par un stick directionnel (comme c'est le cas sur mon Sidewinder), soit par un
manche comme c'est le cas sur les joysticks un peu plus chers que l'on utilise pour les jeux d'avion. 
Quelle est la différence concrètement entre un stick directionnel et un manche ?
On peut contrôler plus finement l'inclinaison d'un manche que celle d'un stick directionnel. Un manche est donc parfait pour un jeu
d'avion. En revanche, le stick directionnel est toujours poussé "à fond", on ne peut pas contrôler son inclinaison. 
Si je vous dis tout ça, c'est parce que la SDL nous renvoie l'inclinaison du manche. On la récupère dans event.jaxis.value. C'est un
nombre négatif si on se déplace vers la gauche ou vers le haut, et un nombre positif si on se déplace vers la droite ou vers le bas. 
En général, on teste l'inclinaison comme ceci : 
Code : C
case SDL_JOYAXISMOTION:
if (event.jaxis.value < -3200 || event.jaxis.value > 3200)
{
/* Le manche (ou le stick) a été déplacé de sa position initiale */
}
break;
Si on rentre dans le if, c'est que le manche a été poussé (mais on ne sait pas encore dans quelle direction). 
En temps normal, le manche est en position centrale et event.jaxis.value vaut 0. 
Sur mon Sidewinder, comme il n'y a qu'un stick directionnel, des valeurs extrêmes sont générées pour value : -32768 et 32767 (selon le
sens dans lequel on se dirige). Si vous avez un manche, vous pouvez utiliser value pour gérer plus finement le déplacement (comme
l'inclinaison d'un vaisseau). 
Bon, maintenant qu'on sait que le manche a été un minimum déplacé, on veut connaître la direction. 
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 279 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Pour ça, on doit regarder la variable event.jaxis.axis. Elle vaut : 
0 si c'est un mouvement dans l'axe gauche-droite.
1 si c'est un mouvement dans l'axe haut-bas.
En combinant intelligemment event.jaxis.axis et event.jaxis.value, on peut donc savoir dans quelle direction on veut se déplacer : 
Code : C
case SDL_JOYAXISMOTION:
if (event.jaxis.axis == 0 && event.jaxis.value < -3200) /* Vers la gauche */
positionZozor.x--;
else if (event.jaxis.axis == 0 && event.jaxis.value > 3200) /* Vers la droite */
positionZozor.x++;
else if (event.jaxis.axis == 1 && event.jaxis.value < -3200) /* Vers le haut */
positionZozor.y--;
else if (event.jaxis.axis == 1 && event.jaxis.value > 3200) /* Vers le bas */
positionZozor.y++;
break;
Et voilà le travail ! 
Les évènements de la fenêtre
Il ne nous reste plus qu'à voir les évènements liés à la fenêtre et nous aurons vu pratiquement tous les évènements de la SDL ! 
Je sais, ça demande du travail, mais c'est vraiment la base de tout programme écrit en SDL, donc autant mettre le paquet 
Quels évènements peuvent être générés par la fenêtre ?
Lorsque la fenêtre est redimensionnée.
Lorsque la fenêtre est réduite en barre des tâches ou restaurée.
Lorsque la souris se trouve à l'intérieur de la fenêtre ou lorsqu'elle en sort.
Lorsque la fenêtre est active (au premier plan) ou lorsqu'elle n'est plus active.
Y'a de quoi faire ! 
Commençons par l'évènement généré lors du redimensionnement de la fenêtre. 
Le redimensionnement de la fenêtre
Par défaut, une fenêtre SDL ne peut pas être redimensionnée par l'utilisateur. 
Je vous rappelle que pour changer ça, il faut ajouter le flag SDL_RESIZABLE dans la fonction SDL_SetVideoMode 
Code : C
ecran = SDL_SetVideoMode(64048032, SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_RESIZABLE);
Lorsque l'utilisateur redimensionne la fenêtre, un évènement SDL_VIDEORESIZE est généré. 
Vous pouvez récupérer : 
La nouvelle largeur dans event.resize.w
La nouvelle hauteur dans event.resize.h
303/10/Monday 21h34
Apprenez à programmer en C / C++ ! - Le Site du Zéro
Page 280 sur 377
http://www.siteduzero.com/tuto-29-8-0-apprenez-a-programmer-en-c-c.html
Code : C
case SDL_VIDEORESIZE:
positionZozor.x = event.resize.w / 2 - zozor->w / 2;
positionZozor.y = event.resize.h / 2 - zozor->h / 2;
break;
Avec ce code, Zozor sera toujours centré dans la fenêtre quelle que soit sa taille 
Visibilité de la fenêtre
L'évènement SDL_ACTIVEEVENT est généré lorsque la visibilité de la fenêtre change. 
Cela peut être dû à de nombreuses choses : 
La fenêtre est réduite en barre des tâches ou restaurée.
La souris se trouve à l'intérieur de la fenêtre ou en sort.
La fenêtre est active (au premier plan) ou n'est plus active.
En programmation, on parle de focus. 
Lorsqu'on dit qu'une application a le focus, c'est que le clavier ou la souris de l'utilisateur se trouve dedans. Tous les clics ou
appuis des touches du clavier que vous ferez 
seront envoyés à la fenêtre qui a la focus et pas aux autres. 
Une seule fenêtre peut avoir le focus à la fois (vous ne pouvez pas avoir 2 fenêtres au premier plan en même temps !).
Vu que plusieurs choses peuvent s'être passées, il faut regarder dans des variables pour en savoir plus : 
event.active.gain : indique si l'évènement est un gain (1) ou une perte (0). Par exemple, si la fenêtre est passée en arrière-plan
c'est une perte (0), si elle est remise au premier plan c'est un gain (1).
event.active.state : c'est une combinaison de flags indiquant le type d'évènement qui s'est produit. Voici la liste des flags
possibles : 
SDL_APPMOUSEFOCUS : la souris vient de rentrer ou de sortir de la fenêtre. 
Il faut regarder la valeur de event.active.gain pour savoir si elle est rentrée (gain = 1) ou sortie (gain = 0) de la fenêtre.
SDL_APPINPUTFOCUS : l'application vient de recevoir le focus du clavier ou de le perdre. Cela signifie grosso modo que
votre fenêtre vient d'être mise au premier plan ou en arrière-plan. 
Il faut regarder la valeur de event.active.gain pour savoir si la fenêtre a été mise au premier plan (gain = 1) ou en arrière-
plan (gain = 0).
SDL_APPACTIVE : l'applicaton a été iconifiée, c'est-à-dire réduite dans la barre des tâches (gain = 0), ou restaurée dans
son état normal (gain = 1).
Vous suivez toujours ? 
Il faut donc bien comparer les valeurs des 2 variables pour savoir exactement ce qui s'est produit. 
Tester la valeur d'une combinaison de flags 
Le seul problème, c'est que event.active.state est 
une combinaison de flags. Cela signifie que dans un évènement il peut se produire 2
choses à la fois (par exemple si on réduit la fenêtre dans la barre des tâches, on perd aussi le focus du clavier et de la souris). 
Il va donc falloir faire un test un peu plus compliqué que (par exemple) : if (event.active.state == SDL_APPACTIVE) 
Pourquoi est-ce que c'est plus compliqué ?
Parce que c'est une combinaison de bits. Je ne vais pas vous faire un cours sur les opérations logiques bit à bit ici, ça serait un peu trop
pour le cours et vous n'avez pas besoin de connaître le détail. 
Je vais vous donner le code qu'il faut utiliser pour tester si un flag est présent dans une variable sans rentrer dans les détails 
Pour tester s'il y a eu un changement de focus de la souris, on doit taper le code suivant : 
Code : C
if ((event.active.state & SDL_APPMOUSEFOCUS) == SDL_APPMOUSEFOCUS)
Documents you may be interested
Documents you may be interested