Τρόπος χρήσης της κλάσης CFormView στη διασύνδεση ενός εγγράφου (SDI) και πολλές εφαρμογές διασύνδεσης (MDI) του εγγράφου

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 98598 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

ΣημείωσηMicrosoft Visual C++.NET (2002) υποστηρίζει τόσο ο διαχειριζόμενος κώδικας υπόδειγμα που παρέχεται από τη Microsoft.NET Framework και η μη διαχειριζόμενη εγγενής Μοντέλο κώδικα Microsoft Windows. Οι πληροφορίες σε αυτό το άρθρο ισχύει μόνο για μη διαχειριζόμενο κώδικα Visual C++.

ΣημείωσηMicrosoft Visual C++ 2005 υποστηρίζει τόσο ο διαχειριζόμενος κώδικας υπόδειγμα που παρέχεται από τη Microsoft.NET Framework και η μη διαχειριζόμενη εγγενής Μοντέλο κώδικα Microsoft Windows.

Περίληψη

Η κλάση CFormView παρέχει μια εύχρηστη μέθοδο για να τοποθετήσετε τα στοιχεία ελέγχου σε μια προβολή η οποία βασίζεται σε ένα πρότυπο του πλαισίου διαλόγου. Το γενικό Για να χρησιμοποιήσετε μια CFormView διαδικασία περιγράφεται στην τεκμηρίωση για την κλάση και απεικονίζεται στις αιτήσεις δείγματος VIEWEX και CHKBOOK που παρέχεται με 2.X εκδόσεις MFC (Microsoft Foundation κλάσεις) και άνω. Ωστόσο, αυτές εφαρμογές αποδεικνύουν την πραγματοποίηση το αρχικό μέγεθος του παραθύρου του πλαισίου για να είναι το ίδιο με το αρχικό μέγεθος της φόρμας.

Η ακόλουθη ενότητα Παραθέτει τα βήματα που απαιτούνται για να υποστηρίζει τη δημιουργία μια διασύνδεση ενός εγγράφου (SDI) ή πολλαπλή εφαρμογή διασύνδεσης (MDI) έγγραφο με βάση ένα CFormView, μεγέθους το παράθυρο αρχικό πλαίσιο γύρω από τη φόρμα, αλλάζοντας το στυλ του πλαισίου, και κλείνοντας ένα έγγραφο MDI χρησιμοποιώντας το κουμπί της φόρμας.

Περισσότερες πληροφορίες

Τα παρακάτω βήματα περιγράφουν τον τρόπο δημιουργίας ενός AppWizard MFC η εφαρμογή χρησιμοποιεί το CFormView ως προεπιλεγμένη προβολή:
  1. Χρησιμοποιήστε το AppWizard για να δημιουργήσετε ένα SDI ή MDI εφαρμογή. Αυτό εισάγει ένα πρότυπο πλαίσιο διαλόγου με το σωστό στυλ για αρχείο πόρων του έργου σας.

    Visual Studio 6.0:

    Στο βήμα 6 από την AppWizard, επιλέξτε την κλάση προβολή. Με τοΒασική κλάσησύνθετο πλαίσιο, επιλογήCFormViewΓια να καθορίσετεCFormViewως βασική κλάση.

    Visual Studio.NET ή Visual Studio 2005:

    Στο βήμα 1 από το AppWizard, επιλέξτεΟι κλάσεις που δημιουργούνται. Με τοΒασική κλάσησύνθετο πλαίσιο, επιλογήCFormViewΓια να καθορίσετεCFormViewως βασική κλάση.
  2. Παράκαμψη της συνάρτησης μέλος OnUpdate() και την κλήση UpdateData(), όπως τεκμηριώνεται στην τεκμηρίωση του CFormView για να ενημερώσετε το μέλος μεταβλητές με τα τρέχοντα δεδομένα στο έγγραφο και να εκτελέσετε την ανταλλαγή δεδομένων διαλόγου (DDX).

    ΣΗΜΕΊΩΣΗ: UpdateData δεν είναι εικονική και εξασφαλίζει την κλήση της βασικής κλάσης ότι η παραγόμενη κλάση DoDataExchange ονομάζεται μέσω τυπικών πολυμορφισμού. Τα κράτη μέλη τεκμηρίωση CFormView για την κλήση, παρακάμπτει UpdateData.
  3. Εάν θέλετε να ρυθμίσετε το αρχικό μέγεθος της προβολής φόρμας, Παράκαμψη της συνάρτησης OnInitialUpdate(). Το παρακάτω κείμενο παρέχει πρόσθετες πληροφορίες σχετικά με αυτό το βήμα, ελαφρώς διαφορετική SDI ή MDI εφαρμογή.

Αλλαγή του μεγέθους ενός πλαισίου SDI Main γύρω από ένα CFormView

Για να αλλάξετε το μέγεθος του κύριου πλαισίου SDI αίτησης (δηλαδή χρησιμοποιεί CFormView με την κλάση προβολή) είναι το κατάλληλο μέγεθος για τη φόρμα που έχει σχεδιαστεί στο App Studio, παρακάμπτουν τη συνάρτηση OnInitialUpdate() στην κλάση σας προέρχεται από CFormView, ως εξής:
      void CMyFormView::OnInitialUpdate()
      {
         CFormView::OnInitialUpdate();
         GetParentFrame()->RecalcLayout();
         ResizeParentToFit(); // default argument is TRUE
      }
				
Η συνάρτηση ResizeParentToFit() δεν εμποδίζει τη φόρμα από Αλλαγή μεγέθους, όταν ο χρήστης αλλάζει το μέγεθος του κύριου πλαισίου εφαρμογής (γραμμές κύλισης προστίθενται αυτόματα εάν χρειάζεται). Για να τροποποιήσετε το στυλ του παράθυρο καρέ που είναι ο γονέας σε προβολή φόρμας, μπορείτε να παρακάμψετε το Η συνάρτηση PreCreateWindow() στην κλάση CMainFrame που δημιουργήθηκε από AppWizard. Για παράδειγμα, για να καταργήσετε το στυλ WS_THICKFRAME και να αποτρέψετε την αλλαγή του χρήστη το μέγεθος του παραθύρου, η δήλωση PreCreateWindow() σε MAINFRM.H και προσθέστε το παρακάτω κώδικα στο MAINFRM.CPP:
      BOOL CMainFrame::PreCreateWindow(CREATESTRUCT &cs)
      {
         cs.style &= ~WS_THICKFRAME;
         return CFrameWnd::PreCreateWindow(cs);
      }
				

Αλλαγή του μεγέθους ενός MDI θυγατρικό πλαίσιο γύρω από ένα CFormView

Είναι παρόμοια με τη διαδικασία αλλαγής του μεγέθους της ένα θυγατρικό πλαίσιο MDI Για να αλλάξετε το μέγεθος ενός κύριου πλαισίου για μια εφαρμογή SDI, όπως εξηγείται παραπάνω. Ωστόσο, η κλήση RecalcLayout() δεν είναι απαραίτητη.

Για να αλλάξετε το μέγεθος ενός πλαισίου παιδί MDI γύρω από την προβολή φόρμας, παρακάμπτουν τα Η συνάρτηση OnInitialUpdate() στην κλάση σας προέρχεται από CFormView ως εξής:
      void CMDIFormView::OnInitialUpdate()
      {
         CFormView::OnInitialUpdate();
         ResizeParentToFit(); // Default argument is TRUE.
      }
				
Εάν η εφαρμογή παρακάμπτει το προεπιλεγμένο όρισμα του Συνάρτηση ResizeParentToFit(), ουσιαστικά τις ίδιες συνέπειες που προκύπτουν για ένα Εφαρμογή SDI, όπως εξηγείται ανωτέρω. Επιπλέον, το εξαρτημένο παράθυρο είναι πολύ μεγάλη για το κύριο πλαίσιο ενσωμάτωσης MDI ή για ολόκληρη την οθόνη.

Για να Για να αλλάξετε το στυλ του πλαισίου παιδί MDI (για παράδειγμα, για να καταργήσετε το WS_THICKFRAME στυλ, ώστε ο χρήστης δεν μπορεί να αλλάξει το μέγεθος του παραθύρου), δημιουργία μια κλάση παραθύρου MDI παιδί και παράκαμψη του PreCreateWindow λειτουργεί ως αποδεικνύεται στο παραπάνω παράδειγμα SDI.

Κλείσετε μια φόρμα MDI με ένα κουμπί

Για να δημιουργήσετε ένα κουμπί σε μια φόρμα που κλείνει το έγγραφο προσθέστε ένα Χειρισμός μηνυμάτων για το μήνυμα BN_CLICKED στην κλάση CFormView. Βεβαιωθείτε ότι ότι τα κουμπιά στην CFormView δεν έχουν την προεπιλεγμένη IDOK ή IDCANCEL αναγνωριστικά. Εάν Ναι, τότε εσφαλμένες καταχωρήσεις στο χάρτη μήνυμα και θα δημιουργηθούν εσφαλμένες λειτουργίες των κουμπιών.

Μία φορά το το πρόγραμμα διαχείρισης μηνυμάτων είναι σε θέση, μπορείτε να προσομοιώσετε την εντολή "Κλείσιμο" στο αρχείο μενού με τον ακόλουθο κώδικα:
      void CMyForm::OnClickedButton1()
      {
         PostMessage(WM_COMMAND, ID_FILE_CLOSE);
      }
				
Αυτή η μέθοδος για να κλείσετε μια φόρμα, ζητά από το χρήστη για να αποθηκεύσετε το αρχείο, εάν το IsModified() μέλος λειτουργία που σχετίζεται με το έγγραφο επιστρέφει την τιμή TRUE.

Ιδιότητες

Αναγν. άρθρου: 98598 - Τελευταία αναθεώρηση: Πέμπτη, 27 Ιανουαρίου 2011 - Αναθεώρηση: 2.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Foundation Class Library 4.2 στις ακόλουθες πλατφόρμες
    • Microsoft Visual C++ 1.0 Professional Edition
    • Microsoft Visual C++ 1.52 Professional Edition
    • Microsoft Visual C++ 2.1
    • Microsoft Visual C++ .NET 2003 Standard Edition
    • Microsoft Visual C++ .NET 2002 Standard Edition
    • Microsoft Visual C++ 2005 Express Edition
Λέξεις-κλειδιά: 
kbdocview kbhowto kbmdi kbuidesign kbmt KB98598 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:98598

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com