比如:
CWnd *pWnd = GetActiveWindow();
ASSERT(pWnd != NULL);
CRuntimeClass  *prt = pWnd->GetRuntimeClass();
CString rString = L"";rString = prt->m_lpszClassName;
CString sClassName[3] = {
L"CDataBaseWindow", L"CLogWindow", L"COperationWindow"
};int i;
int iWindowTypeIndex = 0;
for(i = 0; i < 3; i++)
{
    if( 0 == rString.Compare(sClassName[i]) )
    {
         iWindowTypeIndex = i;
         break;
    }
}switch(iWindowTypeIndex)
{
    case 0:
        ((CDataBaseWindow *)pWnd)->OnDo();
    break;
    case 1:
        ((CLogWindow*)pWnd)->OnDo();
    break;
    case 2:
        ((COperationWindow*)pWnd)->OnDo();
    break;
}问题:CString数组sClassName存放了一些类的名称,现在需要把这些字符串转换为类名,然后进行类型的强制转换。想直接用查表法来实现switch部分的功能?
希望各位大侠,提点想法。等待中。