CView an CTabCtrl

chuqa

Grünschnabel
Hallo allerseits,

bin ein wenig am verzweifeln. Ich versuche ein CView oder was auch immer einem CTabCtrl zuzuweisen. Habe eine MFC-SDI-Anwendung angelegt. Die folgende 4 generierte Klassen besitzt:

CTestApp:CWinApp
CTestDoc:CDocument
CTestView:CView
CMainFrame:CFrameWnd

Nun möchte ich ein neuen View oder eine andere brauchbare Klasse (sehe da noch nicht so richtig durch) anlegen:

CMyView:CView

Diese Klasse soll verschiedene Steuerelemente wie CEdit, CButton, usw. enthalten. Dieser View soll dann einer CTabCtrl zugeordnet werden. Das CTabCtrl habe ich in der CTestView angelegt. Wie weise ich den MyView einem Tab zu und welche Funktionen müssen in die CMyView-Klasse rein, damit ich das alles schön angezeigt bekomme, und damit arbeiten kann?

gruß chuqa
 
Hallo,

ich weiß nicht, wie du die CTabCtrl-Klasse angelegt hast. Aber der Begriff sagt ja schon (wenn du nicht den Begriff zweckentfremdet hast), dass es sich hier um ein TabCtrl handelt.
Nach dem, was du schreibst, soll das wohl ein Dialog werden. Dazu müßtest du im Ressourcen-Editor einen Dialog mit den entsprechenden Steuerelementen bauen und diesem dann eine Klasse zuordnen, z.B. CMyDialog und den Steuerelementen Variable zuweisen. In der Funktion, in der du den Dialog anzeigen willst, erzeugst du eine Instanz des Dialoges.
Code:
CMyDialog dialog;
Danach kannst du den Dialog anzeigen mit
Code:
if(dialog.DoModal()==IDOK)
{
   //tue was
}

Mfg

langer
 
Also ein Dialog in dem Sinne soll es eigtl nicht werden. Ich möchte, dass sich dem Nutzer wenn er das Programm startet, eine Oberfläche die neben den Standard-Elementen wie Menüleiste, Toolbar, usw. eine Container mit mehreren Karteireitern zeigt (macht man doch mit CTabCtrl oder?). Nun soll unter jedem Karteireiter eine andere Sicht sich verbergen, mit der der Nutzer unterschiedliche Sachen durchführen können soll. Ich habe bisher auch die Karteireiter in der Funktion "OnInitialUpdate()" der CTestView-Klasse erzeugt, z.B.:
Code:
m_tab.Create(style, CRect(0,0,800,600), this, 0);
m_tab.SetFont(CFont::FromHandle((HFONT)::GetStockObject(DEFAULT_GUI_FONT)));
	
str.Format(_T("Bla"));
m_tab.InsertItem(0, str, 0);
Nur wenn ich jetzt ein neuen CView in meinem Projekt anlege, weiß ich nicht, welche Funktionen dort vorhandenen sein müssen, um die Steuerelemente zu zeichnen und wie ich diesen View dann dem TabCtrl zuordne.
 
Hallo,

die einzelnen Tab-Karten sind sind normale Dialoge (ohne Title, Rahmen und vom Typ "untergeordnet"). Zur Anwendung eines CTabCtrl und wie man die Tab-Karten einfügt, sollten sich über die Suchfunktion einige Beispiele bzw. Erklärungen finden lassen.


Gruß
MCoder
 
Zuletzt bearbeitet:
Hallo,
wie MCoder schon schrieb, sind die einzelnen Tabs normale Dialoge (na ja, bißchen anders sehen sie aus). Ich würde in dem Fall die View-Klasse von CFormView ableiten (im Assistenten bei Erstellung des Projektes). Dann kannst du da ein CTabCtrl einfügen mit den entsprechenden Child-Seiten. Und in den untergeordneten Seiten kannst du dann alle Steuerelemente einfügen, wie du es willst.

Mfg

langer
 

Neue Beiträge

Zurück