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 :

Comment créer un group box comportant une image et un titre


Sujet :

MFC

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 303
    Points : 155
    Points
    155
    Par défaut Comment créer un group box comportant une image et un titre
    Bonjour,

    J'essaye de créer un goup box comportant un titre et sur la gauche de celui-ci une image (voir fichier attaché).
    Dans l'éditeur de resource je dessine mon group box, je lui donne son titre avec quelques espace devant histoire de laisser de la place pour l'image (un Bmp de 16*16). Je place ensuite l'image Un CStatic avec un Bmp.
    Lors de l'initialisation de ma boite comportant tout cela je spécifie que l'image est top window (BringWindowToTop).
    En fonctionnement les choses bizarres commence:
    *Si j'appuie sur la touche Tab l'image est écrasée par le texte du group.
    *Si je bascule sur une autre appli (pour forcer un redessin complet)et que je reviens ensuite sur ma boite de dialogue, tout est Ok, si j'appuie sur la touche tab, tout reste OK.
    J'ai intercepté le message OnPaint() du GroupBox, en me disant que j'allais redessiner l'image chaque fois que le group est redessiné mais OnPaint n'est pas appellé lorsque l'on appuie sur la touche TAb!!!

    Pouvez-vous m'aider?
    Images attachées Images attachées  

  2. #2
    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
    salut,
    tu peux tenter la chose suivante :
    créer une classe dérivée de Cbutton (normal pour un groupbox)
    dans le paint de cette classe générée:
    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
     
    void CMyGrpBox::OnPaint() 
    {
        CPaintDC dc(this); // device context for painting
     
        // Create a memory DC compatible with the paint DC
        CDC memDC;
        memDC.CreateCompatibleDC( &dc );
     
        CRect rcClip, rcClient;
        dc.GetClipBox( &rcClip );
        GetClientRect(&rcClient);
     
        // Select a compatible bitmap into the memory DC
        CBitmap bitmap;
        bitmap.CreateCompatibleBitmap( &dc, rcClient.Width(), rcClient.Height() );
        memDC.SelectObject( &bitmap );
     
        // Set clip region to be same as that in paint DC
        CRgn rgn;
        rgn.CreateRectRgnIndirect( &rcClip );
        memDC.SelectClipRgn(&rgn);
        rgn.DeleteObject();
     
        // laisse le bouton se dessiner dans le bitmap.
        CWnd::DefWindowProc( WM_PAINT, (WPARAM)memDC.m_hDC, 0 );
     
     
       // complete ici le dessin du  bouton en mettant ton bitmap dans memdc.
     
     
        // ecriture finale a l'ecran 
        dc.BitBlt( rcClip.left, rcClip.top, rcClip.Width(), rcClip.Height(), &memDC, 
                    rcClip.left, rcClip.top, SRCCOPY );
    on laisse le group box se dessiner dans un bitmap en mémoire ,
    et tu rajoutes le dessin du bitmap par dessus ...
    a tester.

Discussions similaires

  1. Comment aligner du texte autour d'une image sans créer de CSS
    Par guillaume7684 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 19/05/2014, 21h36
  2. Comment créer un pt (marqueur) sur une image ?
    Par dosfly dans le forum jQuery
    Réponses: 1
    Dernier message: 17/02/2012, 14h15
  3. [Conception] Comment créer un lien pour effectuer une requete ?
    Par Poutchou dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/03/2006, 11h54
  4. Comment créer un lien hypertexte avec une liaison OLE Excel ?
    Par vieuxsinge dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 08/12/2005, 17h16
  5. Réponses: 7
    Dernier message: 21/10/2004, 09h13

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