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]Style de la bar de Status - CStatusBar


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 13
    Points : 12
    Points
    12
    Par défaut [MFC]Style de la bar de Status - CStatusBar
    J'ai genere un application SDI avec ClassWizard.
    Bien sur, j'ai une bar de status mais avec ce style d'affichage :


    Je voudrai avoir ce style d'affichage pour la bar ( avec un separateur et le tick frame ) :


    Voila mon code pour la bar de status :
    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
    static UINT indicators[] =
    {
    ID_SEPARATOR, // status line indicator
    ID_INDICATOR_CONNECTTOEMULE,
    // ID_INDICATOR_CAPS,
    // ID_INDICATOR_NUM,
    // ID_INDICATOR_SCRL,
    };
    
    int CMainFrame::CreateStatusBar()
    {
    // Create Status Bar with Font style
    CFont *m_Font = new CFont;
    LOGFONT lfLogFont;
    memset(&lfLogFont, 0, sizeof(lfLogFont));
    lfLogFont.lfHeight = 12; // 13-pixel-height
    lfLogFont.lfWeight = FW_BOLD; // Bold
    strcpy(lfLogFont.lfFaceName, "Verdana"); // Verdana
    m_Font->CreateFontIndirect(&lfLogFont);
    if (!m_wndStatusBar.CreateEx(this, SBT_TOOLTIPS | SBARS_SIZEGRIP) ||
    !m_wndStatusBar.SetIndicators( indicators, sizeof(indicators)/sizeof(UINT) ) )
    {
    TRACE0("Failed to create status bar\n");
    return -1; // fail to create
    }
    m_wndStatusBar.SetFont( m_Font, TRUE );
    m_wndStatusBar.SetPaneInfo( 1, ID_INDICATOR_CONNECTTOEMULE, SBPS_NOBORDERS, 15 );
    CStatusBarCtrl* StatusBarCtrl = &m_wndStatusBar.GetStatusBarCtrl();
    CRect PaneRect;
    StatusBarCtrl->GetRect( 1, PaneRect );
    StatusBarCtrl->SetMinHeight( PaneRect.Height() + 20 );
    ULONG_PTR uResIcon;
    CString strStatusTip;
    if ( EmuleLinkInjectVariableApp->bConnectToEmuleState )
    {
    uResIcon = IDI_CONNECT;
    strStatusTip = "Connect to Emule";
    }
    else
    {
    uResIcon = IDI_DICONNECT;
    strStatusTip = "DisConnect to Emule";
    }
    HICON m_hIconConnect = (HICON)::LoadImage(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(uResIcon), IMAGE_ICON, 16, 16, 0);
    StatusBarCtrl->SetIcon( 1, m_hIconConnect );
    StatusBarCtrl->SetTipText( 1, strStatusTip );
    return 0;
    }
    
    Je precise que je tourne sous WndowsXP et en compiler VisualStudio 2003 .NET

    Vous me diriez peut-etre : l'affichage de la bar de status est pratiquement pareil mais pas tout a fait

    Merci de vos reponses...

  2. #2
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    salut,

    kje pense que tu veux donner le style XP a tes applications

    donc voir ca :

    http://chgi.developpez.com/styleXP/
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  3. #3
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    static UINT indicators[] =
    {
    ID_SEPARATOR, // status line indicator
    ID_INDICATOR_CONNECTTOEMULE,
    // ID_INDICATOR_CAPS,
    // ID_INDICATOR_NUM,
    // ID_INDICATOR_SCRL,
    };

    si tu veux avoir 2 panneaux, ils faut 2 identifiants dans ton tableau...
    http://c.developpez.com/faq/vc/?page...CStatusBarMake
    http://c.developpez.com/faq/vc/?page...#CStatusBarAdd

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 13
    Points : 12
    Points
    12
    Par défaut Resolue...
    Citation Envoyé par hiko-seijuro
    salut,
    kje pense que tu veux donner le style XP a tes applications
    donc voir ca :
    http://chgi.developpez.com/styleXP/
    C'est bien ca : un style XP a mon application.
    Merci hiko-seijuro , j'ai resolu mon probleme

    Je vaie donner quelques explications pour les autres :

    Vous avez 2 facons pour avoir le style XP :
    Note : Ces explications sont valables pour Visual Studio 2003 NET .

    1) l'application génère ( grace a AppWizzard ) un fichier 'nom de votre programme.manifest' ( situe dans le repertoire '\res\', il faut copier ce fichier dans le repertoire de l'.exe de votre appli et le renomme en 'nom de votre programme.exe.manifest' .

    2) Pour eviter de mettre le fichier '.manifest', il faut :
    - Aller dans l'editeur de ressource de Visual C++
    - 'Add Resource' ( click droit )
    - Selectionner 'Custom' et ajouter 'RT_MANIFEST'
    - Dans l'editeur de resssource->Repertoire 'RT_MANIFEST' une nouvelle ressource a ete genere ( par defaut : 'IDR_RT_MANITEST1 ) : il faut rennomer cette ressource en '1' ( onglet 'Properties' ) .
    - Dans l'onglet 'Properties'->Filename : mettre le chemin du fichier '.manifest' ( par defaut : 'res\nom de votre programme.manifest' ) .
    - Faite un Rebuild de votre programme.

    J'espere avoir ete clair

  5. #5
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    ces explications figurent déjà dans la faq VC ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/03/2011, 12h42
  2. Réponses: 1
    Dernier message: 11/01/2011, 11h58
  3. [MFC] problème status bar
    Par julien.nasser dans le forum MFC
    Réponses: 4
    Dernier message: 07/12/2007, 19h09
  4. [MFC] Status bar
    Par fr_ed_er_ic dans le forum MFC
    Réponses: 5
    Dernier message: 21/07/2004, 15h12
  5. [MFC] Status des CDialoguBar
    Par Kevgeii dans le forum MFC
    Réponses: 6
    Dernier message: 11/01/2004, 18h46

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