2016-04-09 5 views
0

Ich erweitere CTabCtrl, aber wenn ich auf meinem erweiterten Objekt aufrufen keine Registerkarte wird eingefügt. Wer weiß warum? Was mache ich falsch?Ich erweitere CTabCtrl, aber kann keine Tabs einfügen

class MyTabControl : public CTabCtrl 
{ 
public: 
    MyListControl  m_listCtrl; 
    void    switchInterface(IDataProvider *provider); 
public: 
    MyTabControl(); 
    ~MyTabControl(); 
    afx_msg void OnGetDispInfo(NMHDR *pNMHDR, LRESULT *pResult); 
protected: 
    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 
    DECLARE_MESSAGE_MAP() 
}; 

Wenn ich entfernen ON_WM_CREATE() Makro aus Nachrichten Karte dann kann ich Registerkarten hinzufügen. Die Implementierung der OnCreate-Funktion enthält den Funktionsaufruf m_listCtrl.Create() und gibt 0 zurück, wenn das Listensteuerelement erfolgreich erstellt wurde. Was ist daran falsch?

+1

Mehr Code anzeigen. Unmöglich zu sagen, was falsch sein könnte, ohne die Implementierung zu sehen. –

Antwort

0

Die Klasse CTabCtrl ist schrecklich alt und schlecht funktional; Sie müssen alle Logikfunktionen zum Anzeigen/Ausblenden von Steuerelementen ausführen, wenn der Benutzer mit der eigenen Hand von einem Register zum anderen wechselt. Ich empfehle Ihnen, stattdessen von CMFCTabCtrl zu verlängern.

Verwandte Themen