Bild in Static-Feld
-
EDIT: Siehe auch Antwort Nr. 5!!!
Hallo,
Ich habe folgendes Problem:
In einem Dialog habe ich ein Static-Feld, in dem ich gern ein Bitmap ausgeben möchte.
Das Bitmap-Bild habe ich mittels LoadImage aus einer Datei geladen (funktioniert auch).
Dann wollte ich STM_SETIMAGE an das Static-Feld senden, jedoch wird das Bild nicht gezeichnet.
Könnte mir bitte jemand auf die Sprünge helfen, wo der Fehler steckt???HINSTANCE hInst = (HINSTANCE) ::GetWindowLong(hDlg, GWL_HINSTANCE); HBITMAP hImage = (HBITMAP) ::LoadImage(hInst, szBmpPfad, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); HWND hStatic = ::GetDlgItem(hDlg, ID_TXT_AKTION); ::SendMessage(hStatic, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM) hImage); //in RC-Datei CTEXT "In progress...", ID_TXT_AKTION, 15, 10, 275, 220, SS_CENTERIMAGE | SS_SUNKEN
-
so wie es aussieht hat dein Static nicht den SS_BITMAP-Style
-
//RC-Datei geändert CTEXT "In progress...", ID_TXT_AKTION, 15, 10, 275, 220, SS_CENTERIMAGE | SS_SUNKEN | SS_BITMAP
Leider derselbe Fehler. Er lädt das Bitmap, zeigt es aber nicht an. Wenn ich jetzt dagegen Text ausgeben will mit ::SetWindowText(), so wird auch das nicht ausgeführt.
-
Versuch's mal mit CONTROL anstelle von CTEXT
-
Hat funktioniert, danke!!!
-
Ich möchte nun das Static-Feld vom Programm aus erzeugen:
HWND hStatic = CreateWindow("static", "", WS_CHILD | WS_VISIBLE | SS_CENTER | SS_CENTERIMAGE | SS_SUNKEN | SS_BITMAP, x, y, cx, cy, hParent, NULL, hInst, NULL); _ASSERT(hStatic); //... HBITMAP hBmp = ::LoadBitmap(hInst, MAKEINTRESOURCE(IDB_ROT)); _ASSERT(hBmp); ::SendMessage(hStatic, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM) hBmp);
Leider wird wieder kein Bild angezeigt. [Auch ::ShowWindow() hilft nicht.] Muß ich anstatt von "static" wieder eine ander Fensterklasse nehmen? Wenn ja, welche?
EDIT: Es kann auch nicht daran liegen, daß die Bitmap eventuell zu groß für das Static-Feld wäre, hBmp ist kleiner als das Static-Feld.
-
Ohne SS_CENTER geht es:
HWND hStatic = CreateWindow("static", "", WS_CHILD | WS_VISIBLE | SS_CENTERIMAGE | SS_SUNKEN | SS_BITMAP, x, y, cx, cy, hParent, NULL, hInst, NULL);