COject::IsKindof(RUNTIME_CLASS(....)); Problem!!!
-
folgende Kalssen hierachie:
class CWorklist : public CObjekt{ }; class CWorkflow : public CWorklist{ }; class CWorkprofil : public CWorklist{ };mach ich nun:
CWorkflow *p= .....;
Worklist t* = p;
t->IsKindOf(RUNTIME_CLASS(CWorkflow));
oder
t->IsKindOf(RUNTIME_CLASS(CWorkprofil));
wir mir beides mal true zurückgeben!! ich will aber zwischen CWorkflow und CWorkprifl unterscheiden?? was mach ich falsch??
-
Versuchs doch mal mit IsChildOf.
-
die funktion gibts nich von CObjekt
ich hab ein Worklist Pointer udn will anhand dem rausfinden ob es sich in wahrheit aus einem Workflow oder Workprofil Pointer handelt!
-
Hallo,
könnte das was bringen:CRuntimeClass* pRuntimeClass = NULL; pRuntimeClass = t->GetRuntimeClass(); if(L"CWorklist" == pRuntimeClass->m_lpszClassName) { // tue was } else if(L"CWorkflow" == pRuntimeClass->m_lpszClassName) { // tue dies } else(L"CWorkprofil " == pRuntimeClass->m_lpszClassName) { // sonst das hier! }grüsse
pixel
-
In jeder Klasse müssen für die MFC Persistenz die entsprechenden Makros DECLARE_DYNAMIC und IMPLEMENT_DYNAMIC verwenden, sonst gehen die entsprechenden RUNTIME_CLASS Sachen nicht!