比如:
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部分的功能?
希望各位大侠,提点想法。等待中。
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部分的功能?
希望各位大侠,提点想法。等待中。
解决方案 »
- 关于excel文件保存时断点调试的问题?
- 加载DLL对话框,铺满客户区的问题!
- GCC编译器中的DLL数据共享~~~
- 请问这是个什么问题?UdpDump.obj : error LNK2019: unresolved external symbol _pcap_loop referenced in function _main
- 请问如何在listctrl控件中添加键盘上下键移动以及回车键事件?
- 互斥体 阻止程序多开 失败 求解
- 请问个各位大侠,这个错误原因和解决办法
- 关于MoveWindow的问题
- 进行DMA时如何保证Cache和内存内容的一致性?
- 请高手耐心看完。。。很简单。。
- vc调用com组件的问题,谢谢回答,回者有分
- 一个MFC程序员的苦恼,牛人指点下...
//基类窗口为CBaseWindow
CWnd *pWnd = GetActiveWindow();
ASSERT(pWnd != NULL);
((CBaseWindow*)pWnd)->OnDo();
这样的想法,还有问题???