zoukankan      html  css  js  c++  java
  • 调用系统对话框示例

    演示如何调用系统对话框 (演示语言--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 消息

  • 相关阅读:
    关于oracle的相关基础语句
    devexpress中如何给TabPage控件的Tab定义背景色
    asp.net中当点击按钮时出现grid编辑弹框
    DEV中dx:ASPxPopupControl 控件的使用(在窗口关闭或隐藏时,清楚文本框中的内容)
    aspx中如何绑定llistbox数据列表
    asp.net中选择数字时,另外的数字同时发生变化(适用dev控件)
    js中substring和substr的用法(文章来自bobo327的博客园)
    QT中常用控键
    sqlite常用语句
    计算机视觉-基于内容的图像检索
  • 原文地址:https://www.cnblogs.com/spiritofcloud/p/3982676.html
Copyright © 2011-2022 走看看