begin process at 2012 05 29 01:08:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Multimédia

 > 

copier une picture dans le presse papier


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

copier une picture dans le presse papier

mercredi 4 octobre 2006 à 10:01:05 | copier une picture dans le presse papier

blinix123

Bonjour,
je suis actuellement en C++ avec les MFC et GDI+. J'ai une picture qui contient une image, laquelle j'aimerais copier dans le presse papier pour pouvoir faire un simple CTRL+V sous Word et coller mon image. Et je n'y arrive pas car la MSDN c'est la jungle

Merci
mercredi 4 octobre 2006 à 10:43:02 | Re : copier une picture dans le presse papier

niketou

OpenClipboard();
HBITMAP myhBmp = myImage.Detach();
EmptyClipboard();
SetClipboardData(CF_BITMAP, myhBmp);
CloseClipboard();
mercredi 4 octobre 2006 à 11:16:59 | Re : copier une picture dans le presse papier

blinix123

hihi j'avais deja vu cette réponse avant, je ne sais pas si elle était déja de toi :p
Mais elle ne marche pas, en effet je ne sais pas coment déclarere le MyImage...
en sachant que moi j'ai :

void CEssaiDlg::ChargeImage(int m_nSelectedItem)
{
 //Nouvelle fonction utilisant la bibliothèque gdi+ 
 using namespace Gdiplus;
 CString sDossier;
 CString strPath;

 int m_nLargeurImageSource,m_nHauteurImageSource;
 //double m_fRapportImage;
 //double m_fAgrandissement;


 LPCWSTR pszWide;


 // Lecture du fichier image
 strPath=m_VectorImageNames[m_nSelectedItem];

 USES_CONVERSION;   
 pszWide= A2CW(strPath);    //utilisation des macro de conversion string vers const wchar*
 //Chargement de l'image
 Bitmap BitmapSource(pszWide);  //Chargement de l'image

 //Dimensions de l'image source
 m_nLargeurImageSource=BitmapSource.GetWidth();
 m_nHauteurImageSource=BitmapSource.GetHeight();

 AfficheImage(&BitmapSource);

}

 

void CEssaiDlg::AfficheImage(Bitmap *BitmapAffiche)
{
 //La variable m_bAfficheImage peut être utilisée pour autoriser l'affichage de l'image
 //Surface d'affichage
 CDC*  pDC= m_cImageRect.GetDC();
 //Définition de l'objet graphique
 CRect m_Rect;
 //m_cImageRect.GetWindowRect(&m_Rect);
 m_cImageRect.GetClientRect(&m_Rect);
 Graphics graphicAffiche(pDC->m_hDC);
 CBrush brush;
 brush.CreateSolidBrush(RGB(0,0,0));
 //fond noir
 pDC->FillRect(m_Rect,&brush);  //On a pris le getdc de m_cImageRect donc le pt 0,0 est le bord de m_cImageRect
 //image
 //graphics.DrawImage(image, ImageDesRectf, SrcRectf,UnitPixel,NULL);

  /*CDC* pDC=m_cImageRect.GetDC();
 HDC hDCImage=CreateCompatibleDC(*pDC);
 SelectObject(*hDCImage,BmpResu);
 BitBlt(pDC,m_RectImage.left,m_RectImage.top,m_RectImage.Width(),m_RectImage.Height(),hDCImage,0,0,SRCCOPY);

*/
 graphicAffiche.DrawImage(BitmapAffiche,m_Rect.left,m_Rect.top,m_Rect.Width(),m_Rect.Height()); 
}

 

void CEssaiDlg::OnCopier()
{
 // TODO: Add your control notification handler code here

}

mercredi 4 octobre 2006 à 13:02:56 | Re : copier une picture dans le presse papier

niketou

CImage myImage;
mercredi 4 octobre 2006 à 13:43:27 | Re : copier une picture dans le presse papier

blinix123

CImage n'exsite pas: 'CImage' : undeclared identifier
pourtant j'ai bien le using namespace Gdiplus;
mercredi 4 octobre 2006 à 13:53:24 | Re : copier une picture dans le presse papier

niketou

												
														
																bool
														 CopyBitmapToClipBoard(CBitmap *pBitmap) 
{ 
    if(!AfxGetMainWnd()->OpenClipboard()) returnfalse; 
     if(!EmptyClipboard()) returnfalse; 

     bool bret=(SetClipboardData(CF_BITMAP, pBitmap->m_hObject)!=NULL); 
     bret=(CloseClipboard()==TRUE); 
    return bret; 
} 



CBitmap *pBmp=CopyWindowToBitmap(this,true); CopyBitmapToClipBoard(pBmp);
mercredi 4 octobre 2006 à 14:35:48 | Re : copier une picture dans le presse papier

blinix123

:s
je fais quoi avec tes fonctions, je vais sur google.fr
developpez.com je les ai trouver, mais j'avais deja tester ca ne voulais pas marcher j'avais quelques erreurs et ton code faisait moins de lignes ^^
mercredi 4 octobre 2006 à 20:14:50 | Re : copier une picture dans le presse papier

blinix123

Réponse acceptée !
void CEssaiDlg::OnCopier(CWnd *pWnd)
{
 // TODO: Add your control notification handler code here
 CBitmap bitmap;
 CClientDC dc(pWnd);
 CDC memDC;
 CRect rect;
 int m_nLargeurImage, m_nHauteurImage;
 m_nHauteurImage = RectAffichage.bottom-RectAffichage.top;
 m_nLargeurImage = RectAffichage.right-RectAffichage.left;
 memDC.CreateCompatibleDC(&dc);
 bitmap.CreateCompatibleBitmap(&dc, m_nLargeurImage, m_nHauteurImage);
 CBitmap* pOldBitmap = memDC.SelectObject(&bitmap);
 GetDlgItem (IDC_IMAGE) -> GetWindowRect(rect);
 ScreenToClient(&rect);
 memDC.BitBlt(0,0,rect.Width(), rect.Height(), &dc, rect.left, rect.top, SRCCOPY);
 m_cImageRect.OpenClipboard();
 EmptyClipboard();
 SetClipboardData(CF_BITMAP, bitmap.GetSafeHandle());
 CloseClipboard();
 memDC.SelectObject(pOldBitmap);
 bitmap.Detach();
}


Cette discussion est classée dans : image, presse, papier, picture, copier


Répondre à ce message

Sujets en rapport avec ce message

copier une image dans le presse papier [ par cyb_dev ] BonjourJe souhaiterais savoir comment faire pour copier le contenu d'un composant image dans le presse papier, puis comment faire pour copier cette im Récupérer une image du presse-papier (clipboard) [ par Siteauludo ] Bonjour,En fait je programme en général sous C# mais j'ai besoin d'un truc plus puissante pour une minuscule application.Y me faudrait faire un progra copier du texte dans le presse papier [ par arconius ] Je voudrais copier du texte ou une variable dans le presse papier afin de pouvoir les réutiliser dans une autre application. Je connais l'instruction copier du texte dans le presse papier [ par arconius ] Je voudrais copier du texte ou une variable dans le presse papier afin de pouvoir les réutiliser dans une autre application. Je connais l'instruction copier du texte dans le presse papier [ par arconius ] Salut à tous :),J'ai besoin d'un peu d'aide car je galère avec le presse papier.Ce que je veux faire est très simple, j'ai une variable char qui conti Presse Papier--Image [ par Belt ] Salut à tous j'aimerais récupérer une image du presse papier genre: " getclipboarddata(CF_BITMAP)" et la sauvegarder ou la mettre dans une ImageBox ! MFC, mettre une image 24b avec le controle "picture" [ par gege1024 ] tout est dans le titrelorsque je veux mettre dans mon dialogue une image 24b (avec le controle "picture", type=bitmap , image=ID_BITMAP),celle-ci est Changer l'image d'un picture controle de facon dinamique [ par Le_neuveu ] Comment puis je lui faire afficher un fichier image qui sera selectionné de facon dynamique? L'adresse de ce fichier bmp depend du choix de l'utilisat probleme avec allegro en C [ par boponfire ] je cite l'aide d'allegro : "int d_icon_proc(int msg, DIALOG *d, int c); C'est un boutton image, la couleur fg est utlisee pour les lignes dessinees lo image dans bouton ?? [ par yohann2004 ] Toujours le meme probleme !! J'ai regardé l'exemple du site, les conseils que l'on m'a donné mais ca marche pas !! Voici mon code : CBitmap picture


Nos sponsors


Sondage...

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 : 0,920 sec (4)

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