captaingr Δημοσ. 7 Αυγούστου 2007 Μέλος Δημοσ. 7 Αυγούστου 2007 Να είσαι καλά για τη βοήθεια σου. Το συγκεκριμένο το παλεύω όλη μέρα σήμερα αλλά τίποτα. Αν δε σου είναι πολύς ο κόπος μπορείς να προτείνεις κάποιο τρόπο με όποιο control θέλεις. Αυτό που με ενδιαφέρει είναι να δημιουργείται ένα αρχείο που να το ανοίγω με το word και να έχει τη μορφή που είχε μέσα στο control ( font, size, colour). Και πάλι ευχαριστώ πολύ.
bilco Δημοσ. 7 Αυγούστου 2007 Δημοσ. 7 Αυγούστου 2007 Ο πιο εύκολος τρόπος είναι με το RichTextBox του .NET framework.
Directx Δημοσ. 8 Αυγούστου 2007 Δημοσ. 8 Αυγούστου 2007 Μια ύστατη λύση είναι να δημιουργήσεις RTF κείμενο μόνο σου μεταφράζοντας τα attributes του control σου στην ανάλογη σήμανση RTF. Πριν μερικά χρόνια είχα αναγκαστεί να κάνω κάτι τέτοιο, όμως έχει περάσει πολύς καιρός, για περισσότερες πληροφορίες δες στο http://www.microsoft.com/downloads/details.aspx?FamilyId=DD422B8D-FF06-4207-B476-6B5396A18A2B&displaylang=en όπου υπάρχει το νεότερο RTF Specification (1.9) Καλή τύχη.
captaingr Δημοσ. 8 Αυγούστου 2007 Μέλος Δημοσ. 8 Αυγούστου 2007 Ευχαριστώ πολύ για τις προτάσεις σας. Θα προσπαθήσω και μακάρι να τα καταφέρω αν και δε το βλέπω. Με έχει ήδη κουράσει αρκετά το συγκεκριμένο θέμα.
bilco Δημοσ. 8 Αυγούστου 2007 Δημοσ. 8 Αυγούστου 2007 Θα σου πρότεινα να ψάξεις λίγο για να βρεις κάποιο 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; }
alkisg Δημοσ. 8 Αυγούστου 2007 Δημοσ. 8 Αυγούστου 2007 Και κάτι τελευταίο: Μήπως γνωρίζει κανείς πως αποθηκεύουμε σε αρχείο χρωματιστό κείμενο. Χρησιμοποιώ wxDev-cpp και έχω ένα wxRichTextCtrl όπου εμφανίζονται τα αποτελέσματα του προγράμματος με διάφορα χρώματα.Προσπαθώ να περάσω τα περιεχόμενα του σε ένα αρχείο αλλά μου τα περνάει όλα με μαύρο χρώμα. Πρέπει να χρησιμοποιήσεις τη μέθοδο wxRichTextFileHandler::SaveFile: http://www.lpthe.jussieu.fr/~zeitlin/wxWindows/docs/wxwin_wxrichtextfilehandler.html#wxrichtextfilehandlersavefile Προφανώς για το διάβασμα των χρωμάτων στη συνέχεια θα πρέπει να χρησιμοποιήσεις τη LoadFile. Εννοείται ότι δεν μπορείς να ανοίξεις το αρχείο π.χ. με το Word, πρέπει να το ανοίξεις πάλι μέσα από το πρόγραμμά σου.
bilco Δημοσ. 8 Αυγούστου 2007 Δημοσ. 8 Αυγούστου 2007 Εννοείται ότι δεν μπορείς να ανοίξεις το αρχείο π.χ. με το Word Αυτό θέλει να κάνει
alkisg Δημοσ. 8 Αυγούστου 2007 Δημοσ. 8 Αυγούστου 2007 Sorry, λάθος κατάλαβα. edit: αρκεί να περάσεις την παράμετρο wxRICHTEXT_TYPE_RTF κατά την SaveFile.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.