Bitmap auf Static aktualisieren
-
Guten Tag,
ich möchte um mein Bitmao so einen schönen rahmen haben (WS_EX_CLIENTEDGE und WS_BORDER)
also Hab ich ein Static mit den Styles ausgestattet und in
dieses Static mein Bitmap angezeigt undzwar folgendermaßen:case WM_CREATE: hStatic1 = CreateWindowEx(WS_EX_CLIENTEDGE,"static","\n\nBild konnte nicht geladen werden",WS_VISIBLE | WS_CHILD | WS_BORDER | SS_CENTER, 50,10,346,86,hwnd,(HMENU) 1000, hInstGlb,NULL); hBitmap = (HBITMAP) LoadImage(hInstGlb,"c:\\MeInE_DaTeI.bmp",IMAGE_BITMAP,340,80,LR_LOADFROMFILE); GetObject(hBitmap, sizeof(BITMAP), &Bitmap); break; case WM_PAINT: hdc = BeginPaint(hStatic1, &ps); hdcMem = CreateCompatibleDC(hdc); hBSO = (HBITMAP) SelectObject(hdcMem, hBitmap); BitBlt(hdc,0,0,Bitmap.bmWidth,Bitmap.bmHeight,hdcMem,0,0,SRCCOPY); SelectObject(hdcMem, hBSO); DeleteDC(hdcMem); EndPaint(hStatic1, &ps); break;jetzt hab ich ganz geschickt versucht das Bild zu Verändern:
case WM_COMMAND: switch (HIWORD(wParam)) { case BN_CLICKED: switch (LOWORD(wParam)) { case IDButton1: // server hBitmap = (HBITMAP) LoadImage(hInstGlb,"c:\\NoCh_EiN_bIlD.bmp",IMAGE_BITMAP,340,80,LR_LOADFROMFILE); GetObject(hBitmap, sizeof(BITMAP), &Bitmap); break; [...]Geht auch aber erst wenn ich das Fenster minimier und dann wieder sichtbar mache.
Dann hab ich mir gedacht versuch ich's doch mal mit InvalidateRect() geht aber nicht.
(Nur wenn ich bei WM_PAINT bei BeginPaint() hwnd angebe und nicht hStatic1.)
Könnte ich natürlich machen dann müsste ich aber den Rahmen mit in das Bitmap malen. (Möchte ich aber nicht so gern..)Hat einer ne Idee wie ich es schaffe, dass sich das Bild nach dem drücken des Buttons sofort ändert und nicht erst nach minimieren?
Vielen Dank im Voraus
MfG Mario
-
Also ich habs jetzt geschaft...
Interessiert niemanden aber:
Stichwort Subclassing.. (selbiges hab ich mit meinem Static gemacht und dann reagiere ich dort auf die WM_PAINT..)