在线等:窗口内嵌CFileDialog并挂Hook的问题

火星东面的猎人 2005-08-27 12:25:34
LRESULT CALLBACK CFileOpenDlgExCallback(HWND hDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam);

为内嵌CFileDialog到窗口,创建了一个新的类重载CFileDialog:
CFileOpenDlgEx::CFileOpenDlgEx(BOOL bOpenFileDialog,
LPCTSTR lpszDefExt,
LPCTSTR lpszFileName,
DWORD dwFlags,
LPCTSTR lpszFilter,
CWnd* pParentWnd) :
CFileDialog(bOpenFileDialog,
lpszDefExt,
lpszFileName,
dwFlags,
lpszFilter,
pParentWnd)
{
m_ofn.Flags |= (OFN_ENABLETEMPLATE|OFN_ENABLEHOOK);
m_ofn.lpTemplateName = MAKEINTRESOURCE(IDD_FILEOPEN_DIALOG);
m_ofn.lpstrTitle = "TestFopen";
m_ofn.lpfnHook = (LPOFNHOOKPROC)fOpenCallback;
m_ofn.lpstrFilter = _T("*.*\0*.*");
}

LRESULT CALLBACK fOpenCallback(HWND hDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
return 1;
}
窗口调用方法:
TestWindow::OnOK()
{
CFileOpenDlgEx dlg(TRUE,NULL);
dlg.DoModal();
}

结果发现:如果挂了fOpenCallback,选择文件后按下OK按钮会报错,但是CANCEL不会,如果不挂Hook,则不会.请问谁知道怎么回事啊?
...全文
106 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jarrylogin 2005-08-27
  • 打赏
  • 举报
回复
报什么错,内容?
  • 打赏
  • 举报
回复
见者有份,送分.
  • 打赏
  • 举报
回复
谢谢,已经解决了.
lizifong 2005-08-27
  • 打赏
  • 举报
回复
113

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧