Veröffentlicht 24. Februar 200520 j Ich möchte auf einem Dialog ein BMP-Bild (256 Farbe) als Hintergrund darstellen. Ich habe folgenden Code ausprobiert, ohne Erfolg. CWnd* pWnd = GetDlgItem (IDD_DIALOG); CPaintDC dc(pWnd); CDC pControlDC; CBitmap bit; bit.LoadBitmap(IDB_HINTERGRUND); pControlDC.CreateCompatibleDC(&dc); pControlDC.SelectObject(&bit); dc.BitBlt(0,0,100,50,&pControlDC,0,0,SRCCOPY); Was ist daran falsch? Der Compiler meldet keinen Fehler. Die Anwendung auf dem PocketPC zeigt aber kein Bild.
24. Februar 200520 j Wo (in welcher Funktion) steht dieser Code? Was liefern LoadBitmap und BitBlt zurück?
25. Februar 200520 j Diesen Code habe ich in OnInitDialog() eingefügt. Den Code selbst habe ich aus irgend einem Buch entnommen. Weiß nicht mehr welches. Mehr kann ich dazu nicht sagen. Aber wenn es andere Möglichkeiten gibt werden ich auch glücklich sein .
25. Februar 200520 j Die MSDN Library sagt zu CPaintDC:A CPaintDC object can only be used when responding to a WM_PAINT message, usually in your OnPaint message-handler method. Das ganze muss also in OnPaint stehen. Was ist IDD_DIALOG? Und nochmal: Prüf die Rückgabewerte der Funktionen! Was liefern GetDlgItem, LoadBitmap und BitBlt zurück? Das sind die absoluten Grundlagen der Fehlersuche.
27. Februar 200520 j Ich habs ausprobiert. Wie du schon sagtest muss folgender Code in WM_PAINT Funktion stehen: CDC pControlDC; CBitmap bit; bit.LoadBitmap(IDB_HINTERGRUNDBILD); pControlDC.CreateCompatibleDC(&dc); pControlDC.SelectObject(&bit); dc.BitBlt(0,0,200,100,&pControlDC,0,0,SRCCOPY); Dann wird es funktionieren!
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.