使用 GetOpenFileName 对话框。使用 OFN_EXPLORER 并指定一个钩子(所以我得到了 XP 样式对话框)。我可以隐藏/显示和启用/禁用对话框上的许多控件,但不能隐藏“上一级”(父目录)按钮?
在挂钩函数中,如何以编程方式启用和禁用“上一级”按钮?
编辑:回应“可能已经回答”:不,这根本不是同一个问题。我正在尝试专门启用和禁用对话框上的“父”按钮。
使用 GetOpenFileName 对话框。使用 OFN_EXPLORER 并指定一个钩子(所以我得到了 XP 样式对话框)。我可以隐藏/显示和启用/禁用对话框上的许多控件,但不能隐藏“上一级”(父目录)按钮?
在挂钩函数中,如何以编程方式启用和禁用“上一级”按钮?
编辑:回应“可能已经回答”:不,这根本不是同一个问题。我正在尝试专门启用和禁用对话框上的“父”按钮。
看起来这里描述了这样做的方法:
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);
}