Voici un exemple montrant la création d'une fenêtre simple de type "Popup", il est basé sur la seule utilisation de la Flat API Windows bas niveau.
Ce code est identique à celui qui serait utilisé par un programmeur C.
La seule différence, c'est qu'avec WinDev on est obligé d'utiliser le "code du projet" comme point d'entré, puisque le code n'est pas réellement compilé et que l'on ne peut pas faire abstraction du run-time PC-Soft à savoir :
1 - L'EXE qui n'est rien d'autre qu'une version modifiée de WD_Test.exe.
2 - La DLL wd???wm64.dll ou wd???wm32.dll (Machine virtuelle).
3 - La DLL wd???std64.dll ou wd???std32.dll (Fonctions standard).
Comme vous pouvez le constater c'est très différent de ce à quoi vous êtes habitué, néanmoins c'est ce type de code qui est à la base de toutes les fenêtres WinDev que vous utilisez (dans l'API bas niveau le mot "fenêtre" = un champ dans le vocabulaire WinDev).
Ce type de code réellement compilé en code machine produit un EXE de moins de 10 Ko, oui vous avez bien lu, moins de 10000 octets, rien à voir donc avec les monstres actuels, sans parler de la vitesse...
Ce code "squelette" est écrit une fois pour toute, il suffit de le copier coller dans un nouveau projet pour pouvoir commencer à lui ajouter des muscles, de la peau, des cheveux, des habits, etc. pour produire l'application définitive.
L'utilisation des API bas niveau permettent de booster les performances d'un projet WinDev, surtout lorsqu'on utilise des DLLs Win32 externes qui sont du véritable code machine.
La partie la plus intéressante de ce code, est ce qu'on appel le "message cracker" (la fonction callback intitulée "WndProc") et la boucle de message principale qui figure ci-dessous :
qui est le centre névralgique du traitement de tous les messages que Windows envoi à votre application. (le cœur du multitâche).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 // Main message pump. WHILE GetMessage(uMsg, Null, 0, 0) TranslateMessage(uMsg) DispatchMessage(uMsg) END
Une autre chose à mon avis très importante lorsqu'on programmes l'API bas niveau avec WinDev, c'est de toujours afficher le code en anglais pour faciliter le copier coller d'un langage à l'autre. Car n'oubliez pas, l'API bas niveau, est le seul dénominateur commun de tous les langages de programmation Windows.
Le fichier Mini.zip (attaché à ce post), contient le code qui peut être "compilé" soit en mode 32-bit, soit en mode 64.
Partager