Datei öffnen/speichern... Pfad?



  • Hallo!
    Ich checks leider nich ganz, wo kann ich den Pfad eingeben, mit welchem ich damit beim Dialogfeld starte? wenn ich in die CString-Variable m_sBitmap einen Pfad reinschreibe, gehts gar nimmer. Und wie kann ich einn relativen Pfad angeben, z.b. relativ zur ausführenden *.exe? nein, die msdn hat mir leider nicht weitergeholfen 🙂 danke, aber !

    void CBitmap1Dlg::OnBopenfile() 
    {
    	// TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
    	static char BASED_CODE szFilter[]="Bitmap (*.bmp) |*.bmp||" ; // DateiFilter
    	CFileDialog m_ldFile(TRUE, ".bmp", m_sBitmap, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, szFilter); // Dia erzeugen
    	if (m_ldFile.DoModal()==IDOK) 
    	{
    		m_sBitmap=m_ldFile.GetPathName(); // ganzer Dateiname incl. Pfad
    		m_sFilename=m_sBitmap;
    		UpdateData(FALSE);
    	}
    }
    


  • Deine Variablenbennenung ist schwachsinnig 😃

    Du scheinst net richtig geguckt zu haben:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/commondialogboxlibrary/commondialogboxreference/commondialogboxstructures/openfilename.asp

    Darauf kannst du zugreifen wenn du auf de Public Membervariable von CFileDlg m_ofn zugreiffst 😉



  • ja, jetz gehts...meingott, das m_ofn hab ich völlig übersehn 🙄

    also es sieht so aus:

    void CBitmap1Dlg::OnBopenfile() 
    {
    	// TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
    	static char BASED_CODE szFilter[]="Bitmap (*.bmp) |*.bmp||" ; // DateiFilter
    	CFileDialog m_ldFile(TRUE, ".bmp", m_sBitmap, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, szFilter); // Dia erzeugen
    	m_ldFile.m_ofn.lpstrInitialDir="C:\\Programme"; // Default-Pfad
    	if (m_ldFile.DoModal()==IDOK) 
    	{
    		m_sBitmap=m_ldFile.GetPathName(); // ganzer Dateiname incl. Pfad
    		m_sFilename=m_sBitmap;
    		UpdateData(FALSE);
    		HBITMAP hBitmap = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), m_sBitmap, IMAGE_BITMAP, 0 ,0, LR_LOADFROMFILE | LR_CREATEDIBSECTION);
    		if (hBitmap) // Handle gültig?
    		{
    			if (m_bmpBitmap.DeleteObject()) // war Bitmap vorhanden?
    			m_bmpBitmap.Detach(); // Bitmap lösen
    			m_bmpBitmap.Attach(hBitmap); // aktuelle Bitmap mit Bitmap-Objekt verbinden
    			m_dOutput.Invalidate();	// Fester neuzeichnen
    
    		} 
    	}
    }
    

    aber wieso sind meine variablen-benennungen schwachsinnig? 😕


  • Mod

    spru schrieb:

    aber wieso sind meine variablen-benennungen schwachsinnig? 😕

    Variablen auf dem Stack versicht man nicht mit dem Prefix m_ der für Memeber Variablen verwendet wird. Ich vermute das war gemeint.


Anmelden zum Antworten