BCG界面库对话框选择文件默认目录设置方法
说明
因为之前旧项目采用的是 MFC+BCG 界面库的方法实现的。维护旧项目过程中,遇到选择文件对话框没有从默认位置选择的问题,学习和思考后,问题得到解决,特此记录。
原来的 BCG中配置选择的方法是这样的:
lpszDefExt = _T("DAT");
lpszFilter = _T("文件|*.dat|\
文件|*.bln|\
文件|*.xyz|\
文件|*.txt||");
m_editDataName.EnableFileBrowseButton (lpszDefExt,lpszFilter);
相当于,BCG内部已经帮我们实现完全了。不好做修改。
BCG中的继承
class CCustomBrowseEdit : public CBCGPEdit
{
virtual void OnBrowse ();
};
void CCustomBrowseEdit::OnBrowse ()
{
//文件类型过滤
const TCHAR pszFilter[] = _T("dat File (*.dat)|*.dat|");
//第一个参数为TRUE是打开文件,为FALSE是文件另存为
CFileDialog dlg(FALSE, this->m_strDefFileExt, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
this->m_strFileFilter, this);
//设置对话框默认呈现的路径
dlg.m_ofn.lpstrInitialDir = WorkDir;
if (dlg.DoModal() == IDOK)
{
//获取选中的文件的路径
CString strFilePath = dlg.GetPathName();
this->SetWindowText(strFilePath);
}
}
继承类,通过重写 OnBrowse 方法,实现改变了对话框默认选择的方式
this->m_strDefFileExt
这个利用继承了BCG类的方法,访问了BCG的成员。
this->SetWindowText(strFilePath);
这个利用继承了CEdit类的方法,访问了CEdit的成员,实现了设定编辑框的文本。
总结
- 多看示例文档,总会有新的思路
- 不断尝试,永不放弃!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)