Bitmap nur einmal zu öffnen
-
Ich habe ein kleines Program geschrieben, welches Bitmaps öffnen können soll und auch anzeigen. Das klappt auch, nur sobald ich ein neues Bitmap öffnen will und das Programm noch nicht beendet ist, bricht dieses ab.
Code zum öffnen des Bitmaps:
void CMissionsmakerDlg::OnOpen() { // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen CString lpszFileName; CFile f; CFileException e; static char BASED_CODE szFilter[] = "Bitmap-Dateien (*.bmp)|*.bmp||"; CFileDialog ldBitmap(TRUE, ".bmp", "Landscape.bmp", OFN_READONLY, szFilter); int result = ldBitmap.DoModal(); if (result == IDOK) { m_dlgLandscape.Create(IDD_LANDSCAPE, NULL); m_dlgLandscape.ShowWindow(SW_SHOW); lpszFileName = ldBitmap.GetFileName(); HBITMAP hBitmap = (HBITMAP) ::LoadImage(AfxGetInstanceHandle(), lpszFileName, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION); m_dlgLandscape.SetLandscape(hBitmap); } }
Code zum Anzeigen des Bitmaps:
void CLandscapeDlg::SetLandscape(HBITMAP hBitmap) { m_bmpLandscape.SetBitmap(hBitmap); }
Hat jemand eine Idee, warum das Programm immer bei dem 2. Bitmap abstürzt?
Wenn noch was unklar ist bitte fragen.
MFG
Compufreak
-
Du solltest vielleicht nicht bei jedem "Öffnen" eines Bitmaps ein Create des Dialogs "m_dlgLandscape" ausführen.
Beim 2ten Bitmaps reichts es ja die Funktion SetLandscape(..) aufzurufen.Ciao charlie
-
Danke charlie-ux dein Tip hat funktioniert.
Ich habe jetzt die erschaffung des Dialogs in die OnInitDialog()-Methode des Hauptdialogs gepackt.
Danke nochmal.MfG
Compufreak