• 调用系统对话框示例


    演示如何调用系统对话框 (演示语言--delphi):

    uses
    ShlObj, Activex;

    procedure TForm1.Button2Click(Sender: TObject);
    var
    BrowseInfo: TBrowseInfo;
    ItemIDList: PItemIDList;
    ComputerName: array[0..MAX_PATH] of Char;
    Title: string;
    WindowList: Pointer;
    ShellMalloc: IMalloc;
    begin
    if Failed(SHGetSpecialFolderLocation(Application.Handle, CSIDL_NETWORK, ItemIDList)) then
    raise Exception.Create('Unable open browse computer dialog');
    try
    FillChar(BrowseInfo, SizeOf(BrowseInfo), 0);
    BrowseInfo.hwndOwner := Self.Handle;
    BrowseInfo.pidlRoot := ItemIDList;
    BrowseInfo.pszDisplayName := ComputerName;
    Title := '提示标题';
    BrowseInfo.lpszTitle := PChar(Pointer(Title));
    BrowseInfo.ulFlags := BIF_NEWDIALOGSTYLE or BIF_SHAREABLE;
    WindowList := DisableTaskWindows(0);
    try
    SHBrowseForFolder(BrowseInfo);
    finally
    EnableTaskWindows(WindowList);
    end;
    //if Result then CompName := ComputerName;
    finally
    if Succeeded(SHGetMalloc(ShellMalloc)) then
    ShellMalloc.Free(ItemIDList);
    end;
    end;


    其中 BrowseInfo.ulFlags 参数可选值和含义如下

    BIF_BROWSEFORCOMPUTER
    只有当用户
    选择“我的电脑”时“确定”按钮才有效,计算机可以是网络的

    BIF_BROWSEFORPRINTER
    当然是只能选择打印机
    允许最终用户选择一特定打印机。当传递该常量时,对话框有如下行为:
    “网络邻居”文件夹在树形控件中被预选。
    仅那些包括至少一台打印机的计算机在网络邻居文件夹中显示。
    仅当选中树形控件中的一个有效打印机时,OK按钮被激活。
    即使BIF_EDITBOX指定时也不显示编辑框。

    BIF_BROWSEINCLUDEFILES
    Version 4.71.
    同时显示文件
    BIF_BROWSEINCLUDEURLS
    Version 5.0. 可以显示快捷方式(URLs).
    BIF_USENEWUI 和 BIF_BROWSEINCLUDEFILES 必须同时被设定,如果没有同时选择这三个标志,那么浏览对话框将拒绝 URLs.
    BIF_DONTGOBELOWDOMAIN
    域层下的网络文件夹不在树形控件中显示

    BIF_EDITBOX
    显示一个编辑框,允许用户输入一文件夹名,在编辑框上部显示szEditBoxStaticText中的文本(除非指定BIF_BROWSEFORCOMPUTER 或BIF_BROWSEFORPRINTER)。当最终用户单击OK,SelectDirEx检查是否输入了一个有效文件夹名。如果不是(例如,如果输入了包含无效字符的名称),显示一个错误消息并且对话框不被消除
    BIF_NEWDIALOGSTYLE
    Version 5.0. 使用新的用户界面.
    提供一个大的可调的窗体
    其实这个对话框和资源管理器操作差不多了,有右键菜单,下边多了一个新建文件夹按钮

    BIF_NONEWFOLDERBUTTON
    Version 6.0. 不显示”新建文件夹“按钮.
    BIF_NOTRANSLATETARGETS
    Version 6.0.
    但用户选择了一个快捷方式,将返回它的PIDL
    BIF_RETURNFSANCESTORS
    如果一个文件系统祖先以外的任何对象被选中时OK按钮被禁用
    BIF_RETURNONLYFSDIRS
    非文件系统某部分的一个文件夹被选中OK按钮被禁用。.

    BIF_SHAREABLE
    显示远程共享资源,BIF_NEWDIALOGSTYLE 必须被指定

    BIF_STATUSTEXT
    在树形控件上部作为态文本显示szTreeControlStaticText
    BIF_UAHINT
    选定 BIF_NEWDIALOGSTYLE的情况下,增加一个注释.
    BIF_USENEWUI
    =BIF_EDITBOX | BIF_NEWDIALOGSTYLE
    BIF_VALIDATE
    如果用户在textbox中输入文件夹无效会发送BFFM_VALIDATEFAILED 消息

  • 相关阅读:
    《Machine Learning in Action》—— 白话贝叶斯,“恰瓜群众”应该恰好瓜还是恰坏瓜
    《Machine Learning in Action》—— 女同学问Taoye,KNN应该怎么玩才能通关
    《Machine Learning in Action》—— Taoye给你讲讲决策树到底是支什么“鬼”
    深度学习炼丹术 —— Taoye不讲码德,又水文了,居然写感知器这么简单的内容
    《Machine Learning in Action》—— 浅谈线性回归的那些事
    《Machine Learning in Action》—— 懂的都懂,不懂的也能懂。非线性支持向量机
    《Machine Learning in Action》—— hao朋友,快来玩啊,决策树呦
    《Machine Learning in Action》—— 剖析支持向量机,优化SMO
    《Machine Learning in Action》—— 剖析支持向量机,单手狂撕线性SVM
    JVM 字节码指令
  • 原文地址:https://www.cnblogs.com/spiritofcloud/p/3982676.html
Copyright © 2020-2023  润新知