Oui ok d'accord c'est une méthode.
Mais tu peux utiliser la méthode TRACE il me semble.![]()
Oui ok d'accord c'est une méthode.
Mais tu peux utiliser la méthode TRACE il me semble.![]()
Ben trace tu peux sortir une valeur de variable tu peux accede au contenu du DC en Hexa mais bon c'est plus facile de l'avoir visuellement...
Cela dis je sais pas si tout ça interesse vincebel....
Oui c'est vrai que l'intéressé ne se manifeste pas![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 AfxMessageBox("Bonne Année Everybody");![]()
ayé je me montre, désolé mais j'avais des partiels en début de semaines donc révisions champagne, révisions décuvage.....
Enfin je suis de retour pour tester tout ce que vous me dites!!
salut ,
et bien commence a relire l'enfilade a partir de ce post :
http://www.developpez.net/forums/vie...560353#1560353
![]()
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
C'est fait!! j'ai bien lu, rlu, ingurgité!!!
Et voilà où j'en suis:
1- le dernier code que tu m'as filé n'affiche rien, le StrectchBlt termine bien par un 1, mais rien a l'écran, mon bouton a toujours sont texte MyButton.
2- j'ai pas trop envie d'utiliser une nouvelle classe pour les boutons mais pourquoi pas.
3- le messageBox ou Trace ne me sert à rien puisque même en affichant qu'une seule image, elle s'affiche toujours dans le dernier controle, quelque soit le i de monBouton[i]
Depuis le début le GW_HWNDLAST me dérange. J'ai essayer de le remplacer par GW-HWNDNEXT ou GW_HWNDNEXT, je change de controle pour l'affichage. Je ne trouve pas comment recupérér le handle sur mon bon controle.
Une idée?
J'ai essayer quelque chose avec ta classe CBtPicture, mais je n'arrive plus a l'inclure a mon projet.
Alors ma question est : faut-il copier tout le contenu (déclaration et implématation du constructeur et de DrawItem) dans un seul fichier *.h ou faire un *;h et un *.cpp? dans les deux cas j'ai des erreurs.
EDIT : C'est con, je me suis déjà servi de ta classe, et ça marchait, mais j'y arrive plus snif
tu remis les coordonnées a zero dans le strectch ?Envoyé par vincebel
essaie de recouvrir la fenetre par autre chose pour voir si le paint ne fais pas apparaitre le bitmap.
![]()
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Bien joué!!! Le problème venait du raffrachissement de la fenetre. J'ai rajouter un invalidate(FALSE) dans la fonction OnPaint et Hop ça marche
J'ai par là suite rajouter ma boucle pour afficher sur tout mes boutons (ici 2 pour commencer)
Est-ce que ça te parait propre? (je sais tu préférerais CBtPicture, mais là j'ai plus trop le temps
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 for(i=0;i<2;i++) { CDC *pBtDC = m_MyButton[i].GetWindowDC(); m_MyButton[i].GetClientRect(&rect); HBITMAP hbt=(HBITMAP)LoadImage(NULL, "c:\\mer.bmp",IMAGE_BITMAP,0,0, LR_DEFAULTSIZE|LR_LOADFROMFILE); Bitmap.Detach(); Bitmap.Attach(hbt); // lecture bitmap dans les ressources BITMAP InfosBmp; // structure d'informations. Bitmap.GetBitmap(&InfosBmp); MemDC.DeleteDC(); MemDC.CreateCompatibleDC(pBtDC);// creation d'un DC en memoire MemDC.SelectObject(&Bitmap); // selection du bitmap dans le DC en memoire BOOL oooo=pBtDC->StretchBlt( 0, 0, rect.Width(),rect.Height(), &MemDC, 0, 0, InfosBmp.bmWidth, InfosBmp.bmHeight, SRCCOPY); m_MyButton[i].ReleaseDC(pBtDC); } Invalidate(FALSE);)
salut,
pour eviter de prendre trop de temps sur le paint il faudrait que les bitmaps soient chargés avant .
dans le paint on ne doit faire que l'affichage.
voili
![]()
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Comme je les affiche dans une boite de dialogue, je peux les charger dans la fonction OnInitialUpdate. Je peux déclarer un tableau dynamique de CDC ou je stockerai les MemDC, et les afficher dans le OnPaint?
Je pense que c'est faisable, mais ça va devenir lourd en tableau dynamique![]()
![]()
A propos de tableau dynamique, j'ai une question:
Comme je ne sais pas au préalable combien j'ai d'image à afficher (je connais juste la maxi : 6), et comme j'affiche mes images dans des CStatic ( ou CButton, c pareil), je dois déclarer dynamiquement le tableau. Voilà ce que je voulais faire :
dans le *.h :
et dans le constructeur de la boite dialogue :
Code : Sélectionner tout - Visualiser dans une fenêtre à part CStatic *m_MyButton;
Le problème, c'est que le constructeur de CStatic ou de CButton, ne prend pas mon paramètre 2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part m_MyButton = new CStatic(2);
Une solution?
re,
utilise un CArray .
apres ça s'utilise comme un tableau de pointeur de CStatic .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 // dans le .h CArray<CStatic * ,CStatic *> m_apStatics; CStatic *pMyButton= new CStatic ; m_apStatics.Add(pMyButton); // etc...
voir MSDN pour les autres fonctions de la classe.
il faut mettre #include <afxtempl.h> dans stdafx.h
![]()
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
ok ok, je vais voir ça, mais pas aujourd'hui, j'ai un rapporta rendre avant de me plonger dans les CArray, je vais d'abord déclarer en statique.
Sinon pour la manière de charger les images et de les afficher, un tableau de CDC en variable membre te parait bon?
Finalement non, c pas une bonne idée, il me manqueras d'autres paramètres pour la fonction stretchBlt.
j'essaierai ce soir.
En tout cas, merci, merci, et encore merci.
Bon, étant donné que j'arrive a affichier le nombre d'iamge que je veux, je considère mon problème comme résolu. Je creuserait le CArray et le chargement de l'image en amont du OnPaint plus tard, et je reviendrait te poser des questions![]()
![]()
en tout cas merci pour tout
Partager