使用GetOpenFileName对话框。使用OFN_EXPLORER并指定一个钩子(所以我得到了XP风格的对话框)。我可以隐藏/显示和启用/禁用对话框中的许多控件,但不是"向上一级" (父目录)按钮?
在钩子函数中,我如何以编程方式启用和禁用“上一级”"按钮?
编辑:回复"可能已经回答了#34;:不,这根本不是同一个问题。我特意尝试启用和禁用" Parent"对话框上的按钮。
答案 0 :(得分:1)
这里描述了这样做的方法:
http://www.codeproject.com/Articles/29/Customizing-the-Windows-Common-File-Open-Dialog
相关代码位于标题"隐藏工具栏"。还有一个启用标志,所以我非常确定我可以使用这种机制来实现这一点。
编辑:这是方法。这会隐藏按钮,但删除TBSTATE_HIDDEN并保留TBSTATE_INDETERMINATE应该会导致它可见但已禁用。
const int TB_BTN_UPONELEVEL = 40961;
const int TB_BTN_NEWFOLDER = 40962;
void HideToolbarBtns ( HWND hWndToolbar )
{
TBBUTTONINFO tbinfo;
tbinfo.cbSize = sizeof(TBBUTTONINFO);
tbinfo.dwMask = TBIF_STATE;
tbinfo.fsState = TBSTATE_HIDDEN | TBSTATE_INDETERMINATE;
::SendMessage(hWndToolbar,TB_SETBUTTONINFO,
(WPARAM)TB_BTN_UPONELEVEL,(LPARAM)&tbinfo);
::SendMessage(hWndToolbar,TB_SETBUTTONINFO,
(WPARAM)TB_BTN_NEWFOLDER,(LPARAM)&tbinfo);
}