Bonjour,
Je suis nouveau sur le forum... il est probable que le sujet ai été débattu, mais la fonction de recherche ne m'a pas permi de cerner rapidement un nombre suffisament restreint de fil à lire. Alors je soumets mon probleme :
Je souhaite modifier un handler (en fait substituer un handler par un autre, du même type) lors de l'excution d'un programme. Celui-ci est developpé avec VS 2005 en utilisant les MFC.
D'après ce que j'ai pu constater, la table des messages MFC est faite pour être statique. Mais j'ai également vu sur le net que des "workaround" était possible... seulement, plusieurs solutions tendent vers la reécriture d'un framework autorisant les tables dynamiques - too much pour moi.
Je veux seulement, pour un message en particulier, pouvoir remplacer un Handler_A associé à ce message par un Handler_B :
Soit une classe CTestAppDialog dérivant de CDialog,
Soit un message ON_EVENEMENT (n'importe quoi, un clic souris, une frappe clavier), on lui associe un Handler OnEvenementProcess_A() dans le
MESSAGE_MAP. Puis on souhaite remplacer, a l'exécution, OnEvenementProcessType_A() par OnEvenementProcessType_B() dans la table.
Comme il s'agit,finalement de pointeurs sur fonction (quelque part dans les structures complexes genre AFX_MSGMAP_ENTRY) ca devrait être possible.
Alors comment faire simplement ?
Merci d'avance
Bernard
Partager