à moins que ...j'arrive !
Bon, sérieusement, g un truc qui peut être t'aider. G pas vraiement pris le temps de lire ton problème, mais j'pense que mon truc peut t'aider:
en fait, au lieu d'utiliser des variables globales, saches que tu peux attribuer un long à chaque fenêtre. Je m'explique: pour tout ce qui est "Fenêtre" (CWnd en MFC, ou simple fenêtre avec un Handle en API), tu peux associer un long quelconque (qui pourrais par exemple être un pointeur vers le Handle de ta fenêtre mère ou autre)
pour ça, tu regardes la doc sur la fonction SetWindowLong et GetWindowLong, avec le paramètre index à GWL_USERDATA.
Voila, je vais pas non plus trop m'étaler la dessus, vu que je suis même pas sur que ça te sois utile !