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: 536in 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