IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

MFC et multifenetrage


Sujet :

MFC

  1. #1
    Membre confirm�
    Homme Profil pro
    Consultant en propri�t� intellectuelle
    Inscrit en
    Janvier 2008
    Messages
    88
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : Consultant en propri�t� intellectuelle
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2008
    Messages : 88
    Par d�faut MFC et multifenetrage
    Voila, je voudrais que mon application demarre en premier lieux en demandant un login et un mot de passe, j'ai donc creer une fenetre dialogue.

    Est il possible, que lorsque l'on clique sur OK, si le mot de passe est bon cela ouvre une autre fenetre, et sinon ca reviens a la fenetre en incluant une phrase ?

  2. #2
    Membre chevronn�
    Avatar de PetitPapaNo�l
    D�veloppeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par d�faut
    Bonjour,

    Oui, c'est possible. Bien s�r !
    Si ta premi�re bo�te de dialogue a �t� ouverte avec DoModal, tu ne pourras pas utiliser la m�me, vu qu'elle a �t� d�truite au moment du clic sur le bouton "Ok". Mais tu peux afficher une autre instance de cette bo�te de dialogue en mode modal, en utilisant un accesseur de fa�on � ce qu'elle sache qu'il faut afficher un message suppl�mentaire. De la m�me fa�on, tu peux ouvrir une autre fen�tre si le mot de passe est correct. Mais dans ce cas, tout d�pend si tu es dans un contexte MDI, SDI ou de bo�te de dialogue...

  3. #3
    Membre confirm�
    Homme Profil pro
    Consultant en propri�t� intellectuelle
    Inscrit en
    Janvier 2008
    Messages
    88
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : Consultant en propri�t� intellectuelle
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2008
    Messages : 88
    Par d�faut
    Quand je clique sur Ok, ca ne m'ouvre la fenetre, mais ca me la ferme direct ... tout en gardant la fenetre d'identification ouverte ... Je comprend pas ...

    Est il possible de recuperer les valeur des champs d'une boite de dialogue? comment?

  4. #4
    Membre chevronn�
    Avatar de PetitPapaNo�l
    D�veloppeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par d�faut
    J'ai rapidement regard� ton code (avant que tu ne le retires de ton message pr�c�dent). Il me semble que la fin de la m�thode CRFIDApp::InitInstance devrait plut�t se pr�senter comme ceci :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    	if (dlg.DoModal() == IDOK)
    		return CreateMainFrame();
     
    	return FALSE;
    }
    Pour r�cup�rer la valeur d'un champ d'une bo�te de contr�le affich�e avec DoModal, il faut utiliser un accesseur publique qui permet de renvoyer cette valeur. Le probl�me est qu'on n'a plus acc�s aux contr�les de la bo�te de dialogue apr�s l'ex�cution de DoModal du fait que la bo�te de dialogue est alors d�truite. Il faut donc ruser en stockant cette valeur dans un membre de type CString, soit au moment de la fermeture de la bo�te de dialogue, soit au moment o� la valeur du champs est modifi�e.

    Dans ton cas et dans le cas d'un CEdit, le plus simple est d'associer une variable de type CString au contr�le, de mettre un accesseur publique sur cette variable et de mettre cette variable � jour dans la m�thode �v�nementielle du clic sur le bouton "Ok" � l'aide de la m�thode UpdateData.

  5. #5
    Membre confirm�
    Homme Profil pro
    Consultant en propri�t� intellectuelle
    Inscrit en
    Janvier 2008
    Messages
    88
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : Consultant en propri�t� intellectuelle
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2008
    Messages : 88
    Par d�faut
    Pas compris la ...

  6. #6
    Membre confirm�
    Homme Profil pro
    Consultant en propri�t� intellectuelle
    Inscrit en
    Janvier 2008
    Messages
    88
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : Consultant en propri�t� intellectuelle
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2008
    Messages : 88
    Par d�faut
    Bon, actuellement j'ai ca :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    BOOL CProjetApp::InitInstance()
    {
    	AfxEnableControlContainer();
     
    	// Standard initialization
    	// If you are not using these features and wish to reduce the size
    	//  of your final executable, you should remove from the following
    	//  the specific initialization routines you do not need.
     
    #ifdef _AFXDLL
    	Enable3dControls();			// Call this when using MFC in a shared DLL
    #else
    	Enable3dControlsStatic();	// Call this when linking to MFC statically
    #endif
     
    	// Change the registry key under which our settings are stored.
    	// TODO: You should modify this string to be something appropriate
    	// such as the name of your company or organization.
    	SetRegistryKey(_T("Local AppWizard-Generated Applications"));
     
    	CLogin login;
    	//	CDatabase db;
    	//	char  source[] ="DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;PORT=3306;DATABASE=RFID;USER=root;PASSWORD=;OPTION=0;";
     
    //	if (db.connect(source))
    //	{
    		if(login.DoModal() == IDOK)
    		{
    			m_Login = login.m_Login;
    			m_Password = login.m_Password;
    		}
    		else 
    		{
    			return -1;
    		}
    		CVerification Verif;
    		Verif.Create(IDD_CheckLaptopOwner, NULL);
    		Verif.ShowWindow(SW_SHOW);
    		Verif.SetFocus();
     
    //	}
    	return false;
    }
    Et quand je lance, ca m'affiche la premiere fenetre, et des que je fais ok, tout se ferme ...comment faire?

  7. #7
    Membre chevronn�
    Avatar de PetitPapaNo�l
    D�veloppeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par d�faut
    Est-ce que ce ne serait pas li� au return false qui est � la fin de ta m�thode ? Moi, j'�crirais la fin de cette m�thode de la fa�on suivante :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    	(...)
     
    	if (login.DoModal() != IDOK)
    		return FALSE;
     
    	m_Login = login.m_Login;
    	m_Password = login.m_Password;
    	CVerification Verif;
    	Verif.Create(IDD_CheckLaptopOwner, NULL);
    	Verif.ShowWindow(SW_SHOW);
    	Verif.SetFocus();
     
    	return TRUE;
    }
    Est-ce d�lib�r� de ta part d'afficher la bo�te de dialogue CVerification en mode non modal ?

  8. #8
    Membre confirm�
    Homme Profil pro
    Consultant en propri�t� intellectuelle
    Inscrit en
    Janvier 2008
    Messages
    88
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : Consultant en propri�t� intellectuelle
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2008
    Messages : 88
    Par d�faut
    ca fais pareil ...

  9. #9
    Membre chevronn�
    Avatar de PetitPapaNo�l
    D�veloppeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par d�faut
    Et que fait le d�gogueur quand tu mets un point d'arr�t au d�but de cette m�thode ?

  10. #10
    Membre confirm�
    Homme Profil pro
    Consultant en propri�t� intellectuelle
    Inscrit en
    Janvier 2008
    Messages
    88
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : Consultant en propri�t� intellectuelle
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2008
    Messages : 88
    Par d�faut
    Il passe par plein de fonction ..

    Comment faire pour creer la fenetre autrement qu'en modal ?

  11. #11
    Membre confirm�
    Homme Profil pro
    Consultant en propri�t� intellectuelle
    Inscrit en
    Janvier 2008
    Messages
    88
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : Consultant en propri�t� intellectuelle
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2008
    Messages : 88
    Par d�faut
    ok ... c'est bon, ca marche quand je creer en DoModal

  12. #12
    Membre chevronn�
    Avatar de PetitPapaNo�l
    D�veloppeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par d�faut
    Ah ! La voil� l'erreur !
    Pour afficher une bo�te de dialogue en mode non modal, il faut faire presque comme tu as fait avec CVerification. Je dis presque, car il ne faut pas utiliser une simple variable mais un pointeur. Cf. la FAQ...
    Ton code deviendrait donc :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    	(...)
     
    	if (login.DoModal() != IDOK)
    		return FALSE;
     
    	m_Login = login.m_Login;
    	m_Password = login.m_Password;
    	CVerification *pVerif;
    	pVerif->Create(IDD_CheckLaptopOwner, NULL);
    	pVerif->ShowWindow(SW_SHOW);
    	pVerif->SetFocus();
     
    	return TRUE;
    }

  13. #13
    Membre chevronn�
    Avatar de PetitPapaNo�l
    D�veloppeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par d�faut
    Citation Envoy� par Kassar Voir le message
    ok ... c'est bon, ca marche quand je creer en DoModal
    Ca ne m'�tonne pas. Je ne comprenais pas l'int�r�t d'afficher cette bo�te de dialogue de fa�on non modale alors que c'�tait la seule � se trouver affich�e par l'application.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    R�ponses: 8
    Dernier message: 08/06/2005, 15h57
  2. MDI sans MFC, possible ?
    Par delire8 dans le forum MFC
    R�ponses: 4
    Dernier message: 17/06/2002, 07h38
  3. [MFC](encapsulation ADO) ou placer le code
    Par philippe V dans le forum MFC
    R�ponses: 2
    Dernier message: 13/06/2002, 14h58
  4. R�ponses: 2
    Dernier message: 10/06/2002, 11h03
  5. [MFC] ADO connection
    Par philippe V dans le forum MFC
    R�ponses: 3
    Dernier message: 10/06/2002, 07h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo