Ce petit code de subclassing va vous permettre de :
- controler le redimentionnement de vos fenêtres et donc le limiter à vos souhaits (par exemple, minimum et maximum) et aussi éviter de le faire une fois que la fenêtre est déjà redimentionnée (événement Form_Resize) ce qui ne faisait pas un très bel effet. C'est par exemple ce que fait la fenêtre des consoles win32.
- controler leur déplacement (pas très réussi par windows ça..).
- savoir quand elles ont été déplacées (ajout d'un événement Form_Move que VB ne possède pas).
- savoir quand elles vont être redimentionnées (et donc redimentionner vos controles avant le redimentionnement de la fenêtre).
J'ai ajouté 2 exemples :
- faire que la taille soit un multiple de 40.
- émanter la fenêtre sur les bords de l'écran quand elle s'en rapproche.
Points abordés :
- subclassing avec gestion des messages WM_SIZE, WM_SIZING, WM_NCCALCSIZE, WM_MOVE et WM_MOVING.
- remplissage d'une structure (et d'une variable en général) à partir de son pointeur avec CopyMemory.