Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Arcaine

Frischling

  • »Arcaine« ist der Autor dieses Themas

Beiträge: 5

Wohnort: Chemnitz

Beruf: Umschüler *lol*

  • Private Nachricht senden

1

18.02.2015, 12:37

[C++][WinApi] Anfängerproblemchen - ChildWindow mit Bild

Guten Tag allesamt,
Ich bin heute auf ein Problem gestoßen, das mir schon bald peinlich ist.
Ich versuche einem child window ein Hintergrundbildchen (oder überhaupt ein Bildchen) zu verpassen und auf Knopfdruck, soll sich das Bild ändern, bzw das ist der Plan.
Nun habe ich das Orakel Google befragt und natürlich findet man alles mögliche, nur nicht etwa das gesuchte.
Daher frage ich mal hier.
gibt es eine ähnliche Möglichkeit, einem child nen Hintergrundbild zu verpassen so, wie ich dem child auch nen Text zuweise oder ähnliches ?Ich finde nur utopisch lange Quellcodes, die mir aber irgendwie nicht weiterhelfen. :dash:

#include <windows.h>

#include <iostream>
#include <string>

#define MYBMP "test.bmp"
#define MYBMP 100
#define CONTAINER 101
#define PICTURE 102



HWND hContainer
HWND hPicture1

//WinMain//


//Funktion für Steuerlemente

//
hContainer = CreateWindowEx
(
0,
"STATIC",
NULL,
WS_CHILD | WS_VISIBLE,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
hWnd,
(HMENU)CONTAINER,
hInst,
NULL
);

hPicture1 = CreateWindowEx
(
0,
"STATIC",
NULL,
WS_CHILD | WS_VISIBLE | SS_BITMAP,
0, 0,
100, 100,
hWnd,
(HMENU)PICTURE,
hInst,
NULL
);


//Inhalt meiner Abfrage für den Button

//
case 51:{

ShowWindow(hText, SW_HIDE); //unwichtig in diesem Fall

myBMP = (HBITMAP)LoadBitmap(NULL, MAKEINTRESOURCE(MYBMP));
SendDlgItemMessage(hContainer, PICTURE, STM_SETIMAGE, IMAGE_BITMAP, MYBMP);

switchstate += 1; // ebenso ^^
return 0;
}





Eventuell bin ich nach nem halben Tag dauercoden blind....aber irgendwie sollte das mir doch was anzeigen oder nicht?^^
Auch das grösste Feuer entsteht aus einem kleinen FUnken

2

18.02.2015, 13:16

Bitte nutze Code-Tags.

#1 STM_SETIMAGE nimmt das Handle (also myBMP) als LPARAM, nicht MYBMP, die Resource-Id [1]
#2 Du hast nicht wirklich einen Dialog erstellt (weder modeless, noch modal). Nutze daher eher das "normale" SendMessage()
#3 Überprüfe, ob myBMP nicht vielleicht NULL ist (also nicht geladen werden konnte).
#4 Nutze LoadImage und caste das zurückgegebene HANDLE nach HBITMAP. Soll laut msdn safer sein [2]
EnvisionGame(); EnableGame(); AchieveGame(); - Visionen kann man viele haben. Sie umzusetzen und auf das Ergebnis stolz zu sein ist die eigentliche Kunst.

Arcaine

Frischling

  • »Arcaine« ist der Autor dieses Themas

Beiträge: 5

Wohnort: Chemnitz

Beruf: Umschüler *lol*

  • Private Nachricht senden

3

18.02.2015, 14:29

Danke für die Hinweise,

Ich hab das ganze jetzt anders geregelt.

Code Tag wollte ich nehmen, aber die Formatierung war irgendwie katastrophal *fg*

Aber, wie dem auch sei.... es funktioniert nur auf Knopfdruck überschreiben is nicht, da fehlt noch was^^

Allerdings schau ich auch langsam so -> :golly:


Tante Edit: Auch das hat sich jetzt erledigt ....wird Zeit für n Feierabend *lol*
Auch das grösste Feuer entsteht aus einem kleinen FUnken

Werbeanzeige