FICHIER DESTINE AUX PROGRAMMEURS: LEURS CREATIONS SONT TOUJOURS SUSCEPTIBLES DE TOURNER SOUS WindowPictures.

Il concerne aussi les cadres commerciaux des entreprises créatrices de logiciels.
Voir le 2ème chapitre Profiter des avantages de WindowPictures dans VOS logiciels.

### Sommaire:

I) Règles de programmation à suivre pour obtenir une bonne compatibilité avec WindowPictures.

II) Profiter des avantages de WindowPictures dans VOS logiciels.

I) Règles de programmation à suivre pour obtenir une bonne compatibilité avec WindowPictures.

Selon versions de windows:

N'oubliez pas que WindowPictures ne tournera que sous windows 95 et 98. Ni windows NT,ni OS/2 n'ont encore été testés, et Windows 3.x donne de mauvais résultats ( bien qu'on puisse le faire fonctionner ).

Fenêtres à défilement:

Il est indispensable d'utiliser la mémoire standard de position de fenêtre.

Il suffit d'appeler la fonction SetScrollPos lors de la réception de messages WM_VSCROLL et WM_HSCROLL dans la boucle de messages WndProc de la fenêtre.

Si vous devez faire défiler la zone client de votre fenêtre, il faudrait (mais ce n'est peut-être pas indispensable) utiliser les fonctions standards ScrollDC,ScrollWindow ou ScrollWindowEx.

Si votre fenêtre contient du texte, il faudrait mettre à jour les positions 'SetScrollPos' de la façon suivante:

- verticalement, le défilement d'une ligne de texte doit faire progresser la position Y de 1 (en plus ou en moins), surtout pas du nombre de lignes graphiques !
- horizontalement, le défilement d'un "cran" doit faire progresser la position X du points graphiques correspondant.

Numéro de version:

L'utilisateur ne peut personnaliser l'affichage d'un logiciel que si vous avez utilisé le marquage de numéro de version de votre logiciel (fichier ressource .RC).

Noms des classes de fenêtres:

Si possible, ne pas multiplier les noms de classes "RegisterClass( WNDCLASS.lpszClassName )" ,
mais plutôt utiliser un nom pour chaque type de fenêtre: avec ou sans défilements, avec ou sans icônes, fonds de même couleur, avec ou sans menus, etc...

Cela n'empêche donc pas d'utiliser un nom de Class pour plusieurs fenêtres ouvertes.

Tout cela n'a bien sûr aucun rapport avec le nom visible de la fenêtre ( CreateWindow (.lpszWindowName ) ). Celui-ci n'a aucune incidence sur le fonctionnement de WindowPictures.

Eléments séléctionnés:

Si votre logiciel opère des séléctions, il ne vaut mieux pas utiliser la méthode d'affichage par inversion des couleurs.

Car si la carte video est réglée en 256 couleurs, l'inversion d'une texture donnera une 'bouillie" illisible. Il est donc conseillé d'utiliser les couleurs standards pour les sélections. On les obtient grâce aux fonctions GetSysColor(COLOR_HIGHLIGHT) et GetSysColor(COLOR_HIGHLIGHTTEXT) .

Palettes de couleurs:

Quand la carte vidéo est réglée en 256 couleurs, vous devriez respecter quelques principes:

- ne pas créer de palette de plus de 256 couleurs,
- ne pas 'animer' la palette, la palette physique ne sera pas modifiée la plupart du temps.

WindowPictures gère normalement une seule palette pour toutes les applications. Ainsi vos palettes sont modifiées et ne correspondent jamais à la palette système de la carte vidéo. Cela provoque une perte des couleurs lorsque votre application tente d'utiliser une palette spécifique à un dessin (ex: un dégradé de 256 jaunes). Si cela est visuellement trop génant, vous pouvez limiter le fonctionnement de WindowPictures aux autres applications (voir plus loin). Néanmoins, si l'aspect de votre application n'est pas trop modifié par WindowPictures, il vaudrait peut-être mieux ne pas changer cette option, car elle provoque des ralentissement lors de passages à d'autres applications.

Pour désactiver WindowPictures durant le fonctionnement de votre application, il faut, lors de votre SETUP, ajouter dans le repertoire WindPict ( vous pouvez trouver son emplacement dans WIN.INI ) un fichier de style INI contenant par ex:

[Application]
MainExe=monapp.exe ; nom court 16 bits= 8.3 caractères, sans le chemin.
Description=application trucmuche ; en anglais de préférence.
MinimumVersion=7.0
MaximumVersion=7.0 ; espace des versions où s'applique cette option.
[Compatibility Options]
DisableWP=1 ; 1= désactive pour cette application, 0= laisse normal.

puis appler windpict.exe avec le paramètre ' -update_ini '.

Cette possibilité ne sera active que dans une prochaine version de WindowPictures

Changement de résolution ou de nombre de couleur de la carte vidéo sans redemmarage

Certains logiciels changent souvent la configuration de la carte vidéo en plein travail, notamment beaucoup de jeux.

Déjà en temps normal, cela ralentit considérablement la machine et fait 'tressauter' le moniteur, mais avec WindowPictures l'attente devient intolérable. C'est dû au fait que WindowPictures recharge toutes ses trames et images de fonds à chaque fois que l'on change de nombre de couleurs (le changement de résolution seul ne provoque pas de rechargement). En fait, il n'y a rechargement que lors d'un changement entre 256 couleurs et un autre format ( 15,16,24 ou 32 bits par ex). Donc pour toutes ces raisons, nous vous conseillons de ne changer de mode vidéo qu'une fois au démarrage de votre logiciel, un point c'est tout.

Pour forcer WindowPictures a prendre en compte des modifications que vous auriez faites directement dans windpict.ini, ou *.sub .

Voir un exemple de programme en langage c dans X:\windpicct\sources\use_ini.c

II) Profiter des avantages de WindowPictures dans VOS logiciels.

1) Dans une prochaine version de WindowPictures, vous pourrez définir un sujet ou des éléments particuliers spéciaux à votre logiciel. Il vous suffira d'ajouter à votre logiciel un petit fichier INI et les images correspondantes.

2) Mais plus important, dans une prochaine version de WindowPictures, vous aurez à votre disposition une librairie DLL de fonctions utilisables directement dans votre logiciel pour agrémenter d'une texture ou d'une image chaque élément graphique. Par exemple, vous ne serez plus limité à une texture pour tous les fonds de fenêtre, mais vous pourrez en attribuer une à chacune de vos fenêtres. De même, évidemment, pour les boutons, les menus, les barres de titres, les textes sélectionnés, etc... Tout cela en une seule ligne de programmation du genre: WPsetWindowPicture( HWND hwnd, LPSTR PictureFileName );

3) Vous pourrez acquérir bientôt une licence pour une version spéciale de WindowPictures qui ne fonctionnera qu'avec VOTRE logiciel. Le prix n'est pas encore fixé pour l'instant, mais il pourrait tourner autour de 10 F par logiciel normal ( et 5 F par logiciel shareware ) vendu. Ou peut-être une somme au départ, comme 5000 F pour 500 licences, etc... Cela vous permettra de produire des logiciels très graphiques, sans aucun effort.

Un CD-ROM contenant des sources d'exemples en langage C et une version beta de WindowPictures devrait être disponible dans quelques mois. Il y aura aussi la DLL d'accès aux fonctions de WindowPictures, des textures supplémentaires à intégrer dans vos oeuvres. Ce CD-ROM sera expédié à un cout minimum, c'est à dire celui du support et du transport postal, soit environ 35 F.

Pour vous tenir au courant des dernières nouveautés, ainsi que pour nous part de vos remarques, contactez nos services compuserve, internet, et par courrier postal.(voir Comment nous contacter ?).

WindowPictures est notamment destiné aux programmeurs pour enfin rendre agréable l'utilisation de windows, et pour vous faciliter cette tâche au maximum. En fait, nous attendons vos suggestions concernant les fonctions que vous voudriez voir apparaitre dans la librairie DLL de WindowPictures. Envoyez-les nous tout-de-suite pour que nous dirigions dès le départ cette librairie dans la bonne direction.

De nouveaux effets graphiques ne seront bientôt disponibles que pour les programmeurs dans leurs fenêtres, et non dans les fenêtres standards de windows. Nous intégrerons tous les effets dont vous nous donnrez l'idée, dans la mesure de l'impossible, bien sûr ! Rien n'est trop farfelu pour nous, seul compte le plaisir de l'utilisateur (et l'amélioration de l'interface de Windows). Pourquoi pas des fenêtres rondes qui rebondissent ? Les meilleures idées seront intégrées dans WindowPictures dans les prochaines versions, et nous pensons récompenser leurs auteurs, par exemple avec des versions 2.0 gratuites...

Mais n'ayez crainte, nous avons déjà pas mal d'idées intéressantes, et utiles, comme vous le découvrirez bientôt.

Cette librairie est un peu la votre, elle est aussi un embryon d'API graphique en shareware. Seule votre adhésion peut la faire progresser dans le monde fermé de la programmation. On compte sur vous, comme vous pouvez compter sur nous.

Pour obtenir une information à jour sur les techniques de programmation utilisant WindowPictures, connectez-vous sur notre site web:
http://ourworld.compuserve.com/homepages/window_pictures