begin process at 2012 02 10 16:52:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

controles images en boucle


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

controles images en boucle

mardi 25 mai 2004 à 12:57:11 | controles images en boucle

rogo

Je souhaite créer une fenetre dans laquelle je positionne des images que je numérote IDC_Image_1, IDC_Image_2, ..., IDC_Image_n.
Est-il possible de créer dans mon code une boucle du type :

For (i=1, i<=n, i++)
{
IDC_Image_i.SetWindowPos(...);
}
dans lequel, i est une variable qui me permettra de modifier les propriétés de chaque image.

Merci

Note : je travail sous Visual C++ 6

d.rogo
mardi 25 mai 2004 à 13:20:08 | Re : controles images en boucle

ymca2003

non, faux mettre des IDC_Image_.. dans un tableau ou alors faire en sorte que les Id se suivent et faire :
(IDC_Image_1+i) avec i de 0 à n-1.
mercredi 26 mai 2004 à 12:20:57 | Re : controles images en boucle

rogo

Merci.

J'ai essayé de mettre (m_Image_1+i) mais l'image perd alors ses propriétés de structure. Comme je débute, c'est peut-être ma facon de faire qui ne va pas.

Je crée une fenetre IDD_FENETRE_DIALOG sur laquelle je positionne des images à la main (ID=IDC_IMAGE_1 (puis 2, 3, ...), TYPE=BITMAP, STYLE=NOTIFY).
Ensuite, à chaque image, j'ajoute une fonction BN_CLICKED ainsi qu'une variable m_IMAGE_1 CATEGORY=CONTROL, TYPE=CSTATIC.

Mon objectif est alors de pouvoir gérer les propriétés de chaque image à partir de mon code (dans des boucles ou dans des procédures).



d.rogo
mercredi 26 mai 2004 à 15:43:26 | Re : controles images en boucle

ymca2003

c'est possible, mais sans utiliser le classwizard.

Dans le .h de la classe, tu défini un tableau de CStatic (dans la zone DialogData, mais en dehors des balises AFX_DIALOG8DATA. :
CStatic m_aImages[IMAGE_COUNT];
IMAGE_COUNT est une constante indiquant le nb d'image.

Ds la fct DoDataExcange, il faut faire le lien entre les Id et les mebres du tableau (en dehors des balise AFX_... également ) :
DDX_Control(pDX, IDC_IMAGES_0, m_aImages[0]);
...

ensuite, dans ton code du peus faire une boucle sur les images.

dans le resource.h", édite-le à la main pour que les Id des images se suivent.

jeudi 27 mai 2004 à 12:15:22 | Re : controles images en boucle

rogo

Merci pour ton aide. J'ai essayé et ça ne pose pas de pb pendant la compilation. Par contre, lorsque j'execute le .exe, j'ai le message d'ereur suivant "Debug Assertion Failed". Sais tu d'où ça peux venir ?

Quel est la différence entre déclarer en dehors et en dedans des balises AFX_DIALOG8DATA ?

Merci

d.rogo
jeudi 27 mai 2004 à 12:22:41 | Re : controles images en boucle

rogo

J'avais une autre question.

Pour résoudre mon pb, j'avais essayé avec une fonction du type :

CStatic Image (int numero)
{
switch(numero)
{
case 1 : return m_Image_1;
...
}
}

Mais j'ai une message lors de la compilation : CStatic ne demande aucun argument !
Pourquoi considere t il Image comme un argument ?


d.rogo
jeudi 27 mai 2004 à 20:48:33 | Re : controles images en boucle

ymca2003

Je ne comprend pas trop l'erreur, mais je crois que tu peut pas retourner directement un CStatic dans une fonction ,faut retourner soit une référrence soit un pointeur.
jeudi 27 mai 2004 à 20:52:41 | Re : controles images en boucle

ymca2003


déclarer en dehors des balises AFX_DIALOG8DATA évite au classwizard du visual Studio de dire qu'il y a une erreur (en fait il n'y en a pas mais il ne reconnait pas les variables stockées dans des tableaux).

En ce qui concerne le Debug Asseertion Failed, normalement il t'indique le fichier et la ligne de l'erreur. Donne-moi le code autour (si c'est un fichier core de MFC, donne simplement son nom et sa ligne)
mardi 1 juin 2004 à 12:20:25 | Re : controles images en boucle

rogo

Merci, J'ai réussi à corriger le Debug Assertion Failed (une faute de frappe).
Par contre, je souhaiterai charger un Bitmap à partir d'un autre Bitmap en modifiant sa taille et son origine (c'est à dire la position du coin supérieur gauche) = prélever un échantillon d'une image.
Pour cela, je pensais utiliser la fonction :
StretchBlt(HDC, int, int, int, int, HDC, int, int, int, int, unsigned long).
Mon problème est que la fonction Image_1.GetBitmap() retourne un HBITMAP et non un HDC (idem pour SetBitmap()).

Comment résoudre ce problème ?
(Quelle fonction retourne un HDC ou quelle fonction pourrait remplacer StretchBlt).

d.rogo
mercredi 2 juin 2004 à 14:10:43 | Re : controles images en boucle

ymca2003

// créé des DC compataibles
HDC hdc = GetDC(NULL);
HDC hDCSrc = CreateCompatibleDC(hdc);
HDC hDCDst = CreateCompatibleDC(hdc);

// sélectionne le bmp source dedans
HBITMAP hOldBmpSrc = (HBITMAP)SelectObject(hDCSrc, hBmpSrc);

// créer le bmp dest
HBITMAP hBmpDst = CreateCompatibleBitmap(hdc, cx, cy);
HBITMAP hOldBmpDst = (HBITMAP)SelectObject(hDCDst, hBmpSrc);

// utiliser StrectBlt:
StretchBlt(hDCDst, xDst, yDst, xDst, yDst, hDCSrc, xSrc, ySrc, cxSrc, cySrc, SRCCOPY);

// libérer les ressources
SelectObject(hDCSrc, hOldBmpSrc);
SelectObject(hDCDst, hOldBmpDst);
DeleteDC(hDCSrc);
DeleteDC(hDCDst);






1 2

Cette discussion est classée dans : images, controles, boucle, image, idc


Répondre à ce message

Sujets en rapport avec ce message

Afficher image dans fenetre [ par payen ] salut a tous,je travaille sur tout un tas d'algos pour faire du traitement d'images (photos aeriennes, images satellites ...). j'aimerais juste un pet IMAGE dans une liste .......... [ par lilo44 ] salutj'essai de coder un chat pi je voudrais gerer les smileys. je cherche donc un fonction qui puisse gerer les images, les retours a la ligne .En gr Afficher des images sous DirectX, et faire un défilement d'images svp [ par cyberlewis ] Slt à tous, KKun pourrait-il m'aider la sur ce truc la svp ?? En faisant les tutoriels du Gritche j'arrive à initialiser une résolution de 800x600x32, Lib FreeImage [ par cartouh ] Bonjour,voila j'utilise la librairie FreeImage pour traiter mes images mais lorsque je veux utiliser deux fonctions pour passer les images en noir et Algo de redimensionnement d'images [ par stageSAP ] Bonjour, Je recherche un algorithme pour redimensionner une image à partir de la matrice image ou une librairie borland c++ qui fait cela. Merci problème de boucle infinie (win32 sans MFC) [ par ksh182 ] Salut,voilà, je code en C++ win32 via les ressources et j'utilises VS 2003 .NET----------------- case WM_COMMAND: { switch(wParam) { case IDC mosaique de bmp [ par momow ] Bonjour, je programme sous BC++6 et j'aimerais afficher dans une fenetre/form des images bmp qui se superposeraient au fil du temps.Par quel moyen pro Manipulation de Bitmap [ par rogo ] J'ai réaliser une boite de dialogue sur laquelle j'ai inséré deux Pictures de taille différentes :IDC = IDC_Image_1 et IDC_Image_2Type = BitmapStyle = Image [ par JCpp ] En Visual Studio C++ .NETOui !!!!!!, encore et encore, une question pour afficher une Image dans une fenêtre Dialogue. (je suis DSL)J'ai cherché dans traitement d'image [ par rodrigo22 ] Je travaille actuellement sur un projet ou je dois etudier la deformation d'une image lorsque l'on projette celle ci sur une surface non perpendiculai


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,552 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales