以下是一个简单的示例,演示如何在派生自CFileDialog的类中覆盖OnFileNameOK方法:
class CMyFileDialog : public CFileDialog
{
public:
CMyFileDialog(BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL)
: CFileDialog(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd)
{
}
protected:
virtual BOOL OnFileNameOK()
{
// 在此处理文件名确认事件
CString strFileName;
GetDlgItem(edt1)->GetWindowText(strFileName);
// 可以根据需要执行你的逻辑,例如验证文件名格式等
// 返回TRUE表示允许用户点击“打开”按钮,返回FALSE表示阻止
return TRUE;
}
};
在上面的示例中,OnFileNameOK方法被覆盖,并在其中处理了文件名确认事件。你可以根据需要添加自己的逻辑。
请注意,OnFileNameOK方法是受保护的,因此你需要在派生类中使用。如果你使用的是不同的MFC版本,方法的参数或用法可能会有所不同,请查阅相应版本的MFC文档获取详细信息。
转载请注明出处:http://www.zyzy.cn/article/detail/17761/MFC/CFileDialog