我在这里的示例项目工作:http://www.codeproject.com/Articles/8086/Extending-the-save-file-dialog-class-in-NET
我已经将地址/位置栏隐藏在顶部并进行了其他修改,但我不能在我的生活中设法禁用允许您转到父文件夹的按钮.Ist在ToolbarWindow32类中就是问题所在.这就是我现在所拥有的,但它不起作用:
int parentFolderWindow = GetDlgItem(parent, 0x440);
//Doesn't work
//ShowWindow((IntPtr)parentFolderWindow, SW_HIDE);
//40961 gathered from Spy++ watching messages when clicking on the control
// doesn't work
//SendMessage(parentFolderWindow, TB_ENABLEBUTTON, 40961, 0);
// doesn't work
//SendMessage(parentFolderWindow, TB_SETSTATE, 40961, 0);
//Comes back as '{static}', am I working with the wrong control maybe?
GetClassName((IntPtr)parentFolderWindow, lpClassName, (int)nLength);
Run Code Online (Sandbox Code Playgroud)
或者,如果他们确实使用父文件夹按钮并且去了我不想要的地方,我可以查看他们登陆的新目录,有没有办法可以强制导航返回?
编辑:添加截图
为什么在GetOpenFileName()中添加一个钩子过程(使用OFN_ENABLEHOOK
和OFN_EXPLORER
标志)会导致在Windows 7中显示不同的对话框,如果钩子过程只返回FALSE
而没有做任何事情?
更新:
显然用钩子看Vista/Windows 7看起来是不可能的......有人可以确认或反驳这个吗?