Dialog: Bitmap



  • hallo,
    ich habe mal ein paar fragen.
    1. wenn ich im dialog-editor eine bitmap einfügen, kann ich unter
    eigenschaften/abbild die id der anzuzeigenden bitmap eingeben,
    (am besten wäre wenn man keine id sondern nur den pfad eingeben könnte)
    doch wie kann ich nun während der laufzeit eine andere bitmap darin
    anzeigen?
    (in der faq steht ein beitrag dazu, doch dort muss ich den
    genauen pfad eingeben, ich will aber eigentlich nur den bitmapnamen
    eingeben müssen, da sich die bitmap im selben verzeichnis befindet wie die exe)

    2. wie kann ich mit den mfc dateien wortweise einlesen?
    3. wie kann ihc mit den mfc dateien zeilenweise einlesen?

    Tschau Gartenzwerg



  • Also, ich habe es so gemacht:

    CFileDialog dlg(TRUE, 
                ".bmp", 
                NULL,
                OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, 
                szFilter);
        //
        dlg.m_ofn.lpstrTitle="Logo-Datei öffnen";
        m_strLogodatei = "";
        if (dlg.DoModal()!=IDOK)
        {
            return;
        }
        m_strLogodatei = dlg.GetPathName();
        hBitmap = (HBITMAP) ::LoadImage(
                                   AfxGetInstanceHandle(),
                       m_strLogodatei, //DateiName deines Bildes
                       IMAGE_BITMAP, 
                    0, 
                    0,
                    LR_LOADFROMFILE|LR_CREATEDIBSECTION);
    

    und dann in der OnPaint:

    if (IsIconic())
        {
        }
        else
        {
                if (m_strLogodatei != "")
                {
                HDC hMemDC = CreateCompatibleDC(NULL);
                SelectObject(hMemDC, hBitmap);
                ::StretchBlt(   dc.m_hDC,   //Ziel
                        m_bildpos.left+4,//links oben
                        m_bildpos.top,                          m_bildpos.Width()
                                            .....
                        hMemDC,     //Quelle
                        0,
                        0,
                        m_bmpheader.biWidth,//Breite
                        m_bmpheader.biHeight,//Höhe
                        SRCCOPY);   //Modus
                ::DeleteDC(hMemDC);
                ::DeleteObject(hBitmap);
                CDialog::OnPaint();
            }
        }
    

    Gruß
    Russak


Anmelden zum Antworten