1. 现需要打开文件选择窗时支持模糊搜索,直接使用CFileDialog是有这个搜索框的,但是由于有一些定制,定义了一个新的类,这个类继承自CFileDialog,设置过自定义模板之后,这个搜索框就没有了,不知道是否有什么方法可使它显示出来 ?2. 因为不知道如何将搜索框显示出来,我自己添加了一个编辑框来做模糊搜索,但是有个问题,无法将搜索出来的结果显示到CFileDialog自带的列表框。这个列表框我是通过枚举子控件获取到的,读取、清除项都没有问题,但是不论像一般的ListControl,或者通过发送LVM_** 系列消息(如LVM_INSERTITEM),都无法更改其显示的内容,比如我全部清除之后,插入一行我自定义的数据 ,结果并没有显示出来,显示的是原结果的第一行。个人猜测会不会是我其实改成功了,但CFileDialog自己存了一套数据,在我改完之后又重设了一遍,把我的覆盖了?求教各位大神,任何意见都感激不尽!
void CMyFileOpenDlg::OnButtonNew()
{
// TODO: Add your control notification handler code here
char fileName[MAX_PATH]="";
CExpFileOpen dlgFile(FALSE);//TRUE);
// CFileDialog dlgFile(TRUE);
//if use new style!
OSVERSIONINFO VersionInformation;
GetVersionEx(&VersionInformation);
if(VersionInformation.dwMajorVersion >= 5)
dlgFile.m_ofn.lStructSize=88;// new =88
else
dlgFile.m_ofn.lStructSize=76;// old =76
dlgFile.m_ofn.Flags |= OFN_ENABLETEMPLATE;// add our temp !
dlgFile.m_ofn.lpTemplateName = MAKEINTRESOURCE(IDD_EX_OPEN); //=1547!
dlgFile.m_ofn.hInstance=AfxGetInstanceHandle();
dlgFile.m_ofn.lpstrTitle = "Explorer Style Open File";
dlgFile.m_ofn.lpstrFile = fileName;
dlgFile.m_ofn.Flags |= OFN_EXPLORER;
//
dlgFile.m_ofn.lpstrFilter="Any file(*.*)\0*.*\0";
dlgFile.m_ofn.lpstrDefExt = "txt";
// dlgFile.m_ofn.lpfnHook=CDN_HookProc;//="_AfxCommDlgProc" see"dlgcomm.cpp" <>NULL!
// show
dlgFile.DoModal();
#ifdef _DEBUG
// afxDump << fileName << " \n";
#endif
}
注意
//if use new style!