Développement sous Windows en C en utilisant les API
Microsoft
Toutes les fonctions disponibles pour WindowsSouvent associé au système d'exploitation de Microsoft pour les PC compatibles. Initialiement, un simple gestionnaire de fenêtres fonctionnant sous DOS. Windows ou au singulier Window peut aussi représenter une fenêtre (traduction du mot anglais Window !) dans d'autres gestionnaires de fenêtres pour d'autres systèmes d'exploitation. Window peut aussi représenter la touche Windows sur un clavier pour PC compatible (il y a deux touchent "window": Entre Ctrl et Alt à gauche du clavier ou entre Alt Gr Ctrl à droite par exemple). ne seront bien sûr pas détaillées ici. Je vous en donne les principales. A vous de faire une visite sur le site de Microsoft. En recherchant une fonction, Microsoft vous donnera alors toutes les autres fonctions en rapport avec celle-ci. Par exemple, la recherche de la fonction getmessage() donne ceci et vous trouverez à la fin un paragraphe "See also" avec toutes les autres fonctions associées. Voyez aussi dans l'annexe pour les liens sur le site de Microsoft.
Je n'utiliserai ici que le C pur, mais rien n'empêche d'utiliser le C++ si cela s'avère nécessaire, personnellement, je n'y vois aucune objection, au contraire, cela peut même simplifier le développement dans certains cas.
Par contre, il faudra donc bien vérifier que le projet soit bien positionné sur Not using MFC...
Voici les chapitres qui seront étudiés ici:
- Les différentes versions de WindowsSouvent associé au système d'exploitation de Microsoft pour les PC compatibles. Initialiement, un simple gestionnaire de fenêtres fonctionnant sous DOS. Windows ou au singulier Window peut aussi représenter une fenêtre (traduction du mot anglais Window !) dans d'autres gestionnaires de fenêtres pour d'autres systèmes d'exploitation. Window peut aussi représenter la touche Windows sur un clavier pour PC compatible (il y a deux touchent "window": Entre Ctrl et Alt à gauche du clavier ou entre Alt Gr Ctrl à droite par exemple). pour le commun des mortels.
- La fonction WinMain()
- Créer une classe de fenêtre (WNDCLASS & WNDCLASSEX) et l'enregistrer sous WindowsSouvent associé au système d'exploitation de Microsoft pour les PC compatibles. Initialiement, un simple gestionnaire de fenêtres fonctionnant sous DOS. Windows ou au singulier Window peut aussi représenter une fenêtre (traduction du mot anglais Window !) dans d'autres gestionnaires de fenêtres pour d'autres systèmes d'exploitation. Window peut aussi représenter la touche Windows sur un clavier pour PC compatible (il y a deux touchent "window": Entre Ctrl et Alt à gauche du clavier ou entre Alt Gr Ctrl à droite par exemple). (RegisterClass & RegisterClassEx)
- Créer une instance de fenêtre à partir de la classe (CreateWindow & CreateWindowEx)
- Gérer la file d'attente (Structure MSG, GetMessage(), TranslateMessage() et DispatchMessage())
- La procédure de gestion des messages d'une fenêtre (WM_CREATE,
WM_DESTROY et WM_PAINT, PostQuitMessage())
- Le GDI
- Récupération/libération d'un handle sur un contexte de périphérique: GetDC(), ReleaseDC(),
- Le message WM_PAINT et ses fonctions: BeginPaint(), EndPaint() ainsi que la structure rcPaint, GetWindowDC() et récupération ou invalidation des informations sur ce contexte de périphérique hors message WM_PAINT.
- InvalidateRect (), GetClientRect(), GetWindowRect() mais aussi une remarque sur CreateDC () et CreateCompatibleDC().
- Changer de repère, d'unité, les origines du repère, ou encore l'échelle
- Fontes et affichage de caractères:
- Affichage d'un texte et modification de ses attributs (TextOut, DrawText, SetTextAlign(), SetTextColor(), ...)
- Affichage d'un texte dans le style utilisé par une barre de status
- Gestion des fontes
- Taille en hauteur et en largeur d'un caractère ou d'une chaine dans un contexte périphérique: GetTextMetric() et GetTextExtentPoint32()
- Les opérations graphiques:
- Affichage de points, droites, rectangles, ellipses, ...
- Les raster
- Les régions
- Le clipping
- Affichage et traitement d'un bitmap: CreateCompatibleDC()
- Fonction graphique hors GDI !?
- Le scrolling.
- Les barres de défilement - ascenseurs
- Fonctions de bases des ascenseurs
- Exemples de gestion d'ascenseurs dans une application
- Annexes - Structure SCROLLINFO
- Le clavier, la souris et le joystick
- Le clavier:
- Introduction
- Les messages d'états, de caractères
- Un curseur nommé Caret...
- Accélérateur clavier.
- La souris:
- GetSystemMetrics() pour détecter la souris et ses boutons
- Modifier le dessin représentant le curseur de la souris : LoadCursor()
- Les messages de la souris
- conversion des coordonnées via ClientToScreen() et ScreenToClient()
- Capturer la souris ! SetCapture() et ReleaseCapture()
- Le joystick:
- Vérifier la présence d'un driverPilote de périphérique. Il s'agit d'un programme qui va permettre à un système d'exploitation la reconnaissance d'un matériel et son utilisation en tant que périphérique (imprimante, clé USB, ...) et le nombre de joysticks supportés:joyGetNumDevs()
- Lire l'état des joysticks par joyGetPos()
- Caractéristiques d'un joystick:joyGetDevCaps()
- Capturer le joystick pour traiter ses messages:joySetCapture()et joySetThreshold()
- Libérer un joystick: joyReleaseCapture()
- Les messages
- Exemple WindowsSouvent associé au système d'exploitation de Microsoft pour les PC compatibles. Initialiement, un simple gestionnaire de fenêtres fonctionnant sous DOS. Windows ou au singulier Window peut aussi représenter une fenêtre (traduction du mot anglais Window !) dans d'autres gestionnaires de fenêtres pour d'autres systèmes d'exploitation. Window peut aussi représenter la touche Windows sur un clavier pour PC compatible (il y a deux touchent "window": Entre Ctrl et Alt à gauche du clavier ou entre Alt Gr Ctrl à droite par exemple).
- Aller plus loin: joyGetPosEx()
- Calibrage d'un joystick
- Fonctions complémentaires de gestion des fenêtres
- Etat de la fenêtre (icônisée, zoomée, ...)
- Récupérer des informations sur la classe d'une fenêtre
- Repositionner une fenêtre, ou modifier un attribut de celle-ci
- Donner le focus
- Gérer la couleur de fond d'une fenêtre après création celle-ci
- Flasher une fenêtre
- La fenêtre dans le systray
- Création d'une fenêtre dont la taille de la zone client est connue
- Création d'une fenêtre fille
- Vous avez un message...
- Enumérer les fenêtres
- Les dialogues box
- L'écran
- Informer/Avertir l'utilisateur par des messages (Rien à voir
avec les messages que peut recevoir une fenêtre !)
- La fonction MessageBox()
- et la fonction complémentaire MessageBeep().
- Dialogues de sélection de fichiers/répertoires.
- Les fenêtres spécialisées:Les contrôles
- Les boutons
- Les cases à cochées
- La barre de progression
- La barre de statue
- La classe ToolBar
- La classe edit
- Definition/structure et principes
- Définir les éléments d'un menu
- Définir un menu le plus simplement en utilisant un éditeur de ressource.
- En créant un fichier de ressource à la main...
- En utilisant des fonctions C CreateMenu(), AppendMenu()
- Déclaration et affichage du menu dans une fenêtre
- Au niveau de la définition de la classe de fenêtre.
- A la création d'une instance de fenêtre.
- Après la création de l'instance d'une fenêtre.
- Déclaration et affichage du menu dans une fenêtre
- Affichage (ou restauration) d'un menu:DrawMenuBar ().
- Les messages pour la gestion du menu
- Fonctions supplémentaires pour gérer des menus
- Modification du menu système
- Des menus avec des images
- Accélérateurs clavier
- Définir les accélérateurs clavier
- Utilisation des accélérateurs clavier dans notre programme:
LoadAccelerators(), TranslateAccelerator()
- Etude de la phase drop
- Gestion des fichiers/répertoires
- Gestion des fichiers:les bases
- Gestion des répertoires
- Gestion complémentaire des fichiers ou répertoires
- Enumérer les fichiers/répertoires
- Dialogues de sélection de fichiers/répertoires
- Manipulation des noms de fichiers/répertoires
- Allocation de mémoire fixe, déplaçable, initialisée ou non
- Vérouillage/dévérouillage de la mémoire déplaçable afin d'obtenir un pointeur
- Libération de la mémoire
- Fichier mappé (ou équivalant UnixSystème d'exploitation multitâche et multi-utilisateur(1969). UNIX est une marque déposée de l'Open Group. D'autres systèmes "compatibles UNIX" existent: BSD, Linux, Android, OS X pour les plus connus du grand public. de la mémoire partagée entre applications)
- Le Multithreading et tout ce qui en découle...
Communication inter-thread, Protection ou restriction des données/ressources,...
- Introduction
- Les threads
- Communication entre threads
- Les sections critiques et les mutex (Protection des données/ressources et ne permettre de lancer qu'une seule instance de l'application)
- Utilisation des semaphores pour limiter à un nombre restreint l'accès simultané à une ressource.
- Les évènements
- Les timers
- Gestion des timers façon WindowsSouvent associé au système d'exploitation de Microsoft pour les PC compatibles. Initialiement, un simple gestionnaire de fenêtres fonctionnant sous DOS. Windows ou au singulier Window peut aussi représenter une fenêtre (traduction du mot anglais Window !) dans d'autres gestionnaires de fenêtres pour d'autres systèmes d'exploitation. Window peut aussi représenter la touche Windows sur un clavier pour PC compatible (il y a deux touchent "window": Entre Ctrl et Alt à gauche du clavier ou entre Alt Gr Ctrl à droite par exemple). 3.1 càd timer pour un thread
dans un thread.
- TicTac
- Récupérer la date et l'heure système
- Récupération de l'heure système avec time() ou _time64()
- conversion de l'information en JJMMAAHHMMSS
- Chronomètre
- Timer de base
- Timer multimédia
- Timer haute précision
- Introduction
- Quelques différents types de données du presse-papier
- Envoyer du texte dans le presse papier
- Récupérer un texte dans le presse papier
- Envoyer une image dans le presse papier
- Récupérer une image dans le presse papier
- Données multiples
- Restitution différées
- Personnalisation des données
- Clipboard Viewer - Demander à WindowsSouvent associé au système d'exploitation de Microsoft pour les PC compatibles. Initialiement, un simple gestionnaire de fenêtres fonctionnant sous DOS. Windows ou au singulier Window peut aussi représenter une fenêtre (traduction du mot anglais Window !) dans d'autres gestionnaires de fenêtres pour d'autres systèmes d'exploitation. Window peut aussi représenter la touche Windows sur un clavier pour PC compatible (il y a deux touchent "window": Entre Ctrl et Alt à gauche du clavier ou entre Alt Gr Ctrl à droite par exemple). d'informer notre application que des données sont envoyées dans le presse papier
- Le son
- Le format d'un fichier Wav
- Vos premiers sons par MessageBeep() (Rappel)
- Utilisation du MCI pour jouer un fichier Wav
- Créer et utiliser une DLL
- Registry
- Définition
- Histoire
- Consulter la base de registres
- Structure du registre
- Lire la base de registres
- Ecrire dans la base de registres
- Les droits
- Les variables d'environnement
- Introduction
- Première approche - Détaillée et non officielle -
- Création d'un screen-saver à la main
- Exemple
- Seconde approche, l'officielle celle-ci
- La librairie et l'include
- Création d'une ressource: IDS_DESCRIPTION, ID_APP et DLG_SCRNSAVECONFIGURE
- La procédure de messages du screen-saver: ScreenSaverProc()
- La procédure de messages de la dialogue-box de configuration:ScreenSaverConfigureDialog
- La procédure de registration:RegisterDialogClasses
- HOOK !
- Programmation réseaux/les sockets
- Introduction
- Include nécessaire
- Le cas WindowsSouvent associé au système d'exploitation de Microsoft pour les PC compatibles. Initialiement, un simple gestionnaire de fenêtres fonctionnant sous DOS. Windows ou au singulier Window peut aussi représenter une fenêtre (traduction du mot anglais Window !) dans d'autres gestionnaires de fenêtres pour d'autres systèmes d'exploitation. Window peut aussi représenter la touche Windows sur un clavier pour PC compatible (il y a deux touchent "window": Entre Ctrl et Alt à gauche du clavier ou entre Alt Gr Ctrl à droite par exemple).
- Principales fonctions de gestion des sockets
- Des liens intéressants
- Annexes
- Macros
- Structures
- Fonctions particulières
- Liens Microsoft intéressants
- Editeur/assembleur 6502 pour Atari 800XL
- Avec son petit jeu de voitures en exemple
WindowsSouvent associé au système d'exploitation de Microsoft pour les PC compatibles. Initialiement, un simple gestionnaire de fenêtres fonctionnant sous DOS. Windows ou au singulier Window peut aussi représenter une fenêtre (traduction du mot anglais Window !) dans d'autres gestionnaires de fenêtres pour d'autres systèmes d'exploitation. Window peut aussi représenter la touche Windows sur un clavier pour PC compatible (il y a deux touchent "window": Entre Ctrl et Alt à gauche du clavier ou entre Alt Gr Ctrl à droite par exemple). est compatible entre les différentes versions de WindowsSouvent associé au système d'exploitation de Microsoft pour les PC compatibles. Initialiement, un simple gestionnaire de fenêtres fonctionnant sous DOS. Windows ou au singulier Window peut aussi représenter une fenêtre (traduction du mot anglais Window !) dans d'autres gestionnaires de fenêtres pour d'autres systèmes d'exploitation. Window peut aussi représenter la touche Windows sur un clavier pour PC compatible (il y a deux touchent "window": Entre Ctrl et Alt à gauche du clavier ou entre Alt Gr Ctrl à droite par exemple)....Enfin presque !
Si vous aviez développé des applications avec des versions 16 bits de WindowsSouvent associé au système d'exploitation de Microsoft pour les PC compatibles. Initialiement, un simple gestionnaire de fenêtres fonctionnant sous DOS. Windows ou au singulier Window peut aussi représenter une fenêtre (traduction du mot anglais Window !) dans d'autres gestionnaires de fenêtres pour d'autres systèmes d'exploitation. Window peut aussi représenter la touche Windows sur un clavier pour PC compatible (il y a deux touchent "window": Entre Ctrl et Alt à gauche du clavier ou entre Alt Gr Ctrl à droite par exemple)., il y a eu du changement. near, far n'ont plus grandes significations en 32 bits...
Je vous conseil donc de faire un tour chez Microsoft pour la portabilité de votre programme !
Des sites qui parlent du développement sous WindowsSouvent associé au système d'exploitation de Microsoft pour les PC compatibles. Initialiement, un simple gestionnaire de fenêtres fonctionnant sous DOS. Windows ou au singulier Window peut aussi représenter une fenêtre (traduction du mot anglais Window !) dans d'autres gestionnaires de fenêtres pour d'autres systèmes d'exploitation. Window peut aussi représenter la touche Windows sur un clavier pour PC compatible (il y a deux touchent "window": Entre Ctrl et Alt à gauche du clavier ou entre Alt Gr Ctrl à droite par exemple).: Certains chapitres sont quand même un peu succincts...
Developpez.com, page d'accueil: http://c.developpez.com/
Ou directement: http://bob.developpez.com/tutapiwin/
pour les fenêtres, http://chgi.developpez.com/windows/
pour les dialogues.
