[MFC] image sur un bouton
Salut , j'utilise visual studio .net 2003 et les MFC.
j'utilise ce bout de code pour afficher une iamge sur un bouton et ça marche bien :
Code:
1 2 3 4 5 6 7
|
HWND hBouton = ::GetDlgItem(this->m_hWnd,IDC_BUTTON1);
this->hImage = ::LoadImage(this->hInst,MAKEINTRESOURCE(IDB_FONT),
IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION);
::SendMessage(hBouton, BM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)(HANDLE)hImage); |
Le soucis est que j'utilise une image dans les ressources et vu que j'arrive pas à mettre une .bmp dans les ressources j'aimerais loader une image avec son PATH. J'ai une classe CPicture qui fait ça mais j'arrive pas à faire le lien entre le code au dessus et la classe CPicture. J'utilise la classe CPicture pour mettre une image en fond d'une CDialog en fait. Après j'ai trouvée une fonction sur ce site qui load une image :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| HBITMAP CYEPDlg::LoadAnImage(char* FileName)
{
WCHAR wpath[MAX_PATH];
MultiByteToWideChar(CP_ACP, 0, FileName, -1, wpath, MAX_PATH);
IPicture* pPic;
OleLoadPicturePath(wpath, NULL, NULL, NULL, IID_IPicture,(LPVOID*)&pPic);
HBITMAP hPic = NULL;
pPic->get_Handle((UINT*)&hPic);
HBITMAP hPicRet = (HBITMAP)CopyImage(hPic, IMAGE_BITMAP, 0, 0, LR_COPYRETURNORG);
pPic->Release();
return hPicRet;
} |
mais la ligne soulignée fait planté le programme.
Si quelqu'un pouvait m'aider svp !! En gros j'aimerais mettre une image sur un bouton l'image n'étant pas dans les ressources . Merci par avance !
[a l'avenir utilise la balise code ,Merci Farscape]
Re: [MFC] image sur un bouton
Citation:
Envoyé par mfrai02
...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| HBITMAP CYEPDlg::LoadAnImage(char* FileName)
{
WCHAR wpath[MAX_PATH];
MultiByteToWideChar(CP_ACP, 0, FileName, -1, wpath, MAX_PATH);
IPicture* pPic;
OleLoadPicturePath(wpath, NULL, NULL, NULL, IID_IPicture,(LPVOID*)&pPic);
HBITMAP hPic = NULL;
pPic->get_Handle((UINT*)&hPic);
HBITMAP hPicRet = (HBITMAP)CopyImage(hPic, IMAGE_BITMAP, 0, 0, LR_COPYRETURNORG);
pPic->Release();
return hPicRet;
} |
mais la ligne soulignée fait planté le programme.
...
Quelle ligne ?