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 :

cherche tuto sur les tab control


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    c''est quoi la version de compilateur vs ? 6.0, .net 2001-2003 ,2005 ?

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    c'est visual c++ .net

    on la trouve ou la version du compile, sur le about, j'ai :

    Microsoft Development Environment 2003 Version 7.1.3088

  3. #3
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    bon c'est a cause des templates ,ça passe parfaitement sous VC6.0...
    essaye de mettre ce code dans templdef.h
    en remplacement du bloc DECLARE_TEMPLATE_MESSAGE_MAP
    de plus a partir de .net cette macro existe ,je l'ai renommée en changeant
    _TEMPLATE_ par _TPL_
    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
    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
     
    ///////////////////////////////////////////////////////////////////////////////
    // definition for MESSAGE_MAP:
     
    #define DECLARE_TPL_MESSAGE_MAP() DECLARE_MESSAGE_MAP()
    #include "afxtempl.h"
    #if _MSC_VER >= 0x0700
     
    	#ifdef _AFXDLL
     
    			#define BEGIN_TPL_MESSAGE_MAP(theTemplArgs, theClass, baseClass) \
    				template  \
    					const AFX_MSGMAP* PASCAL theClass::GetThisMessageMap() \
    						{ return &theClass::messageMap; } \
    				template  \
    					const AFX_MSGMAP* theClass::GetMessageMap() const \
    						{ return &theClass::messageMap; } \
    				template  \
    					AFX_COMDAT const AFX_MSGMAP theClass::messageMap = \
    					{ &baseClass::GetThisMessageMap, &theClass::_messageEntries[0] }; \
    				template  \
    					AFX_COMDAT const AFX_MSGMAP_ENTRY theClass::_messageEntries[] = \
    					{ 
    	#else
    			#define BEGIN_TPL_MESSAGE_MAP(theTemplArgs, theClass, baseClass) \
    				template  \
    					const AFX_MSGMAP* theClass::GetMessageMap() const \
    						{ return &theClass::messageMap; } \
    				template  \
    					AFX_COMDAT const AFX_MSGMAP theClass::messageMap = \
    					{ &baseClass::messageMap, &theClass::_messageEntries[0] }; \
    				template \
    					AFX_COMDAT const AFX_MSGMAP_ENTRY theClass::_messageEntries[] = \
    					{ 
    	#endif
    #else
    	#ifdef _AFXDLL
    	#define BEGIN_TPL_MESSAGE_MAP(theTemplArgs, theClass, baseClass) \
    		template <theTemplArgs> \
    			const AFX_MSGMAP* PASCAL theClass::_GetBaseMessageMap() \
    				{ return &baseClass::messageMap; } \
    		template <theTemplArgs> \
    			const AFX_MSGMAP* theClass::GetMessageMap() const \
    				{ return &theClass::messageMap; } \
    		template <theTemplArgs> \
    			AFX_COMDAT AFX_DATADEF const AFX_MSGMAP theClass::messageMap = \
    			{ &theClass::_GetBaseMessageMap, &theClass::_messageEntries[0] }; \
    		template <theTemplArgs> \
    			AFX_COMDAT const AFX_MSGMAP_ENTRY theClass::_messageEntries[] = \
    			{ \
     
    	#else
     
    	#define BEGIN_TPL_MESSAGE_MAP(theTemplArgs, theClass, baseClass) \
    		template <theTemplArgs> \
    			const AFX_MSGMAP* theClass::GetMessageMap() const \
    				{ return &theClass::messageMap; } \
    		template <theTemplArgs> \
    			AFX_COMDAT AFX_DATADEF const AFX_MSGMAP theClass::messageMap = \
    			{ &baseClass::messageMap, &theClass::_messageEntries[0] }; \
    		template <theTemplArgs> \
    			AFX_COMDAT const AFX_MSGMAP_ENTRY theClass::_messageEntries[] = \
    			{ \
     
    	#endif
     
    #endif
     
    #define END_TPL_MESSAGE_MAP() END_MESSAGE_MAP()
    ça devrait passer sous .net 2003 ,mais ça passe pas sous VC 2005

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    oula !!!

    j'ai à bloc d'erreur !!!!

    j'essai de trouver la premiere ..... et jla poste

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    [edit de moi :)] jai supprimé les 300 lignes d'erreurs que j'avais mis et qui encombré le forum inutilement

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    si tu relis mon message ,j'ai dis qu'il fallait remplacer
    DECLARE_TEMPLATE_MESSAGE_MAP par
    DECLARE_TPL_MESSAGE_MAP
    et de maniere generale _TEMPLATE_ par _TPL_ ......

  7. #7
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    c'est fait (exact j'avais oublié)

    ca se réduit maintenant à :
    ------ Build started: Project: Douchette, Configuration: Debug Win32 ------

    Compiling...
    XTabCtrl.cpp
    XTabCtrl.h(87) : error C2039: '_GetBaseMessageMap' : is not a member of 'CTplDlgColor<GENERIC_DLGCOLOR>'
    XTabCtrl.cpp(53) : error C2440: 'static_cast' : cannot convert from 'void (__thiscall CXTabCtrl::* )(NMHDR *,LRESULT *)' to 'BOOL (__thiscall CCmdTarget::* )(NMHDR *,LRESULT *)'
    None of the functions with this name in scope match the target type
    XTabCtrl.cpp(129) : warning C4244: 'initializing' : conversion from 'INT_PTR' to 'int', possible loss of data
    DlValidationPage2.cpp
    DlValidation.cpp
    XTabCtrl.h(87) : error C2039: '_GetBaseMessageMap' : is not a member of 'CTplDlgColor<GENERIC_DLGCOLOR>'
    DlRecapitulatif.cpp
    XTabCtrl.h(87) : error C2039: '_GetBaseMessageMap' : is not a member of 'CTplDlgColor<GENERIC_DLGCOLOR>'
    DlListClick.cpp
    XTabCtrl.h(87) : error C2039: '_GetBaseMessageMap' : is not a member of 'CTplDlgColor<GENERIC_DLGCOLOR>'
    DlConnection.cpp
    XTabCtrl.h(87) : error C2039: '_GetBaseMessageMap' : is not a member of 'CTplDlgColor<GENERIC_DLGCOLOR>'
    DlAccueil.cpp
    XTabCtrl.h(87) : error C2039: '_GetBaseMessageMap' : is not a member of 'CTplDlgColor<GENERIC_DLGCOLOR>'
    Douchette.cpp
    XTabCtrl.h(87) : error C2039: '_GetBaseMessageMap' : is not a member of 'CTplDlgColor<GENERIC_DLGCOLOR>'
    Generating Code...

    Build log was saved at "file://Debug\BuildLog.htm"
    Douchette - 8 error(s), 1 warning(s)


    ---------------------- Done ----------------------

    Build: 0 succeeded, 1 failed, 0 skipped

  8. #8
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    bon j'ai opté pour une solution compilable pour les 3 compilateurs vc6,.net,2005., je verrais le probleme des messages map templates une autre fois.
    le projet est a jour.

  9. #9
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    y'a une manip à faire avec ?

    j'ai cette erreur dans ton projet :
    XTabCtrl.cpp(53) : error C2440: 'static_cast' : cannot convert from 'void (__thiscall CXTabCtrl::* )(NMHDR *,LRESULT *)' to 'BOOL (__thiscall CCmdTarget::* )(NMHDR *,LRESULT *)'

  10. #10
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    essaye ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    BOOL CXTabCtrl::OnSelchanging(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    	// TODO: Add your control notification handler code here
    	m_iSelectedTab = GetCurSel();
     
    	*pResult = 0;
    	return FALSE;
    }
    j'ai remplacé le void par BOOL .
    modifie aussi le .h .
    c'est le probleme du portage d'un code VC6 sur .net ....

  11. #11
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    lol, ce coup ci,

    c'est le gris qui déconne

    le titre de l'onglet est foncé alors que le contenu est clair

  12. #12
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    tu as appelé :SetDialogBkColor dans les differentes dialogues ?
    voir mon exemple .



  13. #13
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    je pensais qu'il suffisait de mettre TabCtrl.SetAutoSizePannel(); à l'appelante

    comment puis alors connaitre la couleur de base (le gris clair) ?

  14. #14
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    je l'ai plus en tete mais :
    une petite copie ecran de la zone concernée ,
    puis appel paint
    copier la zone
    prelevée la couleur avec l'outil prelevement couleur
    et menu couleurs / modifier les couleurs /bouton couleurs personnalisées.
    la tu trouves les valeurs RGB.

  15. #15
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    j'essai de l'appeler comme tu l'a fais :

    BOOL DlValidationPage2::OnInitDialog()
    {
    CDialog::OnInitDialog();

    SetDialogBkColor(RGB(193, 193, 255));
    et j'ai bien mis
    #include "XTabCtrl.h"
    dans mon .h seulement, il trouve pas :
    DlValidationPage2.cpp(56) : error C3861: 'SetDialogBkColor': identifier not found, even with argument-dependent lookup
    jvois pas mon erreur la,

    j'ai beau cleaner ma solution, rien n'y fais

  16. #16
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    regarde mon exemple et l'utilsation de la classe template....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    class CTabMoreInformation : public CTplDlgColor<CDialog>
    ...
    class CTabInformation : public CTplDlgColor<CDialog>
    ...
    class CTabctrlDlg : public CTplDlgColor<CDialog>
    les 3 classes panneaux et dialog utilisent la classe template....
    voir les implementations dans les .cpp.

  17. #17
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    quelle tache ! j'ai zappé ca !

    mais sinon, pkoi hier de base, le gris etait ok (di ce n'est dans les onglet), et plus la ?

    j'ai rien fais de plus hier, aucun SetDialogBkColor ....

  18. #18
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    le gris etait ok sur les panneaux grace au resize des dialogues...

  19. #19
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    ben il y est toujours ce truc mais plus le gris

  20. #20
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    ton projet integre un manifest ? si oui tu as mis le Ctabctrl owner draw dans les ressources.
    sinon montre moi une copie d'ecran de ta fenetre .


+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. cherche tuto sur les textes
    Par ml1234 dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 18/08/2009, 15h58
  2. Tuto sur les Hooks
    Par reptils dans le forum Windows
    Réponses: 2
    Dernier message: 13/07/2006, 20h49
  3. debutant cherche reponse sur les caracteres speciaux
    Par Alexlesilex dans le forum Débuter
    Réponses: 3
    Dernier message: 11/05/2006, 15h26
  4. questions sur les tabs a plusieurs dimensions
    Par rosviper45 dans le forum C
    Réponses: 16
    Dernier message: 27/11/2005, 14h20

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