Le tout me paraît compliqué
Là c'est un choix. Je pense en effet que gérer les rafraichissements sont plus compliqués. Mais la fenêtre fera appel aux mêmes fonctions pour son positionnement (GetWindowRect). En gérant WM_NCHITTEST, tu pourrait même remplir la forme d'une couleur semi-transparente (ta demande du premier post) sans altérer le comportement général.
Que tu encapsules tes méthodes dans une classe, pourquoi pas. Mais elle ne peut être que générique et je ne vois pas l'utilité d'en avoir une par contrôle. Enfin si, je vois : les timers (voir explication ci-dessous)
Là sans aucun doute
Toutes les détections devraient être faites par hooks notifiant ton application des changements.
Un WH_CALLWNDPROC(RET) pour intercepter WM_SETFOCUS et WM_ACTIVATE.
Un WH_KEYBOARD pour les frappes clavier. Si le champ est supposé numérique, tu pourrais même facilement interdire les caractères alpha. Et bien sûr tu serais notifié de chaque frappe alors qu'avec un timer tu ne peux contrôler que l'état des touches à un temps T.
Si on part du principe du hook (travaille en amont. Soit avant que la donnée soit insérée), la fiche avec quelques méthodes supplémentaires suffirait. (WriteField, ReadField, CheckField)
Maintenant si l'insertion d'une donnée peut entraîner la modification d'un autre champ, je ne dis pas...
Je pense que l'utilisation de timer complique beaucoup ton application puisque lorsque l'événement est généré (même avec un temps très court), tu ne peux garantir que le champ à tester soit bien celui détenant la focalisation. Tu es donc obligé de parcourir à chaque fois l'ensemble des champs...
Sans doute. C'est en tout les cas ainsi que je le ferais
Partager