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:
il ne connait pas la fonction. logique, on n'est pas dans la meme classe
Code : Sélectionner tout - Visualiser dans une fenêtre à part CAngelView::OnBnClickedResetbouton()
j'ai testé : l'envoie d'un message directement au bouton
Provoque une assertion failed. "this" pointe sur la dialogue et forcement il ne trouve pas le 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,' ');
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,' ');d'avance pour votre aide.
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,' ');
Partager