Bonjour à tous

je souhaite simuler l'appui d'un bouton (IDC_RESETBOUTON) faisant appel à la fonction OnBnClickedResetbouton.
Mon Problème est que ce bouton est situé sur la fenetre principale(CAngelView) et je dois faire l'appel d'une boite de dialogue non modale(CAfficherP) qui reste affichée.


Apres lecture de la faq : Comment simuler un click sur un CButton ?

j'ai testé : l'appel direct de la fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
CAngelView::OnBnClickedResetbouton()
il ne connait pas la fonction. logique, on n'est pas dans la meme classe

j'ai testé : l'envoie d'un message directement au bouton
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
GetDlgItem(IDC_RESETBOUTON)->PostMessage(WM_KEYDOWN,' '); 
GetDlgItem(IDC_RESETBOUTON)->PostMessage(WM_KEYUP,' ');
Provoque une assertion failed. "this" pointe sur la dialogue et forcement il ne trouve pas le bouton.

Comprenant (j'espère ! ) qu'il fallait expliquer que le bouton était sur la fenetre principale, j'ai essayé de créer un pointeur sur le bouton mais sans succés. je me perds dans les GetDlgItem(), GetActiveFrame(), GetActiveView(), AfxGetApp() ...

: 2 de mes nombreux essais infructueux : :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
CFrameWnd * pFrame=static_cast<CFrameWnd *>(AfxGetMainWnd())->GetActiveFrame(); 
(pFrame->GetDlgItem(IDC_RESETBOUTON))->PostMessage(WM_KEYDOWN,' ');
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
CButton * pButton=NULL;
pButton = (CButton*)GetDlgItem(IDC_RESETBOUTON);
pButton->PostMessage(WM_KEYDOWN,' ');
d'avance pour votre aide.