Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Sdi mit Hintergrundgrafik

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
18.09.2002, 13:40 Uhr
JWA



Hallo, ich habe mit dem Wizard eine SDI-Application erstellen lassen.

Wie bekomme ich denn jetzt in das Hauptfenster eine Hintergrundgrafik rein (am Besten ne GIF) ??

Jürgen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.09.2002, 18:26 Uhr
Lord Hessia



Mit CWinApp::SetDialogBkColor setzt Du die Hintergrundfarbe, aber wie man ein Hintergrundbild anzeigt, könnte ich Dir lediglich für Dialoge sagen.

Gifs anzuzeigen ist sowieso um einiges schwieriger als Bitmaps, da nicht direkt von MFC unterstützt.
--
_____________________________________

Brandy Alexander: 3cl Creme de Cacao, 3cl Cognac, 6cl Sahne im Shaker, nur perfekt mit einer Prise Muskatnuss

Prost!!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.09.2002, 19:07 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo Jürgen,

C++:
void CBitBkView::OnDraw(CDC* pDC)
{
    CBitBkDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    CBitmap bitmap;
    bitmap.LoadBitmap(IDB_BITMAP1);

    BITMAP bm;
    bitmap.GetObject(sizeof(bm),&bm);
    CDC memDC;
    memDC.CreateCompatibleDC(pDC);
    memDC.SelectObject(&bitmap);
    RECT rect;
    GetClientRect(&rect);
    pDC->StretchBlt(0,0,rect.right-rect.left,rect.bottom-rect.top,
        &memDC,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
}

Ein Gif File zu laden geht zwar, ist aber einiges an Aufwand
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
18.09.2002, 19:45 Uhr
JWA



Also ich weiss nicht,

in meiner vom Visual Studio generierten Anmednung gibt es in CChildView keine OnDraw()-Funktion. Ich habe lediglich eine OnPaint().

Und so wie das aussieht, versucht das Ding die Bitmap aus den Ressourcen zu laden. Ich bräuchte das aber aus einem File.

Ich habe bereits erfolgreich GIFs mit der CPictureEx-Klasse eingebunden, aber nur in Dialogen.

Jürgen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
18.09.2002, 20:20 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,

Zitat:
JWA postete
Also ich weiss nicht,

in meiner vom Visual Studio generierten Anmednung gibt es in CChildView keine OnDraw()-Funktion. Ich habe lediglich eine OnPaint().


Dann schreib genau was für ein Projekt Du angelegt hast. Meine Glaskugel hab ich heute nicht dabei.
(was spricht dagegen sich mit CPaintDC oder GetDC() einen passenden Gerätekontext zu holen?)
EOF
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 18.09.2002 um 20:35 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
19.09.2002, 15:12 Uhr
JWA



Ich hab jetzt mal einfach die Routinen in die OnPaint-Funktion eingebaut und siehe da, das Bitmap wird angezeigt.

Ich musste nur die Geschichte mit dem GetDocument() weglassen.

Eigentlich hatte ich beim Erzeugen des Projektes SDI angewählt. Keine Ahnung, warum die OnDraw()-Funktion nicht dabei ist.

Egal, jetzt wird mir die Bitmap angezeigt, die ich im RC-File aufgenommen habe.

Jetzt muss ich nur noch irgendwie hinkriegen, dass die erst zur Laufzeit aus ner Datei gelesen wird und evtl sogar noch als GIF.


Jürgen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
19.09.2002, 23:33 Uhr
Lord Hessia



So lädts Du ein Bild von der Festplatte:
HBITMAP h_w1;
CString DeinBild = "C:\\Eigene Dateien\\Eigene Bilder\\bild1.bmp";

h_w1 =(HBITMAP)::LoadImage(AfxGetInstanceHandle(), DeinBild, IMAGE_BITMAP, 200, 200, LR_LOADFROMFILE | LR_CREATEDIBSECTION); // die 200er sind Breite und Höhe

Und so zeigst Du's an:
m_Bild.SetBitmap(h_w1); // m_Bild ist die Control-Variable des Picture Elements


Wie das jetzt genau in Deinen Code eingebaut wird, musst Du schon selbst sehen, da ich gerade nicht mit Zeit gesegnet bin :-)
--
_____________________________________

Brandy Alexander: 3cl Creme de Cacao, 3cl Cognac, 6cl Sahne im Shaker, nur perfekt mit einer Prise Muskatnuss

Prost!!!

Dieser Post wurde am 19.09.2002 um 23:34 Uhr von Lord Hessia editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: