bitmap überdeckt wm_paint
-
hi,
ich schreibe gerade an einem roulette spiel, mein problem ist, der ball verschwindet hinter der bitmap meines roulette tisches und ich weis nicht wie ich ihn vor die bitmap bekomme...
die bitmap wird durch eine rc file eingefügt und hier der code für die kugel.
kann mir da jemand helfen ?case WM_PAINT: { hdc = BeginPaint(hwnd, &ps); NewBrush = CreateSolidBrush(RGB(255, 2, 5)); SelectObject(hdc, NewBrush); //ball Ellipse(hdc, w, v, w+16, v+16); EndPaint(hwnd,&ps); break; }
-
Wo zeichnest du denn das Bitmap? Also eigentlich erst Bitmap blitten und dann den Ball darüber zeichnen.
Übrigens: NewBrush wird nicht zerstört...
-
Und wie zecihnest Du bitte den Roulette Tisch?
Das muss entweder ein WM_ERASEBKGND passieren oder auch hier in WM_PAINT...
-
die bitmaps hab ich in der *.rc eingefügt.
IDD_ROULETTE DIALOGEX 0, 0, 687, 290 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Roulette" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN CONTROL 106,IDB_WHEEL,"Static",SS_BITMAP,0,0,247,228 CONTROL 107,IDB_TABLE,"Static",SS_BITMAP,248,38,438,169 END
ich arbeite übrigens mit mvs2010
-
Ein Child Control liegt immer über den Hintergrund des Dialoges.
So geht das nicht...
D.h. Dein WM_PAINT im Dialog wird ausgeführtund dananch erst der WM_PAINT des static Controls.Zeichne lieber alles selbst.
-
das hatte ich befürchtet
vielen dank trotzdemnoch ne andere frage hätt ich, kann ich die größe von meinem dialog festlegen, das die nicht mit der auflösung des bildschirms skaliert (ich arbeite mit c, nicht c++)?
-
MoveWindow/SetWindowPos