guitoulefoux
Messages postés152Date d'inscriptionlundi 24 mars 2003StatutMembreDernière intervention 6 janvier 2009
-
30 sept. 2003 à 09:25
guitoulefoux
Messages postés152Date d'inscriptionlundi 24 mars 2003StatutMembreDernière intervention 6 janvier 2009
-
2 oct. 2003 à 00:30
Bonjour,
Je cherche a mettre un fond d’écran dans ma form.
Pour cela il faudrait que j’utilise loadimage.
Je pense déjà avoir pas bien avancé (Merci BruNew) mais j’ai encore une erreur.
Voici le detail de mon code :
guitoulefoux
Messages postés152Date d'inscriptionlundi 24 mars 2003StatutMembreDernière intervention 6 janvier 2009 30 sept. 2003 à 19:05
Grace a tes indications voici le nouveau code.
Il n’y a pas d’erreur sur la compilation mais rien ne s’affiche.
Voici le code
[…]
PAINTSTRUCT ps;
RECT rect;
HGLOBAL hgbl;
HDC hdc, hdc2;
[…]
case WM_INITDIALOG:
hgbl=(HBITMAP)LoadImage(0,"MyResource1", IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION); // Je pense qu’a la place du 0 il me faut le handle de mon application mais je sais pas comment l’avoir.
break;
case WM_PAINT:
hdc = BeginPaint( hwnd, &ps );
GetClientRect(hwnd,&rect);
hdc2 = CreateCompatibleDC(hdc);
SelectObject(hdc2, hgbl); // La aussi ca doit pas etre hgbl
StretchBlt(hdc,0,0,400,400,hdc2,0,0,400,400, SRCCOPY);
DeleteDC(hdc2);
EndPaint( hwnd, &ps );
break;
[…]
guitoulefoux
Messages postés152Date d'inscriptionlundi 24 mars 2003StatutMembreDernière intervention 6 janvier 2009 30 sept. 2003 à 19:37
OK,
Donc mon handle c’est:
Hwnd //HWND hwnd; /* This is the handle for our window */
Au debut j’ai mis:
hgbl=(HBITMAP)LoadImage(hwnd,"MyResource1", IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION);
Mais j’avais l’erreur:
75 untitled1.cpp type `HINSTANCE__' is not a base type for type `HWND__'
Donc j’ai fais :
hgbl=(HBITMAP)LoadImage((HINSTANCE)hwnd,"MyResource1", IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION);
Et la plus de problème ça compile. Mais toujours rien qui s’affiche.
Je pense que le pb vient de :
SelectObject(hdc2, hgbl); // HGLOBAL hgbl; ne doit pas servir a ca.
Qu’en penses tu ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 30 sept. 2003 à 19:43
1er param de WinMain !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
et NON de WndProc.
WinMain() est le point d'entree d'un prog win32.
Regarde dans mes sources comment est WinMain.
BruNews, ciao...
guitoulefoux
Messages postés152Date d'inscriptionlundi 24 mars 2003StatutMembreDernière intervention 6 janvier 2009 30 sept. 2003 à 22:52
Oui au debut j'avais mis:
hgbl=(HBITMAP)LoadImage(hThisInstance,"Image1", IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION);
Je m'etait repéré par rapport a :
int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil)
Mais j'avais des erreurs:
`hThisInstance' undeclared (first use this function)
(Each undeclared identifier is reported only once
for each function it appears in.)
guitoulefoux
Messages postés152Date d'inscriptionlundi 24 mars 2003StatutMembreDernière intervention 6 janvier 2009 30 sept. 2003 à 23:30
OK,
J'avais pensé a "hinst" mais dans mon code c'est sous cette forme:
WNDCLASSEX wincl;
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE a, LPSTR b, int c)
{
wincl.hInstance = hThisInstance;
}
Je n'avais pas pensé a:
HBITMAP hbmp;
Pour etre sur j'ai refais en plus une variable avec l'exemple que tu m'as donné.
A la compilation pas d'erreur mais a l'affiche rien ....
J'ai vu dans tes sources que tu chargeais l'image en mémoire.
Je n'ai pas l'impression de faire ca .... a priori il faut faire quelquechose avant le:
SelectObject(.....)