Insertion d'une nouvelle classe dans un programme
Bonjour,
J'ai un programme existant auquel j'ai ajouter une nouvelle classe type MFC mais
la classe generee differe des autres classes existantes en effet au niveau du fichier header dans la nouvelle classe j'ai un code qui ressemble a ceci:
Code:
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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
.....
#pragma once
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
namespace 99090 {
/// <summary>
/// Description résumée de ViewTestStereo
/// </summary>
public ref class ViewTestStereo : public System::Windows::Forms::UserControl
{
public:
ViewTestStereo(void)
{
InitializeComponent();
//
//TODO : ajoutez ici le code du constructeur
//
}
protected:
/// <summary>
/// Nettoyage des ressources utilisées.
/// </summary>
~ViewTestStereo()
{
if (components)
{
delete components;
}
}
private:
/// <summary>
/// Variable nécessaire au concepteur.
/// </summary>
System::ComponentModel::Container ^components;
CInit m_Init;
#pragma region Windows Form Designer generated code
/// <summary>
/// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
/// le contenu de cette méthode avec l'éditeur de code.
/// </summary>
void InitializeComponent(void)
{
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
}
#pragma endregion
};
}
#pragma once
// Mode formulaire CViewTestStereo
#include "init.h"
#include "Init.h"
#include "afxwin.h"
#include "Security.h"
#include "test.h"
class CViewTestStereo : public CFormView
{
DECLARE_DYNCREATE(CViewTestStereo)
protected:
CViewTestStereo(); // constructeur protégé utilisé par la création dynamique
virtual ~CViewTestStereo();
void Fonction_Stereo_test();
....... |
et dans les anciennes classes j'ai des codes qui ressemblent a ceci:
Code:
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 44 45 46 47 48 49 50
|
/*! \file ViewTestWago.h
* \brief Le fichier contient le header de la classe CViewTestWago:
* \n On y retrouve le(s) constructeur(s), le destructeur ainsi que
* le prototype des fonctions membres et les variables membres de la classe.
*/
/*! \class CViewTestWago
* \brief Gestion du test du module Wago
* \version 1.0
* \date 21/02/2006
*/
#if !defined(AFX_VIEWTESTWAGO_H__996A3CD9_50B1_41A9_A902_258F09EA6F64__INCLUDED_)
#define AFX_VIEWTESTWAGO_H__996A3CD9_50B1_41A9_A902_258F09EA6F64__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef __AFXEXT_H__
#include <afxext.h>
#endif
#include "test.h"
/*! \def BASE_TIME_WAGO_OK
* \brief représente la base de temps lorsque le test est OK
*/
#define BASE_TIME_WAGO_OK 1000
/*! \def BASE_TIME_WAGO_NOK
* \brief représente la base de temps lorsque le test est KO
*/
#define BASE_TIME_WAGO_NOK 5000
class CViewTestWago : public CFormView
{
protected:
CViewTestWago(); // protected constructor used by dynamic creation
DECLARE_DYNCREATE(CViewTestWago)
// Form Data
public:
//{{AFX_DATA(CViewTestWago)
enum { IDD = IDD_TESTWAGO };
..... |
-Ma premiere question que represente ce morceau de code generer?
#if !defined(AFX_VIEWTESTWAGO_H__996A3CD9_50B1_41A9_A902_258F09EA6F64__INCLUDED_)
#define AFX_VIEWTESTWAGO_H__996A3CD9_50B1_41A9_A902_258F09EA6F64__INCLUDED_
-Et ma deuxieme question:
Apres insertion de ma classe, j'ai aussi, par la suite, ajoutee dans un 'DIALOG' commun a 4 classes un bouton pour cette nouvelle classe que je viens de creer et j'ai donc maintenant 5 boutons dans ce dialog. La compilation a bien marchee mais lors du lancement du programme lorsque j'affiche le 'DIALOG' commun, le bouton que j'avais placer ne figure pas (zone de gris a l'emplacement) alors que les boutons des anciennes classes apparaissent et il y a un message :
"Debug assertion failed :
File: f:/rtm/vctools/vc7libs/shi/atlmfc/src/mfc/winctrl1.cpp
Line: 84
Que dois-je faire pour eviter ce probleme ?
Merci
Classe et fichiers transparents sous Visual Studio 2005
Bonjour,
Il s'agit d'un probleme assez etrange: j'ai tout d'abord cree une boite de Dialogue de type Form. Sur ce DialogForm, en faisant click droit j'ai ajouter (associer) une classe et j'ai ajouter du code aux fichiers header et source de cette classe. Et cette classe est bien apparue sur l'onglet Classe du workspace, jusqu'ici pas de probleme.
Toutes ces operations je les avez faites en ouverture mode Workspace (.dsw) du programme.
Donc j'ai sauver le workspace et puis je l'ai fermer. Mais etrangement lorsque j'ai reouvert ce workspace la classe que j'avais creee n'y etait plus mais mon dialogForm (IDD_MONDIALOGUEFORM) etait bien present donc j'ai essayer a nouveau d'ajouter ma classe a ce dialogform en saisissant le meme nom une fenetre est apparue me disant que maclasse.h existe deja et me demande si je veux fusionner avec l'existant (idem pour le fichier source)?
J'ai bien regarder dans l'onglet FileView mais ni le fichier .h ni le fichier .cpp n'apparaisse!
Donc ce que j'ai fait c'est d'ouvrir le dossier ou se trouve tous ces fichiers pour voir si je vois ces fichiers avec l'explorer windows et la par contre je les voit bien ils existent?!
J'ai recommence plusieurs fois ces etapes et toujours la meme chose la classe est transparente on dirait!
Ma question: pourquoi ces fichiers qui existent n'apparaisse pas lorsque j'ouvre Visual Studio 2005 ?
-Est-ce du au fait qu'une fois j'avais coder mon programme lorsque je l'avais ouvert en mode Solution (.sln)? Et donc devrais-je pas coder en mode solution mais en mode workspace ou vice versa?
-Est-ce du au fait que je devais d'abord creer ma classe puis associer a cette classe l'objet Dialogform?
Merci
il n'est pas utile de multiplier les posts sur le même sujet, Merci Farscape