以下是示例代码
//Use in the class which derive from CFileFialog
CWnd* CmyFileDialog::GetControl(UINT id)
{
CWnd* pRealDlg=GetParent();
CWnd* pCtrl=pRealDlg->GetDlgItem(id);
if(id==lst2){//File List
if(pCtrl!= NULL) pCtrl=pCtrl->GetDlgItem(1);
}
else if(id==stc1){//Tool bar
TCHAR cName[256]={0};
if(pCtrlTemp!=NULL){
GetClassName(pCtrl->GetSafeHwnd(),cName,sizeof(cName)-1);
if(_tcsicmp(cName,_T("ToolbarWindow32"))!=0){
CWnd* pCtrlTemp=pCtrl;
pCtrlTemp->SetDlgCtrlID(0); // Change it' classname,because it's not the Toolbar
pCtrl= pRealDlg->GetDlgItem(id); //Get again
pCtrlTemp->SetDlgCtrlID(id); // Restore
if(pCtrl!=NULL){
cName[0]=0;
GetClassName(pCtrl->GetSafeHwnd(),cName,sizeof(cName)-1);
if(_tcsicmp(cName,_T("ToolbarWindow32"))!=0) pCtrl=NULL;
}
}
}
}
else {
if(pCtrl==NULL){
if(id==edt1) pCtrl= pRealDlg->GetDlgItem(cmb13);//Maybe a ComboBox?
else if(id==cmb13) pCtrl= pRealDlg->GetDlgItem(edt1);//Maybe a EditBox?
}
}
return pCtrl;
}