1

使用 GetOpenFileName 对话框。使用 OFN_EXPLORER 并指定一个钩子(所以我得到了 XP 样式对话框)。我可以隐藏/显示和启用/禁用对话框上的许多控件,但不能隐藏“上一级”(父目录)按钮?

在挂钩函数中,如何以编程方式启用和禁用“上一级”按钮?

编辑:回应“可能已经回答”:不,这根本不是同一个问题。我正在尝试专门启用和禁用对话框上的“父”按钮。

4

1 回答 1

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);
}
于 2014-08-27T16:22:26.307 回答