Comment puis-je afficher et de masquer des formes dans Visual C++?
Hé les gars, je suis tout nouveau à Visual C++, mais pas du C++. Je vais avoir des problèmes en essayant de trouver comment afficher/masquer les formes.
Disons que j'ai un formulaire Form1 et une autre forme TestForm. En un clic sur un bouton de fonction dans Form1.h j'ai le code:
Form1::Hide();
TestForm^ form = gcnew TestForm();
form->Show();
Et il fonctionne très bien. Je clique sur le bouton, et Form1 disparaît et TestForm s'affiche. Mais si je fais la même chose dans TestForm.h (modification des formulaires sont mis à apparaître/disparaître), je reçois une multitude d'erreurs de compilation dans les deux Form1.h (qui fonctionne) et TestForm.h
Form1.cpp
c:\users\alex\documents\visual studio 2010\projects\test\test\TestForm.h(86): error C2065: 'Form1' : undeclared identifier
c:\users\alex\documents\visual studio 2010\projects\test\test\TestForm.h(86): error C2065: 'form' : undeclared identifier
c:\users\alex\documents\visual studio 2010\projects\test\test\TestForm.h(86): error C2061: syntax error : identifier 'Form1'
c:\users\alex\documents\visual studio 2010\projects\test\test\TestForm.h(87): error C2065: 'form' : undeclared identifier
c:\users\alex\documents\visual studio 2010\projects\test\test\TestForm.h(87): error C2227: left of '->Show' must point to class/struct/union/generic type
type is ''unknown-type''
TestForm.cpp
c:\users\alex\documents\visual studio 2010\projects\test\test\Form1.h(103): error C2065: 'TestForm' : undeclared identifier
c:\users\alex\documents\visual studio 2010\projects\test\test\Form1.h(103): error C2065: 'form' : undeclared identifier
c:\users\alex\documents\visual studio 2010\projects\test\test\Form1.h(103): error C2061: syntax error : identifier 'TestForm'
c:\users\alex\documents\visual studio 2010\projects\test\test\Form1.h(104): error C2065: 'form' : undeclared identifier
c:\users\alex\documents\visual studio 2010\projects\test\test\Form1.h(104): error C2227: left of '->Show' must point to class/struct/union/generic type
type is ''unknown-type''
- je vous recommande vraiment d'utiliser le C# en cas de .net et même windows forms.
- J'ai beaucoup de code C++ que je préfère ne pas réécrire, de sorte que le C# n'est pas vraiment une option.
Vous devez vous connecter pour publier un commentaire.
Le problème est probablement dû à l'ordre dans lequel vous êtes, y compris les en-têtes de dans le .fichiers cpp. Dans la boite d'origine, lorsque vous travaillez dans Form1.cpp, "TestForm" était un type connu avant de Form1.h a été inclus. Dès que vous passez les fichiers d'en-tête sera votre appels de méthode, ce n'est pas le cas aujourd'hui.
Je recommande le déplacement de vos gestionnaires d'événements (le clic sur un bouton de fonctions) pour votre .fichiers cpp. Votre .fichiers cpp peut à la fois inclure les en-têtes, et le compilateur de trouver la forme de définitions, avec leurs méthodes, de manière appropriée, peu importe quel ordre vous d'inclure les en-têtes.