3 Fragen auf einmal: Dateizugriff, SDI-Dialog-Buttons, Programm-Pfad



  • Hallo an alle MFC-Gurus out there!!!!

    Wie ihr es im Topic schon sehen konntet, habe ich gleich 3 Fragen. Ihr würdet
    mir x-trem weiterhelfen wenn Ihr da ein paar Tipps für mich hättet 😉

    1.) ich will daten in eine Datei speichern, indem ich diese Datei anlege, falls
    noch nicht vorhanden und wenn sie doch existiert, möchte ich die Daten ein-
    fach hinter die schon gespeicherten Daten anhängen.
    Ich hab schon mal was mit CFile::modeNoTruncate und CFile::modeCreate
    rumprobiert, aber es will nicht so richtig, da er immer die vorhandene Datei
    leert.

    2.) Als ich mein Projekt erstellt hab, hab ich es verpennt den "Maximieren"- und
    "Schliessen"- Button oben rechts im Dialog-Kopf zu entfernen oder aber zu
    deaktivieren. Wo kann ich das machen?

    3.) Ich habe im Programmverzeichnis Ordner und Unterordner angelegt, in die ich
    zur Programm-Laufzeit Dateien erstelle. Gibt es da einen Befehl mit dem
    ich rausbekomme, wo sich mein Programm gerade befindet? Die MSDN-Lib
    war da nicht sehr auskunftsfreudig 😕

    Ich weiss, ich strapaziere hier voll euere Nerven, aber ich will den ganzen
    Driss unbedingt lernen.
    Wäre spitzenmässig, falls Ihr da was für mich auf Lager hättet....

    bis denne, vg, Marco!



  • Hi,

    ich bin zwar absolut kein Guru sondern blutiger Anfänger aber ich glaube 2 Fragen kann ich dir beantworten:

    Zu 1: Der modedoNotTruncate reicht nicht aus, Du mußt noch SeekToEnd() benutzen um den Dateizeiger auf das Ende der Datei zu setzen

    Zu 2: Diese Systemenüs kannst du bequem im RessourcenEditor entfernen/huinzufügen. Einfach das Dialogfeld anwählen und bei den Eigschaften unter Styles den Minmize Button bzw. Systemmenü an- oder ausschalten.

    So hoffe das hilft ein bißchen

    Gruß ray



  • hi ray!

    Danke für deine antwort.
    Zu der dateisache werd ich mal versuchen.
    das mit dem max- und schliessen-button geht leider nicht so einfach,
    da ich ein SDI erstellt habe. da muss man sonst irgendwo per hand
    drin rumwurschteln oder die bei initialisierung mit nem Befehl zur not
    deaktivieren.

    ich wünsch dir was,

    vg, marco!



  • Ok, den Punkt2 hab ich gelöst bekommen. habe jetzt keinen Min-Max-Exit-Button mehr
    😋

    BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
    {
    	cs.style = WS_OVERLAPPED | WS_BORDER;
    	if( !CFrameWnd::PreCreateWindow(cs) )
    		return FALSE;
    	// ZU ERLEDIGEN: Ändern Sie hier die Fensterklasse oder das Erscheinungsbild, indem Sie
    	//  CREATESTRUCT cs modifizieren.
    
    	return TRUE;
    }
    


  • Argh, da geht immer noch nicht viel 😡

    aber irgendwie sieht man langsam meine verzweiflung auch am Code *g*

    void CStempeluhrView::OnBwritefile() 
    {
    	// TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
    
    	CFile usr_datei;
    	char char_usr[40];
    	char hilfs_char[40];
    	char hilfs_char2[40000];
    	usr_datei.Open("C:\\Dokumente und Einstellungen\\usr.mfk", CFile::modeRead);
    	CString usr, hilfsstring;
    
    	usr = "Marco\nKlose\n123456U\n";
    	//int stringlaenge = usr.GetLength();
    
    	usr_datei.Read(hilfs_char, sizeof(hilfs_char));
    	usr_datei.Close();
    	hilfsstring = hilfs_char;
    	AfxMessageBox(hilfsstring);
    
    /*	
    	hilfsstring = hilfsstring + usr; 
    	strcpy(hilfs_char2, hilfsstring);
    
    	int stringlaenge = hilfsstring.GetLength();
    
    	CFile usr_datei2("C:\\Dokumente und Einstellungen\\Graf Koks\\Desktop\\Stempeluhr\\Debug\\system\\usr\\usr.mfk", CFile::modeCreate | CFile::modeWrite);
    	usr_datei2.Write(hilfs_char, stringlaenge);
    	usr_datei2.Close();
    */
    
    }
    

Log in to reply