在线等:窗口内嵌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,则不会.请问谁知道怎么回事啊?
...全文
78 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Jarrylogin 2005-08-27
报什么错,内容?
回复
见者有份,送分.
回复
谢谢,已经解决了.
回复
lizifong 2005-08-27
113
回复
相关推荐
发帖
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2005-08-27 12:25
社区公告
暂无公告