SysTabControl32 in SDI/MDI



  • hi,

    ich habe versucht nach der anleitung von jeff prosise "TabDemo App" eine SDI mit einem TabView (SysTabControl32) nachzubauen.
    --> ( http://msdn.microsoft.com/msdnmag/issues/0600/Wicked/ )

    die beiden dateien meiner klasse CTabTest sehen so aus:

    CTabTest.cpp

    #include "stdafx.h"
    #include "t8.h"
    #include "t8doc.h"
    #include "TabTest.h"
    
    #ifdef _DEBUG
    #undef THIS_FILE
    static char THIS_FILE[]=__FILE__;
    #define new DEBUG_NEW
    #endif
    
    //////////////////////////////////////////////////////////////////////
    // Konstruktion/Destruktion
    //////////////////////////////////////////////////////////////////////
    
    IMPLEMENT_DYNCREATE (CTabTest, CCtrlView)
    
    BOOL CTabTest::PreCreateWindow (CREATESTRUCT& cs)
    {
    
    	::InitCommonControls ();
    
    //	Add 3 pages
    
    	for (int i=0; i<3; i++) {
    		CString string;
    		string.Format (_T ("Seite %d"), i + 1);
    		TC_ITEM item;
    		item.mask = TCIF_TEXT;
    		item.pszText = (LPSTR) (LPCTSTR) string;
    		GetTabCtrl ().InsertItem (i, &item);
    	}
    
    	return CCtrlView::PreCreateWindow (cs);
    }
    

    CTabTest.h

    #if !defined(AFX_TABTEST_H__98D37D07_5FC2_4526_B48C_51E27C18A036__INCLUDED_)
    #define AFX_TABTEST_H__98D37D07_5FC2_4526_B48C_51E27C18A036__INCLUDED_
    
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
    
    class CTabTest : public CCtrlView
    {
    		DECLARE_DYNCREATE (CTabTest)
    public:
    //	BOOL Start();
    
    	CTabTest() :
    		CCtrlView (_T ("SysTabControl32"), AFX_WS_DEFAULT_VIEW) {}
    
    	CTabCtrl& GetTabCtrl () const { return *(CTabCtrl*) this; }
    
    protected:
    	virtual BOOL PreCreateWindow (CREATESTRUCT& cs);
    
    };
    
    #endif // !defined(AFX_TABTEST_H__98D37D07_5FC2_4526_B48C_51E27C18A036__INCLUDED_)
    

    beim ausführen der zeile

    GetTabCtrl ().InsertItem (i, &item);
    

    erhalte ich immer diese fehlermeldung (anschließend programmabsturz):

    Error: Microsoft Visual C++ Debug Library
    Debug Assertion Failed!
    Program: ....
    File: afxcmn.inl
    Line: 536

    in der line 536 steht:
    " { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, TCM_INSERTITEM, nItem, (LPARAM)pTabCtrlItem); } "

    😕 WAS MACHE ICH FALSCH? KANN MIR JEMAND WEITERHELFEN?

    gruß thinux


Anmelden zum Antworten