Detaillierte Anweisungen zur Verwendung der TAB-Steuerung von MFC
Die Verwendung der Tab-Steuerung zum Umschalten zwischen verschiedenen Schnittstellen in MFC ist für Anfänger etwas schwierig. Ich habe einen Tag lang studiert. Im Folgenden werden die aufgetretenen Probleme und die Schritte im Detail vorgestellt.
1.1 Erstellen Sie eine MFC-Dialogfeldanwendung, ziehen Sie das Steuerelement für die Registerkartensteuerung in das Dialogfeld. Der Effekt ist wie folgt:
Hinweis: Die Registerkartenbeschriftung muss maximal nach oben, unten, links und rechts gestreckt werden, da die nachfolgenden Ansichten darauf gezeichnet werden müssen. . .
2. Deklarieren Sie in der Header-Datei der Dialogfeldklasse eine CTabCtrl-Variable:
CTabCtrl m_tab;
Die Variable m_tab wird verwendet, um mit dem Tab Control-Steuerelement im Dialogfeld zu interagieren.
void CMFCApplication2Dlg :: DoDataExchange ( CDataExchange * pDX ) (um eine eigene Generation und kein eigenes System einzurichten)
Fügen Sie der Funktion die Anweisung DDX_Control hinzu:
DDX_Control (pDX, IDC_TAB1, m_tab); Hinweis: IDC_TAB1 ist die ID des Registersteuerelements
3. Fügen Sie zwei Dialogfelder in die Ressource als Schnittstelle für das Umschalten der Registersteuerung ein. Anschließend müssen Sie die Border-Eigenschaft dieser beiden Dialogfelder auf None und Style auf Child setzen. Der Effekt nach dem Einstellen ist in der folgenden Abbildung dargestellt:
4. Erstellen Sie zwei Klassen für die beiden erstellten Dialogfelder, z. B. CTestDlg1 und CTestDlg2. Die Methode zum Hinzufügen einer Klasse: Klicken Sie mit der rechten Maustaste auf die Dialogoberfläche und wählen Sie im Popup-Feld Klasse hinzufügen aus.
5. Fügen Sie in der Kopfdatei des Dialogfelds, in dem sich das Steuerelement für die Registerkartensteuerung befindet, den folgenden Inhalt hinzu und fügen Sie zwei Kopfdateien hinzu, um die Seite zu vergrößern:
CTestDlg1 m_page1;
CTestDlg2 m_page2;
CDialog * pDialog [2];
6. In der Initialisierungsfunktion der Dialogfeldklasse müssen Sie CTestDlg1, CTestDlg2 und Tab Control zuordnen, die Seitenadresse speichern, die Startseite festlegen und den folgenden Implementierungscode in OnInitDialog () hinzufügen:
m_tab.InsertItem (0, _T ( "Test 1" )); m_tab.InsertItem (1, _T ( "Test 2" )); m_tab.InsertItem (2, _T ( "Test 3" )); // Zwei Dialoge erstellen m_page1.Create ( IDD_DIALOG1 , & m_tab); m_page2.Create ( IDD_DIALOG2 , & m_tab); m_page3.Create ( IDD_DIALOG3 , & m_tab); // Legen Sie den in der Registerkarte CRect rc; m_tab.GetClientRect (rc) + rc angezeigten Bereich fest = 20; rc.bottom - = 0; rc.left + = 0; rc.right - = 0; m_page1.MoveWindow (& rc); m_page2.MoveWindow (& rc); m_page3.MoveWindow (& rc); // Den Dialogobjektzeiger speichern pDialog [0] = & m_page1; pDialog [1] = & m_page2; pDialog [2] = & m_page3; // Die erste Seite anzeigen pDialog [0] -> ShowWindow ( SW_SHOW ); pDialog [1] - > ShowWindow ( SW_HIDE ); pDialog [2] -> ShowWindow ( SW_HIDE ); // Aktuelle Auswahl speichern m_CurSelTab = 0;
8. Fügen Sie einen Nachrichtenhandler für das Tab-Steuerelement hinzu, doppelklicken Sie auf das Tab-Steuerelement und geben Sie automatisch den Code für den Nachrichtenhandler ein:
pDialog [m_CurSelTab] -> ShowWindow ( SW_HIDE ); // Neuen Seitenindex abrufen m_CurSelTab = m_tab.GetCurSel (); // Neue Seite anzeigen pDialog [m_CurSelTab] -> ShowWindow ( SW_SHOW ); * pResult = 0;