Προς το περιεχόμενο

Μικρή βοήθεια σε C++


captaingr

Προτεινόμενες αναρτήσεις

Δημοσ.

Να είσαι καλά για τη βοήθεια σου.

Το συγκεκριμένο το παλεύω όλη μέρα σήμερα αλλά τίποτα.

Αν δε σου είναι πολύς ο κόπος μπορείς να προτείνεις κάποιο τρόπο με όποιο control θέλεις. Αυτό που με ενδιαφέρει είναι να δημιουργείται ένα αρχείο που να το ανοίγω με το word και να έχει τη μορφή που είχε μέσα στο control ( font, size, colour).

Και πάλι ευχαριστώ πολύ.

Δημοσ.

Μια ύστατη λύση είναι να δημιουργήσεις RTF κείμενο μόνο σου μεταφράζοντας τα attributes του control σου στην ανάλογη σήμανση RTF.

 

Πριν μερικά χρόνια είχα αναγκαστεί να κάνω κάτι τέτοιο, όμως έχει περάσει πολύς καιρός, για περισσότερες πληροφορίες δες στο http://www.microsoft.com/downloads/details.aspx?FamilyId=DD422B8D-FF06-4207-B476-6B5396A18A2B&displaylang=en όπου υπάρχει το νεότερο RTF Specification (1.9)

 

Καλή τύχη.

Δημοσ.

Ευχαριστώ πολύ για τις προτάσεις σας. Θα προσπαθήσω και μακάρι να τα καταφέρω αν και δε το βλέπω. Με έχει ήδη κουράσει αρκετά το συγκεκριμένο θέμα.

Δημοσ.

Θα σου πρότεινα να ψάξεις λίγο για να βρεις κάποιο control για το framework που χρησιμοποιείς, αν δεν θέλεις να αλλάξεις framework. Στην χειρότερη περίπτωση μπορείς να χρησιμοποιήσεις το Rich Edit των windows (τα περισσότερα rich text controls αυτό έχουν απο κάτω). Δεν χρειάζεται τίποτα σπουδαίο για να σώσεις τα περιεχόμενά του σε rtf αρχείο. Ο παρακάτω κώδικας κάνει αυτή τη δουλειά (hRich το handle του Rich Edit, fileName το όνομα του rtf αρχείου)

>
HANDLE hf = CreateFile(fileName, GENERIC_WRITE, 0, 0, 
	CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
EDITSTREAM es;
es.dwCookie = (DWORD_PTR)hf;
es.dwError = 0;
es.pfnCallback = WriteCb;
SendMessage(hRich, EM_STREAMOUT, SF_RTF, (LPARAM)&es);
CloseHandle(hf);

όπου η συνάρτηση που ορίζεται στο pfnCallback είναι

>
DWORD CALLBACK WriteCb(DWORD_PTR handle, LPBYTE buffer, LONG cb, LONG *pcb)
{
WriteFile((HANDLE)handle, buffer, cb, (DWORD*)pcb, 0);
return 0;
}

Δημοσ.
Και κάτι τελευταίο: Μήπως γνωρίζει κανείς πως αποθηκεύουμε σε αρχείο χρωματιστό κείμενο. Χρησιμοποιώ wxDev-cpp και έχω ένα wxRichTextCtrl όπου εμφανίζονται τα αποτελέσματα του προγράμματος με διάφορα χρώματα.

Προσπαθώ να περάσω τα περιεχόμενα του σε ένα αρχείο αλλά μου τα περνάει όλα με μαύρο χρώμα.

 

Πρέπει να χρησιμοποιήσεις τη μέθοδο wxRichTextFileHandler::SaveFile:

http://www.lpthe.jussieu.fr/~zeitlin/wxWindows/docs/wxwin_wxrichtextfilehandler.html#wxrichtextfilehandlersavefile

 

Προφανώς για το διάβασμα των χρωμάτων στη συνέχεια θα πρέπει να χρησιμοποιήσεις τη LoadFile. Εννοείται ότι δεν μπορείς να ανοίξεις το αρχείο π.χ. με το Word, πρέπει να το ανοίξεις πάλι μέσα από το πρόγραμμά σου.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...