紧急求救:想捕获用户在CFileDialog类型的对话框上的操作,有办法吗? 发贴无罪,灌水有理http://www.csdn.net/expert/topic/458/458597.shtm 帮帮我吧(网吧管理软件) http://www.csdn.net/expert/topic/464/464120.shtm 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 To wwwsq(wwwsq):能否用几行代码简要讲讲? 搞不懂你什么问题,添加一个CFiledailog类,右击该类,选择"add windows message handles.." 里面不是都有吗? 在MSDN里查找OPENFILENAME,->m_ofn, ->OFN_ENABLEHOOK,->再写一个回调函数。 找着了现成的源码,给你:CBmpDialog::CBmpDialog(BOOL bOpenFileDialog, LPCTSTR lpszDefExt, LPCTSTR lpszFileName,DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd) : CFileDialog(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd){ m_ofn.lpstrFilter = "位图 (*.bmp)\0*.bmp\0" "所有文件 (*.*)\0*.*\0\0"; m_ofn.Flags |= (OFN_HIDEREADONLY |OFN_ENABLEHOOK| OFN_EXPLORER |OFN_ENABLETEMPLATE); m_ofn.hInstance = AfxGetInstanceHandle(); m_ofn.lpTemplateName = MAKEINTRESOURCE(IDC_PREVIEW); m_ofn.lpfnHook = OFNHookProc; }其次:主要是写函数OFNHookProc:UINT APIENTRY OFNHookProc( HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam ){ switch (uiMsg) { case WM_COMMAND:........... }} 可能我说的问题和你的不一样,我要做的是为了自己处理全部的默认的CFileDialog的消息。并不改变模板资源。我试了你的方法发现接收不到WM_COMMAND和WM_NOTIFY消息(其他的一些消息能收到)怀疑插入OFNHookPro的时候系统已经处理了这两个消息。 不可能接受不到WM_COMMAND和WM_NOTIFY cc dll创建窗口后重载OnInitDialog() vc新手求救 如何实现控件界面的定时刷新 100分求VC如何把数据发送给ASP,并接受ASP的处理结果 C++要学的非常好才可以学VC吗? 列表控件(CListCtrl)中的checkbox的值如何获得? 基于DirectShow的摄像头视频采集与压缩的问题 急救!CreateProcess后,通过管道获取命令行输出不完整 请问如何 更新ACCESS数据库中 每条数据的某字段?? 求大家见过最漂亮最酷的listctrl!!!!!见货给分!!! 如何读取加在项目里的二进制资源文件??????????????
能否用几行代码简要讲讲?
CBmpDialog::CBmpDialog(BOOL bOpenFileDialog, LPCTSTR lpszDefExt, LPCTSTR lpszFileName,DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd) :
CFileDialog(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd)
{ m_ofn.lpstrFilter = "位图 (*.bmp)\0*.bmp\0" "所有文件 (*.*)\0*.*\0\0"; m_ofn.Flags |= (OFN_HIDEREADONLY |OFN_ENABLEHOOK| OFN_EXPLORER |OFN_ENABLETEMPLATE);
m_ofn.hInstance = AfxGetInstanceHandle();
m_ofn.lpTemplateName = MAKEINTRESOURCE(IDC_PREVIEW);
m_ofn.lpfnHook = OFNHookProc;
}
其次:
主要是写函数OFNHookProc:
UINT APIENTRY OFNHookProc( HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam )
{
switch (uiMsg)
{
case WM_COMMAND:
...........
}
}