Bitmaps??
-
Hallöle!
Mal ne Frage zum Thema Bitmaps: Muss man, wenn man mit Bitmaps, also Bildern arbeitet, immer das ganze umständlich über BltBit usw. machen oder kann man auch, wie bei jedem anderen Windows-Objekt das ganze per CreateWindow und einer HINSTANCE machen??? Ich würde nämlich gerne ein Bild via LoadBitmap aus einer Datei laden, und wenn man es z.B. anklickt sollen daraufhin Messages vom Typ WM_COMMAND erfolgen. Geht das????
code_pilot
-
Mach dir doch einfach ein Steuerelement das Bilder anzeigen kann. Aber ich glaube das geht auch mit nem Static oder Button.

-
Cool, wenn das ginge wäre ich echt froh

Button denke ich sieht blöde aus, aber Static hört sich recht interessant an! Weiss jemand wie das geht mit Static und Bitmap???
Gruss,
code_pilot
-
Hier steht, wie das geht!
Das mit der WM_COMMAND Message musst du dir aber soviel ich weiß selber machen (subclassing ???) - oder gleich ein eigenes Control schreiben
![ Dieser Beitrag wurde am 20.11.2002 um 22:15 Uhr von flenders editiert. ]
-
Nix leichter als das

hBild = CreateWindow("static","", WS_CHILD | WS_VISIBLE | SS_ICON | SS_NOTIFY, 100, 100, 100, 100, hwnd, (HMENU)IDC_Bitmap, hinst, NULL); hbitmap = LoadBitmap(hinst, MAKEINTRESOURCE(IDB_Bild)); SendMessage(hBild,STM_SETIMAGE,IMAGE_BITMAP,(LPARAM) hbitmap);sollte so gehen habs nich getestet viel spass damit

-
ups kleiner fehler

hBild = CreateWindow("static","",
WS_CHILD | WS_VISIBLE | SS_BITMAP | SS_NOTIFY,
100, 100, 100, 100, hwnd, (HMENU)IDC_Bitmap, hinst, NULL);so is richtig

-
lol, schäm dich, wie kann man so einen dummen Fehler machen?

-
jaa sorry hab vor ein paar min. mit icons gearbeitet

-
Jo danke!
Aber ich will das Bitmap aus einer .bmp-Datei holen, nicht als Ressource! Ich dachte erst das ginge mit LoadBitmap, aber das geht anscheinend da nur mit Ressourcen.
code_pilot

-
HANDLE LoadImage(
HINSTANCE hinst, // handle to instance
LPCTSTR lpszName, // image to load
UINT uType, // image type
int cxDesired, // desired width
int cyDesired, // desired height
UINT fuLoad // load options
);The LoadImage function loads an icon, cursor, animated cursor, or bitmap.
guck dir mal die funktion bissl genauer an dann bekommste das hin

mfg
-
Geht nich.
hBild = CreateWindow("static","", WS_CHILD | WS_VISIBLE | SS_BITMAP | SS_NOTIFY, 1, 1, 100, 100, Win[1], (HMENU) 4, hInstance, NULL); hbBitmap = (HBITMAP) LoadImage(NULL,"test.bmp",IMAGE_BITMAP, NULL, NULL, LR_LOADFROMFILE | LR_DEFAULTSIZE); SendMessage(hBild,STM_SETIMAGE,IMAGE_BITMAP,(LPARAM) hbBitmap);Rauskomen tut dabei nix (grrrrrrr).
Wenn ich die scheiss LoadImage-Funktion nicht mit HBITMAP caste, sagt der blöde C++ Builder, das er nicht void* nach HBITMAP konvertieren kann. Die Variablen sind alsHWND hBild; HBITMAP hbBitmap;deklariert. Was mache ich da falsch??? Oder ist der C++-Builder mal wieder zu doof dazu??

code_pilot
-
Also bei mir geht das ohne probleme

füg mal nach mein code folgendes ein:
if(hbBitmap == NULL) MessageBox(NULL, "Error", NULL,NULL);kann sein das deine datei im falschen verzeichnis liegt??!!!????
-
Nein. Es kommst keine Messagebox. Und egal was ich mache, wenn ich das scheiss Funktionsteil nicht caste meckert der Compiler rum, es sei eine void Funktion.
Welche Compiler benutzt du denn?? Wenn du auch C++ Builder hast, und es bei dir geht, dann muss ich ja wohl was falsch machen, aber was??
code_pilot
-
Also Borland 100pro nich *G* damit kann ich mich nich anfreunden

also unter visual c++6 funzt das wunderbar

mhh also casten must du es das is klar
da muss wohl nu ma ein borland spezi ran *G*wird das static denn überhaubt erzeugt??? ma so ganz nebenbei ;P
-
Hi!
Hmmm ... Problem gelöst, sogar mit dem C++-Builder (ich selbst kann nämlich Microschrott nicht ausstehen
)Also, das Problem war, dass ich das ganze auf einem zweiten Fenster, nämlich Win[1] zeichnen wollte. Das Static wurde aber nicht erzeugt, wat weis ich warum. Naja, dann habe ich mal just for fun das erste Fenster, Win[0] angegeben, und schwups: Es ging! Nur wiso nicht auf dem zweiten fenster?????
Naja, auf jeden fall bis denne und danke...
code_pilot
-
Rofl

kann ich dir so schlecht beantworten

vieleicht muste das in die callback nachricht vom 2ten fenster tun??
hauptsache es geht

-
Original erstellt von snaky:
**Rofl
kann ich dir so schlecht beantworten

vieleicht muste das in die callback nachricht vom 2ten fenster tun??
hauptsache es geht :)**
Jepp.
Das Problem hatte ich nur in einem Testprogramm, in dem Programm, in dass ich es einbauen wollte läuft einwandfrei
besten dank nochmalcode_pilot
-
Lol das kommt mir bekannt vor ;P
np man freut sich doch immer wenn man helfen kann

mfg
-
pharmacy;
-
pharmacy;