Avatar billede odni Nybegynder
25. juni 2004 - 20:38 Der er 4 kommentarer og
1 løsning

LoadImage i vinduesprogrammering

Hey. Jeg er forholdsvis ny til c++, men har dog lidt erfaring fra andre sprog. Jeg er igang med at gennemgå en tutorial omkring WinAPI'en, og er desværre stødt på et problem, som google ikke lige kan løse. Når jeg kompilerer (bruger Dev-C++) får jeg fejlen: "invalid conversion from void* to HICON__*". I normale sammenhænge kan jeg godt tyde dette - men altså ikke i dette eks.

Koden:

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){
switch(msg){
case WM_CREATE:
{
HICON hIcon, hIconSm;
       
hIcon = LoadImage(NULL, "C:\\ikon.ico", IMAGE_ICON, 32, 32, LR_LOADFROMFILE); // ******** Fejl i denne linie
if(hIcon) SendMessage(hwnd, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
else MessageBox(hwnd, "Fejl @ ikon 1!", "Fejl", MB_OK | MB_ICONERROR);
   
hIconSm = LoadImage(NULL, "C:\\ikon.ico", IMAGE_ICON, 16, 16, LR_LOADFROMFILE); // ******** Og i denne
if(hIconSm) SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)hIconSm);
else MessageBox(hwnd, "Fejl @ ikon 2!", "Fejl", MB_OK | MB_ICONERROR);
}
break;
...

Dette er selvf. et udpluk af koden. Det sker i vindueprocess-funktionen - i case WM_CREATE, der efter min fantastiske fantasi, invokes når vinduet bliver lavet ;) Ikonet ligger selvf. i c:\ - har også prøvet med blot "ikon.ico" i 2. parameter, hvor jeg lagde ikonet i samme mappe som .cpp og .exe filen ligger. Slå mig ikke hårdt hvis jeg bare er dum ;)

Jeg har lidt mistænkt min compiler - måske jeg skulle kigge på MSVC++ ?

Link til tutorial: http://www.winprog.org/tutorial/menus.html - jeg bruger menu_two som reference (ca. halvejs nede).

Nogle kloge hoveder ? På forhånd tak!
Avatar billede arne_v Ekspert
25. juni 2004 - 20:47 #1
Prøv:

hIcon = (HICON)LoadImage(...
Avatar billede odni Nybegynder
25. juni 2004 - 21:05 #2
Du er genial =) Tak for det hurtige og rigtige svar.

Inden du slipper for mig, bliver du lige nødt til at forklare, hvad (HICON) foran funktionen gør iforhold til, hvis man undlod det. Jeg er ny, og vil gerne have det hele med ;) Læg et svar, for at få point.
Avatar billede arne_v Ekspert
25. juni 2004 - 21:08 #3
Det er en type cast.

Den konverterer fra den type som LoadImage nu returnerer til en HICON.
Avatar billede arne_v Ekspert
25. juni 2004 - 21:08 #4
Og et svar
Avatar billede odni Nybegynder
25. juni 2004 - 21:09 #5
Genialt. Endnu en gang tusind tak ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester