有没有办法更改/添加Windows打开/保存常用对话框以添加额外的功能?
在工作中,我们在服务器上有一个区域有数百个“作业文件夹” - 数据库应用程序自动创建/管理的普通Windows文件夹,用于存放有关作业的信息(电子邮件/扫描传真/ Word文档/电子表格/照片等)文件夹由作业编号命名。
我想使用组合框扩展标准的打开/保存对话框,该组合框根据数据库中的标签搜索作业文件夹,这样无论我的用户做什么,他们都可以轻松找到正确的作业文件夹,找到/保存他们的工作
连接数据库并提供搜索功能没有问题,但是有没有办法在对话框中添加一个组合框控件(理想情况下是一个keypress / keydown事件)?
或创建我自己的对话框并将其调用/用于代替标准对话框?即从任何应用程序,我的对话框将被调用,允许轻松访问作业文件夹。如果他们处于展望状态,他们可以快速找到一个作业文件夹,如果使用记事本,他们仍然可以轻松找到该文件夹。
这意味着从任何应用程序中查找作业文件夹的新统一方式。
理想情况下,有人会知道使用VB / VB.net / C#的方式,但我猜测,如果可能的话,它可能会成为C ++。
答案 0 :(得分:5)
你编写的钩子程序将接收特定于该对话框的窗口消息 - 你对WM_NOTIFY消息特别感兴趣 - 有一些特殊的消息(CDN INITDONE,CDN FOLDERCHANGE等)。
我已经创建了一些非常复杂的,我希望我可以包含截图。
答案 1 :(得分:2)
Windows API的相关Microsoft文档如下:
http://msdn.microsoft.com/en-us/library/ms646960(VS.85).aspx
http://msdn.microsoft.com/en-us/library/ms646839(VS.85).aspx
特别注意OFN_ENABLETEMPLATE和OFN_ENABLEHOOK标志。
正如您所说,当您使用C / C ++时,这些信息最为相关。
答案 2 :(得分:0)
您的程序可以设置起始文件夹,因此如果您知道作业编号(以及文件夹的名称),则可以将对话框设置为从已打开的正确文件夹开始。除此之外,如果没有为它编写完整的shell扩展,我认为你不会做太多。