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...


  • Mod

    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


  • Mod

    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 trotzdem

    noch 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++)?


  • Mod

    MoveWindow/SetWindowPos


Anmelden zum Antworten