研发应知应会

研发流程:
定义问题(清晰定义问题的范围,边界,约束)->提出假设(基于数据和认知,提出解决问题的假设(头脑风暴))->方案设计(针对每个假设,设计验证方案,编制执行计划)->分析评估(对验证方案的结果进行分析,评估方案有效性)->总结复盘(检视目标差距,分析优势与不足,总结方法论(复盘方法论))

浏览目录使用:

#include <shlobj.h>
#include <windows.h>
#include <stdio.h>
using namespace std;
string chooseFile(void) {
    //用户选择的路径,可以是TCHAR szBuffer[MAX_PATH] = {0};然后再使用TCHAR 转char字符串,此处可以直接使用char数组类型
	char dir[MAX_PATH];
	BROWSEINFO bi;
	ZeroMemory(&bi,sizeof(BROWSEINFO));
	ITEMIDLIST *ppidl;
    //设置根目录
	SHGetSpecialFolderLocation(NULL, CSIDL_DRIVES, &ppidl);
	//常用有CSIDL_DESKTOP(桌面)CSIDL_PROGRAMS(开始菜单)CSIDL_MYMUSIC(我的音乐)CSIDL_DRIVES(盘符)
	bi.hwndOwner = NULL; //父窗口句柄,通常通过AfxGetMainWnd()->GetSafeHwnd()函数获取安全的句柄。
	bi.pidlRoot = ppidl; //文件夹的根目录,此处为桌面CSIDL_DESKTOP;
//	pidlRoot:显示的文件目录对话框的根(Root),一般设置为NULL
	bi.pszDisplayName = dir; //保存被选取的文件夹路径的缓冲区
	bi.lpszTitle = NULL; //显示位于对话框左上部的标题。
	bi.ulFlags = BIF_BROWSEINCLUDEFILES | BIF_EDITBOX ;//指定对话框的外观和功能的标志
//	bi.ulFlags= BIF_NEWDIALOGSTYLE;
	//获取程序路径
	string defaultPath = "";
	if ("" != beforeChooseFilePath) {
		defaultPath = beforeChooseFilePath;
	} else {
		char buffer[MAX_PATH];
		GetModuleFileName( NULL, buffer, MAX_PATH);
		defaultPath = buffer;
		if (defaultPath.find("\\") != string::npos) {
			int lastIndex = defaultPath.find_last_of("\\");
			defaultPath = defaultPath.substr(0, lastIndex);
		}
	}
//回调函数,设置默认打开文件夹路径
	bi.lpfn = BrowseCallbackProc;
	bi.lParam = (LPARAM) (defaultPath.data());
	LPITEMIDLIST idl = SHBrowseForFolder(&bi);
	SHGetPathFromIDList(idl, dir);
	if (idl && SHGetPathFromIDList(idl, dir)) {
		string strDir = dir;
		return strDir;
	}
	return "";
}
int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM /*lParam*/,
		LPARAM lpData) {
	if (uMsg == BFFM_INITIALIZED) {
		//(LPARAM)"D:\\remote"--指定初始目录  BFFM_SETSELECTION(指向目录)
		SendMessage(hwnd, BFFM_SETSELECTION, (WPARAM) TRUE, (LPARAM) lpData);
	}
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值