关于CFileDialog中CComboBox的路径修改问题

chengjr 2004-12-21 03:12:20
总的目的是捕获所有调用CFileDialog的操作,返回一个非当前目录下的文件。如:现在CComboBox控件指向c:\目录,而点OK后,我想返回d:\test.txt文件。经过跟踪发现必须修改CComboBox让其进入d:\才能正确返回。单纯修改CFileDialog的m_ofn成员的值是不行的。
这个项目我是用Hook实现的,现在已经得到了CComboBox的句柄,并能进行一般的操作,如GetCBText,SetCurSel等操作,但一InsertString,调用CFileDialog的进程就整个当掉了。不知道why?
下面是我得到的一些相关信息:
CComboBox的style是 CBS_DROPDOWNLIST|CBS_HASSTRINGS|CBS_OWNERDRAWFIXED
spy++跟踪发现,切换目录时CComboBox在 CB_INSERTSTRING 后紧接着 CB_SETITEMDATA 消息,而且每次lParam的值都不一样,不知道它的data有什么具体意义,是否和CBS_HASSTRINGS style有关
...全文
95 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
chengjr 2004-12-23
  • 打赏
  • 举报
回复
上面的问题没人遇到过吗
没人讨论晚上就结贴:)
chengjr 2004-12-22
  • 打赏
  • 举报
回复
OMG!!!It is really what i need!!!
I have puzzled at this damn problem for 2 days,and have tried every method i can bethink of.
I can hardly believe it can be resolved so easy in this way:(((
Basically, i can end my project this afternoon
thank u a lot :-)))))))))))))))))))

After all, i just want to know why the process injected the hookDll crashed after i called CComboBox::InsertString, what had happend???
Kudeet 2004-12-21
  • 打赏
  • 举报
回复
希望这个有帮助。:P
http://blog.csdn.net/laiyiling/archive/2004/11/21/189305.aspx
chengjr 2004-12-21
  • 打赏
  • 举报
回复
还有一点:CFileDialog默认风格是OFN_EXPLORER的,那我只要再设置一个OFN_ENABLEHOOK,然后直接m_ofn.lpfnHook = OFNHookProc;按MSDN上说的应该能捕获到CDN_FILEOK CDN_FOLDERCHANGE等消息了,但试了一下,回调函数OFNHookProc没有进入,连钩子也没捕到这些通知消息。。。

15,471

社区成员

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

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