Bonjour à tous!
Voila, j'ai un gros problème.
J'ai une appli basée sur des boites de dialogue.
Mon but était d'avoir une fenetre principale, dans laquelle je changerais de sous fenetre (fenetre enfant) selon un choix radio button.
J'ai réussi à le faire, mais par contre, je n'arrive pas à accéder aux méthodes de la classe associé à mes fenêtre enfant.
Par exemple, si je créer l'évènement OnClick sur le bouton OK d'un fenetre enfant, et bien ca fait l'action OnOk() tout seul (et donc ferme la fenetre enfant, ce que je ne veux surtout pas!). Hors, j'ai rajouté du code qui n''est pas exécuter, et pareil, le point d'arrêt ne sert a rien. J'ai fais pareil sur un autre bouton, et même avec un point d'arrêt, ca ne passe pas dedans, et il n'y a aucun action.
Voici le code que j'ai utilisé, si vous pouviez m'aider pour que mes fenetre fille puissent utiliser le code de la classe qui leur est associé, car je ne vois pas quoi faire du coup. Merci
//Fonction permettant de créer les fenêtre fille à un endroit de la principale
CDialog *CSwitchDlgDlg::CreatePage(UINT nPlaceCtrlId,UINT nDialogID,CRuntimeClass *pClass/*=NULL*/)
{
CDialog *pDlg=NULL;
if(pClass) pDlg=reinterpret_cast<CDialog *>(pClass->CreateObject());
else pDlg= new CDialog;
pDlg->Create(nDialogID,this);
ASSERT(IsWindow(pDlg->m_hWnd));
CRect rect;
CWnd *pWnd = GetDlgItem(nPlaceCtrlId);
ASSERT(pWnd != NULL);
ASSERT(IsWindow(pWnd->m_hWnd));
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);
pDlg->SetWindowPos(NULL, rect.left, rect.top, 0, 0,
SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE );
pDlg->EnableWindow(TRUE);
return pDlg;
}
....
//utilisation pour afficher ou non tel ou tel fenetre enfant
// desactive
pDlg->ShowWindow(SW_HIDE);
pDlg->EnableWindow(FALSE);
// active l'autre fenetre
pDlg2->ShowWindow(SW_SHOW);
pDlg2->EnableWindow(TRUE);