begin process at 2012 05 28 20:35:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

Déplacer Bitmap à la souris


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

Déplacer Bitmap à la souris

lundi 25 août 2003 à 20:55:37 | Déplacer Bitmap à la souris

GoldenEye

Bonjour,
Je souhaiterais afficher une (grande) image bmp dans une fenêtre de taille fixe. A chaque fois que l'utilisateur presse le bouton gauche, le maintient appuyé et bouge la souris, l'image se déplace dans la fenêtre en suivant la souris.
J'arrive à afficher l'image, à récupérer les coordonnées de la souris mais le gestionnaire d'évènements OnLButtonDown refuse obstinément de fonctionner.

Cstring m_strModele est le path de l'image
int x,y sont les coordonnées où l'on affiche l'image (voir bitBlt). Variables membres de la classe CCalibrate

Code:


void CCalibrate::OnPaint() /* CCalibrate est la classe de la boite de dialogue */
{
CPaintDC dc(this); /* device context */
CConfigQCMDlg *pWnd=(CConfigQCMDlg*)GetParent(); /* récupération de la fenêtre parente */
CCalibrate *cWnd=(CCalibrate*)GetActiveWindow(); /* récupération de la fenêtre active */
if(cWnd) /* si la fenêtre enfant existe */
{
if(pWnd->m_strModele!="") /* si le chemin du bitmap existe */
ShowBitmap(&dc,pWnd,cWnd); /* on l'affiche (voir ci dessous) */
}
}

void CCalibrate::ShowBitmap(CPaintDC *pdc, CWnd *pWnd, CWnd *cWnd)
{
BITMAPp bm;
CBitmap* pOldBitmap;
CDC dcMem;
CRect lRect;
CCalibrate *lpWnd=(CCalibrate*)cWnd;
lpWnd->m_bitmap.GetBitmap(&bm);
dcMem.CreateCompatibleDC(pdc);
pOldBitmap=(CBitmap*)dcMem.SelectObject(lpWnd->m_bitmap);
GetClientRect(lRect);
lRect.NormalizeRect();
pdc->BitBlt(x,y,bm.bmWidth,bm.bmHeight,&dcMem,0,0,SRCCOPY);
}


Jusque là, pas de problème. Mais ensuite que faire pour :

Code:

void CCalibrate::OnLButtonDown(UINT nFlags, CPoint point)
{
x=point.x; /* déplacement des coordonnées d'affichage */
y=point.y; /* de l'image en fonction de la souris */
UpdateData(FALSE);
CDialog::OnLButtonDown(nFlags, point);
}


Faire un appel à OnPaint() ne fonctionne pas...
Merci d'avance
J'allais oublier : Visual C++ 6.0 sous Win98

Optimiser, c'est bien, déboguer c'est mieux
mardi 26 août 2003 à 12:55:49 | Re : Déplacer Bitmap à la souris

GoldenEye

C bon j'ai trouvé, il fallait utiliser les méthodes Invalidate() et UpdateWindow()

Optimiser, c'est bien, déboguer c'est mieux


-------------------------------
Réponse au message :
-------------------------------

> Bonjour,
> Je souhaiterais afficher une (grande) image bmp dans une fenêtre de taille fixe. A chaque fois que l'utilisateur presse le bouton gauche, le maintient appuyé et bouge la souris, l'image se déplace dans la fenêtre en suivant la souris.
> J'arrive à afficher l'image, à récupérer les coordonnées de la souris mais le gestionnaire d'évènements OnLButtonDown refuse obstinément de fonctionner.
>
> Cstring m_strModele est le path de l'image
> int x,y sont les coordonnées où l'on affiche l'image (voir bitBlt). Variables membres de la classe CCalibrate
>
> Code:
>
>
> void CCalibrate::OnPaint() /* CCalibrate est la classe de la boite de dialogue */
> {
> CPaintDC dc(this); /* device context */
> CConfigQCMDlg *pWnd=(CConfigQCMDlg*)GetParent(); /* récupération de la fenêtre parente */
> CCalibrate *cWnd=(CCalibrate*)GetActiveWindow(); /* récupération de la fenêtre active */
> if(cWnd) /* si la fenêtre enfant existe */
> {
> if(pWnd->m_strModele!="") /* si le chemin du bitmap existe */
> ShowBitmap(&dc,pWnd,cWnd); /* on l'affiche (voir ci dessous) */
> }
> }
>
> void CCalibrate::ShowBitmap(CPaintDC *pdc, CWnd *pWnd, CWnd *cWnd)
> {
> BITMAPp bm;
> CBitmap* pOldBitmap;
> CDC dcMem;
> CRect lRect;
> CCalibrate *lpWnd=(CCalibrate*)cWnd;
> lpWnd->m_bitmap.GetBitmap(&bm);
> dcMem.CreateCompatibleDC(pdc);
> pOldBitmap=(CBitmap*)dcMem.SelectObject(lpWnd->m_bitmap);
> GetClientRect(lRect);
> lRect.NormalizeRect();
> pdc->BitBlt(x,y,bm.bmWidth,bm.bmHeight,&dcMem,0,0,SRCCOPY);
> }
>
>
> Jusque là, pas de problème. Mais ensuite que faire pour :
>
> Code:
>
> void CCalibrate::OnLButtonDown(UINT nFlags, CPoint point)
> {
> x=point.x; /* déplacement des coordonnées d'affichage */
> y=point.y; /* de l'image en fonction de la souris */
> UpdateData(FALSE);
> CDialog::OnLButtonDown(nFlags, point);
> }
>
>
> Faire un appel à OnPaint() ne fonctionne pas...
> Merci d'avance
> J'allais oublier : Visual C++ 6.0 sous Win98
>
> Optimiser, c'est bien, déboguer c'est mieux
mercredi 14 décembre 2011 à 16:08:18 | Re : Déplacer Bitmap à la souris

asmaTELECOM220710

j'ai le meme problèème que vous, aidez moi svp!!!!!!!!!sos


Cette discussion est classée dans : image, souris, bitmap, cwnd, ccalibrate


Répondre à ce message

Sujets en rapport avec ce message

SELECTION D'UNE ZONE DE FORME QUELCONQUE D'UNE IMAGE AVEC LA SOURIS [ par tiger3550 ] Bonjour,Dans le cadre d'un projet d'école, je dois réaliser un logiciel de traitement d'images médicales. Toute aide serait la bienvenue.Mon problème Comment récuperer la luminosité d'un pixel d'une image bitmap? [ par chmod777 ] Je cherche a recuperer la luminosité d'un pixel (n'importe lequel) d'une image bitmap, cela ne doit pas etre sorcier mais j'avoue que là, j'ai du mal: Conversion bitmap 8 bits -> 24 bits [ par lma ] Je suis à la recherche d'un programme permettant de convertir une image bitmap 8 bits en image bitmap 24 bitsQuelqu'un peut il m'aider ? need help_API - debutant. [ par JimyRyan ] j'ai cree un progamme qui affiche une image (stoquee dans un fichier .bmp), et une phrase (lu a partir d'un fichier TXT), j'ai deux problemes : une fo image bitmap et graphique ss visual c++ [ par pipic ] Slt tt le monde,G 2 petites questions:1) Comment insérer une image ss visual C++??G créeé ma ressource et je l'ai chargé à partir de la ft° LoadBitmap Découper puis affichier un bitmap [ par Vortex99011 ] Bonjour,depuis quelques jours de recherches désespérées, je viens vous demander ici un grand secours. Je recherche une manière quelconque pour affiche Charger un BMP avec une OpenFileDialog et l'afficher dans un pictureBox . [ par Dragoon ] Bonjour à tous,Je ne suis pas un spécialiste du C++ et des MFC et je souhaiterais comprendre ce qui ne va pas dans mon programme.Je voudrais que celui dialogbox et bitmap [ par supergrey ] Bonjour, je fais actuellement un client IRC et je voudrais qu'un image s'affiche dans ma boite de dialogue principal lorsque la connexion est etablie. Afficher une image a un endroit indiqué par la souris en C++ builder [ par Forthian ] Bonjour à tous... Mon projet de Bts me demande de faire une application qui affiche une image ( bmp de préférence ) en la sélectionnant et en cliquant longueur et largeur d'une image BITMAP. [ par Adeon ] Salut!QQ peut il me dire la fonction en API qui donne la longueur et la largeur d'une image BITMAP. Adeon


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 1,170 sec (4)

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