PB avec GetWindowRect !

cs_liv Messages postés 49 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 26 avril 2006 - 10 août 2004 à 12:04
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 10 août 2004 à 17:02
Voilà mon problème...

J'appelle ce script à partir de l'évènement OnOk() d'une boîte de dialogue enfant Dlg2.
La fonction est censée créer une autre boîte de dialogue m_SeqDlg et de la positionner en fonction des coordonnées de l'apli principale (DlgApp) que je récupère avec GetWindowRect.

Mais voilà...ça plante, car visiblement GetWindowRect ne récupère pas les bonnes infos. A mon avis il est toujours resté sur l'ancienne boite de dialogue Dlg2.

Que dois-je faire ??

void CDlg::OnLoad()
{
if (m_SeqDlg == NULL)
{
m_SeqDlg = new CSeqDlg(this);
m_SeqDlg->Create();

//On récupère la position et la taille de la Dlg principale
RECT m_pos;
GetWindowRect (&m_pos);

m_SeqDlg->SetWindowPos (NULL,
m_pos.left,
m_pos.bottom,
m_pos.right - m_pos.left,
130,
NULL);
}
else
m_SeqDlg->SetActiveWindow();
}

4 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
10 août 2004 à 14:43
Ca plante carrément?
0
cs_liv Messages postés 49 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 26 avril 2006
10 août 2004 à 15:22
Ouais...pas bon...car il a éclaté mon objet.
Je t'explique...

En fait en plus simple...j'ai mon objet CDialog de mon appli principal. -> CApp

De CApp, j'appelle une fonction appelant un autre objet CDialog, CApp2 (autre classe, autre fichier....)
-> création de la boite de dialogue en question.
De celle-ci je veux appeler une fonction de CApp. Comment je fais ???? Comment je fais l'héritage ???

Car si je réinstencie Cpp, je perds toutes les données...normal.

Je veux juste appeler de Capp2 une fonction de CApp.
Peut-être cela va t-il résoudre mon problème.
0
cs_liv Messages postés 49 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 26 avril 2006
10 août 2004 à 15:25
Le fait que je réinstencie CApp me fais perdre toutes mes données et du coup lorsque j'appelle GetWindowRect...il est à la rue. Puisque plus rien ne correspond.

----->>>Plantage !!
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
10 août 2004 à 17:02
Tu ne perds rien en réinstanciant, puisque l'objet déja crée existe toujours et désormais tu en a deux. En tous cas pas besoin d'héritage pour ton problème, il suffit d'envoyer un pointeur CApp* app dans la fonction de CApp2, puis tu appelle la fonction: app->FonctionDeApp
0
Rejoignez-nous