Faire un CDialog visible

voix
1

Je suis en train d'obtenir un DialogBox avec une case à cocher pour apparaître. Je l'ai ajouté au fichier de ressources, a créé le modèle de dialogue, et a ajouté le gestionnaire de classe et d'événements pour la boîte de dialogue. Si je comprends bien, maintenant je dois juste créer une instance de la classe et appeler DoModal ().


Donc, je suis retourné et fait quelques recherches et a joué avec le code certains et c'est ce que j'ai maintenant

UsingMSPSK PSKDialog;

    if (PSKDialog.DoModal () == IDOK)
    {


    }
    autre {
        AfxMessageBox ( Non iDok);
    }
    CTempoDialog TempoDialog;


    if (TempoDialog.DoModal () == IDOK)
        {

        }



Quand je lance, je ne reçois pas de dialogue de l'appel PSLDialog.DoModal (), mais je reçois le AfxMessageBox, alors le TempoDialog apparaît. Je l'DoModal suivi pas à pas () appel dans le débogueur et il semble fonctionner et revenir correctement, je ne peux pas savoir où va ma boîte de dialogue.

Je viens de regarder la valeur de retour de l'appel DoModal () à nouveau, et il semble qu'il est immédiatement sortir, comment puis-je résoudre ce problème?

Créé 27/08/2009 à 02:53
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
2

Il faut travailler pour rendre le dialogue visible - en supposant que le modèle de dialogue a le style WS_VISIBLE et ainsi de suite. Peut-être que l'initialisation de dialogue échoue? Est-ce que la sortie d'appel de dialogue « DoModal » immédiatement? Cela indiquerait un défaut de créer la fenêtre.

Quelle version de Visual Studio utilisez-vous? La version 6 utilisée pour ne pas laisser vous définissez des points d'arrêt sur le code qui n'a pas encore été chargé. Sinon, assurez-vous que les symboles sont chargés. Dans la fenêtre Modules, faites un clic droit dll contenant votre code et choisissez « Charger les symboles ». Faites-vous une version de débogage avec des informations symboliques, ou une version release? Assurez-vous qu'il est une version de débogage pour l'expérience de débogage plus facile.

Créé 27/08/2009 à 03:05
source utilisateur

voix
0

Je ne sais pas pourquoi cela est arrivé, mais la case à cocher j'ai ajouté était un contrôle ActiveX, et cassé la boîte de dialogue. Lorsque j'ai découvert le volet de boîte à outils, et traînés une case à cocher à partir de là, il a bien fonctionné.

Créé 12/09/2009 à 19:23
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more