Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Pb d'affichage [ Archives / Graphique ] (mrous)

mercredi 10 mai 2006 à 13:57:39 | Pb d'affichage

mrous

Bonjour,

Je souhaite afficher des graphiques ds une boite de dialogue. Pour cela, j'utilise une libraire déja ecrite que j'ai trouvé sur le web cependant je n'arrive pas a reafficher le graphique avec la methode onpaint.

Apparemment le graphique s'affiche tres rapidement et il est ensuite éffacé ou remplacé par un écran vide.
Je ne vois pas d'ou vient le problème, voici ma méthode OnPaint():

void CDlgAreva::OnPaint()
{
    CPaintDC dc(this); // device context for painting
    CRect rect;
    GetClientRect(&rect);

    if (IsIconic())
    { 
         SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

        // Center icon in client rectangle
        int cxIcon = GetSystemMetrics(SM_CXICON);
        int cyIcon = GetSystemMetrics(SM_CYICON);

        int x = (rect.Width() - cxIcon + 1) / 2;
        int y = (rect.Height() - cyIcon + 1) / 2;

        // Draw the icon
        dc.DrawIcon(x, y, m_hIcon);
    }
    else
    {
         // CDialog::OnPaint(); 
 
       if(myBar != NULL)
       {
           CWnd* graphFrame = (CWnd*)GetDlgItem(IDC_GRAPH);
           CDC* pDC = graphFrame->GetDC();
           myBar->Draw(pDC);
           ReleaseDC(pDC);
       }
    }
}

myBar est le nom de mon graphique et sa methode Draw prend en argument un CDC*.
IDC_GRAPH est une frame ds ma bdd principale que j'ai mis en Rectangle pour afficher le graphique a l'intérieur.

Merci d'avance pour votre aide.


mercredi 10 mai 2006 à 14:39:14 | Re : Pb d'affichage

mrous

En continuant de chercher, j'ai constaté que si je modifie la fonction draw pour prendre un CPaintDC comme paramtres, la réactualisatiion s'effectue bien. Cependant le graphique n'est plus dans ma frame comme je le souhaitais (ce qui est normal).

Ma question est donc comment faire pour modifier le CDC de mon rectangle en CPaintDC?
Ou comment faire pour ontenir le meme resultat avec un CDC qu'un CPaintDC?

Merci

mercredi 10 mai 2006 à 14:58:14 | Re : Pb d'affichage

mrous

Réponse acceptée !
Finalement j'ai trouve, c'etait pas bien compliqué il fallait juste le savoir:
J'ai créé un CPaintDC en utilisant le pointeur de mon CWnd et plus de problème.

Mais bon je ne sais toujours pas pourquoi ca ne marchait pas avec le CDC puisque apparemment cette méthode marche pour les applications de type SDI mais ds mon cas c'etait une bdd.

Bonne journée



Cette discussion est classé dans : int, graphique, rect, dc, onpaint


Répondre à ce message

Sujets en rapport avec ce message

dessiner dans une boite de dialog [ par olfa7183 ] salut,je veux creer un compteur qui compte les monnaie inserees.tout d'abord je veux le dessiner puis le programmer.pour le dessin j'ai utilisé le cod Bitmaps splitté qui s'affichent a l'envers [ par milhandril ] Je suis actuellement sur un projet dont une parti necessite un petit editeur de map en 2D. Je prend un bitmap que je "découpe" en Tile de 32*32 (en fa Blit de surface avec SDL [problème d'affichage] [ par cyberlewis ] Bonjour,Voilà j'ai fait un code (jeu vidéo SDL),j'arrive à afficher la partie que je veux (tiles, tiles.bmp) dans screen qui est affichée à l'écran, p probleme graphique !!! merci d'avance [ par dededo ] salut je suis un programmeur en herbe avec visual c++ et j'ai besoin d'aide !!!je n'arrive pas a resoudre mon probleme : GetCursorPos(&pt); if(prev le mode graphique sur dos [ par alen ] alb#include#include#include#include#includeint xgclot,xdclot,yh pr d'objet GDI qui augmente, help [ par gege1024 ] CPaintDC hdc(this);HBITMAP bit;BITMAP bitmap;CRect rect;GetClientRect(&rect);  bit= (HBITMAP) LoadImage (NULL,fic_img_abs,IMAGE_BITMAP,0,0,LR_DEFAULTS Redimenssion de fenêtre et permanence de son contenu (V C++) [ par TahitiLove ] Bonjour,J'aimerai savoir comment peut on assurer la permanence du contenu d'une fenêtre.Je m'explique, j'ai créer un projet sous Visual C++ utilisant Getpixel et Setpixel trop lents! :( [ par Omeya ] Bonsoir à tous,Depuis quelques temps, j'essaye de réaliser un capteur d'écran en temps réel et les seuls instructions que je sais vraiment utiliser so Gérer miex la memmoire pour le calcul matriciel [ par Stiko ] salut,j'utilise une classe faite en C++ pour les calculs matriciels de grand taille la classe est le suivant:c'est le fichier .h[quote]/* Matrix.h*/#i Gérer mieux la memoire [ par Stiko ] salut,j'utilise une classe faite en C++ pour les calculs matriciels de grand taille la classe est le suivant:c'est le fichier .h[code]/* Matrix.h*/#if


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.