# Bild in Dialog einfügen



## gisi (14. Juli 2005)

Ich brauche Hilfe,

ich versuche schon längere Zeit ein Bild in einen Dialog einzufügen, der Versuch ist, bis jetzt, allerdings kläglich gescheitert
Vielleicht weis jemand von euch ein Tutorial!!

lg gisi


----------



## Tobias K. (14. Juli 2005)

moin


Bitte nciht soviele Informationen......

Mit oder ohne MFC?
Windows oder Linux?


mfg
umbrasaxum


----------



## gisi (14. Juli 2005)

sorry,

mit MFC --> Windows 
Visual Studio 2003 .NET

lg


----------



## Endurion (14. Juli 2005)

Die einfachste Variante ist:

A) eine Bitmap in die Ressourcen einfügen (Ressource hinzufügen)
B) dem Dialog im Dialogeditor ein Picture Control (was auch nur ein Static ist) hinzufügen
C) in den Eigenschaften des Picture Controls das Property Bild auf die Ressource-ID deiner Bitmap setzen


----------



## maexle1894 (30. Mai 2006)

Hi,
klappt das auch, wenn man das Projekt in C geschrieben hat? Bei mir wird die Bitmap nämlich nur im Editor angezeigt. Nach dem compilieren is sie weg...


----------



## Endurion (31. Mai 2006)

Die Win32-Api ist auch reines C, das sollte problemlos klappen.

Prüf mal, ob das .rc-File auch tatsächlich in deinem Projekt eingebunden ist (kommt vor). Wenn ja, dann besorg dir mal den ResourceHacker (Freeware), damit kannst du prüfen, ob die Bitmap in deinen Resourcen enthalten ist.


----------



## maexle1894 (1. Juni 2006)

Hi Endurion,
endlich mal eine Antwort, danke!

Das habe ich beides schon gemacht. Die Bitmap ist laut ResHack eingebunden, es kommt zwar eine AccessViolation, die kommt jedoch auch beim Dialog...

Ich weiß echt nicht, an was das noch liegen könnte...


----------



## frager (1. Juni 2006)

Schau, ob du der Name der Bilddatei in Resource.h mit dem im .rc File uebereinstimmt. Ich habe mal so einen Fall gehabt:

Resources.h:
#define IDB_M*EI*NBILD 100

Resources.rc
IDB_M*IE*NBILD BITMAP "bla.bmp"

Der Compiler sagt in dem Fall auch nix..


----------



## Xodery (29. August 2006)

Hi!
Und mit welchem Quellcode fügt man dann das Bild z.b. in ein Fenster oder eine Dialogbox ein?

Xodery


----------



## wieschoo (30. August 2006)

Ich code zwar nur mit reinen API, (schließlich soll man keine Klassen verwenden, die schlecht implentiert sind).

die resource-datei (rc)

```
ID_BITMAP1 BITMAP "schloss.bmp"
CONTROL "Picture0",IDM_LOCK,"STATIC",SS_BITMAP |WS_CHILD |WS_VISIBLE ,7,9,48,48
```

die cpp -Datei

```
case WM_PAINT:
hbit = GetDlgItem(hDlg,IDM_LOCK);
HDC hDC, MemDCExercising,hdia;
    PAINTSTRUCT Ps;
    HBITMAP bmpExercising;
hDC = BeginPaint(hbit, &Ps);

        // Load the bitmap from the resource
        bmpExercising = LoadBitmap( MyInstance, MAKEINTRESOURCE(1000));
        // Create a memory device compatible with the above DC variable
        MemDCExercising = CreateCompatibleDC(hDC);
             // Select the new bitmap
             SelectObject(MemDCExercising, bmpExercising);

        // Copy the bits from the memory DC into the current dc
        BitBlt(hDC, 10, 10, 450, 400, MemDCExercising, 0, 0, SRCCOPY);

        // Restore the old bitmap
        DeleteDC(MemDCExercising);
        DeleteObject(bmpExercising);
        EndPaint(hbit, &Ps);
```

Achja IDM_LOCK müsstest du als Konstante sowohl in der Resourcedatei als auch in der CPP-Datei definieren. Oder schreibst extra einen Resourceheader.


----------

