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