• NX二次开发-弹出选择文件夹对话框


    这个UFUN和NOPEN里没有对应的函数和类,要用C++的方法去做。

     1 #include "afxdialogex.h"//弹出选择文件夹对话框头文件
     2 #include "shlobj.h"//弹出选择文件夹对话框头文件
     3 using namespace std;
     4 
     5 
     6 string MyClass::OnSigBtnSelectInstallDir()//弹出选择文件夹对话框
     7 {
     8     BROWSEINFO  bi;
     9     bi.hwndOwner = NULL;
    10     bi.pidlRoot = CSIDL_DESKTOP;//文件夹的根目录,此处为桌面
    11     bi.pszDisplayName = NULL;
    12     bi.lpszTitle = "请选择文件夹";//显示位于对话框左上部的提示信息
    13     bi.ulFlags = BIF_DONTGOBELOWDOMAIN | BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE;//有新建文件夹按钮
    14     bi.lpfn = NULL;
    15     bi.iImage = 0;
    16     LPITEMIDLIST pidl = SHBrowseForFolder(&bi);//调用选择对话框
    17     string sFolder;
    18     if (pidl != NULL)
    19     {
    20         TCHAR strFolder[MAX_PATH];
    21         SHGetPathFromIDList(pidl, strFolder);
    22         sFolder = strFolder;
    23     }
    24 
    25     return sFolder;//选择文件夹返回值为路径,没选择文件夹返回值为空
    26 }
    27 
    28 Caesar卢尚宇
    29 2019年7月23日

    附加说明2019年10月15日

    如果头文件同时使用了

    #include "afxdialogex.h"//弹出选择文件夹对话框头文件
    #include "shlobj.h"//弹出选择文件夹对话框头文件
    #include <windows.h>

    这三个,请将#include <windows.h>放在最下边,如果放在上边会编译出错。

    fatal error C1189: #error :  WINDOWS.H already included.  MFC apps must not #include <windows.h>

  • 相关阅读:
    maven学习
    存储过程的作用
    数据库优化
    Springmvc整合mybatis
    Spring Mvc简介
    Axis2开发实例
    Mybatis之typeAlias配置的3种方法
    Spring AOP教程及实例
    spring AOP底层原理实现——jdk动态代理
    Java实现动态代理的两种方式
  • 原文地址:https://www.cnblogs.com/nxopen2018/p/11232120.html
Copyright © 2020-2023  润新知