gpt4 book ai didi

windows - 是否可以从 IFileDialog 中删除/隐藏打开按钮

转载 作者:可可西里 更新时间:2023-11-01 09:48:52 24 4
gpt4 key购买 nike

我正在尝试使用 IFileOpenDialog 从同一个对话框中选择文件和文件夹(在多选模式下)。我能够向对话框添加自定义按钮并实现我想做的事情。现在我想从对话框中删除默认的“打开”按钮,因为它的行为取决于选择的顺序。如果先选择文件然后选择文件夹(多选),我会收到 OnFileOk 事件,但如果用户先选择文件夹然后选择文件,则单击打开按钮会打开第一个选定的文件夹。有没有办法删除或隐藏打开按钮??

我的想法是枚举 IFileDialog 的子窗口并删除带有标题“打开”和类“按钮”的子窗口。在进行演示之前,我尝试枚举 IFileOpenDialog 的子窗口,但我只得到一个类为“Button”的子窗口,但它的标题是“start”。我找不到隐藏“打开”按钮的标准方法。如果有任何其他方法,请告诉我。

谢谢,艾比奈。

最佳答案

Buke's method为我工作,但你必须等到创建对话框控件。似乎每次创建对话框时OnFolderChange()被调用所以我只是在那里添加了我的隐藏代码:

STDMETHODIMP FileDialogEventHandler::OnFolderChange(IFileDialog* fileDialog) {    
IOleWindow *pWindow = NULL;
HRESULT hr = fileDialog->QueryInterface(IID_PPV_ARGS(&pWindow));

if (SUCCEEDED(hr)) {
HWND hwndDialog;
hr = pWindow->GetWindow(&hwndDialog);
HWND openButton = GetDlgItem(hwndDialog, IDOK);
ShowWindow(openButton, SW_HIDE);

pWindow->Release();
}

return S_OK;
}

关于windows - 是否可以从 IFileDialog 中删除/隐藏打开按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8733383/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com