j'vance doucement dans ma decouverte des win32 (ne me dites pas de passer a autre chose, c'est par interret personnel) et j'ai fait un petit programme tout con
il me cree plein de composants de base a l'ecran a savoir :
un bouton, un label, un edit, un radio ... et un groupbox
j'ai aussi fait en sorte que quand je clique sur l'un d'entre eux y ait une message box a la con qui me dise "machin clické"
mais voila, si ca marche pour pas mal de composants, certains ignorent le click de la souris (label texte, panel (tous les 2 des static) et le groupbox)
alors les 2 premiers j'ai vite trouve : fo specifier SS_NOTIFY et hop ca marche
alors je tente le BN_NOTIFY pour le groupbox et lui par contre il veut rien savoir
alors comment on fait ?
d'ou une autre question : comment peut on empecher une fenetre de recevoir l'evenement WM_LBUTTONDOWN (ou autre de la souris) comme c'est le cas ?
la fenetre GROUPBOX est bien enabled quand elle est cree et pourtant elle trouve le moyen de ne recevoir aucun message de la souris, comment elle fait ca ?
en fait au travers de ces essais j'essai de me faire une idee du code genere par des outils tels ke VB ou C++ Builder (j'aime bien savoir ce k'il se passe )
alors j'ai en autre un peu ouvert les sources de la librairie OWL de Borland qui est un peu leur MFC a eux
j'ai ete assez surpris de voir qu'ils utilisent assez peu les composants de base
genre le panel
c'est eux qui se dessine le panel voulu (effet 3D releve ou enfonce ...) au lieu de "jouer" avec les valeurs offertes par Win32 (genre SS_SUNKEN)
pourkoi ca ?
ils arretent pas aussi de creer des "subclass" et n'utilisent donc pas directement les classes BUTTON et autres ...
pkoi ?
et le truc qui m'a fait halluciner c'est la creation a l'aide d'un malloc d'une fonction callback (ils allouent un tableau et remplissent ce tableau avec des opcodes !!!) pour chaque class OWL instanciee ... chaque class a donc sa routine de gestion de message ...
pas trop compris l'utilite, puisque en plus cette routine (une par classe donc) va appeller une autre routine "normale" declaree dans la classe (y'en a donc une seule et unique partagee entre toutes les instances de cette classe non ?)
au passage, le truc qui m'a marque est l'utilisation (dans les VCL surtout) assez importante de l'assembleur ... petetre que pour les VCL c'est une histoire de compatibilite avec le C++ ? (ecrites en Pascal et utilisee par C++ Builder)
si un gros Jesus du Win32 et de ces librairies pouvait m'eclairer
---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite