博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
16.让对话框支持拖拽操作/目录框打开操作
阅读量:4035 次
发布时间:2019-05-24

本文共 1245 字,大约阅读时间需要 4 分钟。

1.打开目录对话框

void CMFCApplication7Dlg::OnBnClickedButton1(){	TCHAR szPath[MAX_PATH] = { 0 };	BROWSEINFO mBroInfo = { 0 };	mBroInfo.hwndOwner = m_hWnd;		ITEMIDLIST *pidl = SHBrowseForFolder(&mBroInfo);//打开文件目录对话框	if (SHGetPathFromIDList(pidl, szPath));	{		SetDlgItemText(IDC_EDIT_PATH, szPath);	}	CoTaskMemFree(pidl);		// TODO: 在此添加控件通知处理程序代码}

2.目录选择对话框的根目录设定

mBroInfo.pidlRoot = GetItemIdListFromPath(_T("D:\\"));LPITEMIDLIST GetItemIdListFromPath(CString strPath){	if (!strPath)	{		return NULL;	}	LPSHELLFOLDER pDesktopFolder = NULL;	HRESULT hr = SHGetDesktopFolder(&pDesktopFolder);	if (FAILED(hr))	{		return NULL;	}	PWCHAR pWchar = NULL;#ifdef _UNICODE	pWchar = (LPTSTR)(LPCTSTR)strPath;#else	USES_CONVERSION;	pWchar = A2W(strPath);//转换成宽字节#endif	LPITEMIDLIST pItemIdList = NULL;	hr = pDesktopFolder->ParseDisplayName(NULL, NULL, pWchar, NULL, &pItemIdList, NULL);	pDesktopFolder->Release();	if (FAILED(hr))	{		return NULL;	}	return pItemIdList;}

3.拖拽功能

1.对话框模板的Accept Files属性设置为True;2.响应主对话框类的WM_DROPFILES消息;3.添加如下程序:TCHAR szPath[MAX_PATH] = { 0 };	UINT nCount = DragQueryFile(hDropInfo,0xFFFFFFFF,NULL,0);	for (UINT idx = 0; idx < nCount; idx++)	{		DragQueryFile(hDropInfo, idx, szPath, MAX_PATH);		MessageBox(szPath);	}	DragFinish(hDropInfo);

转载地址:http://dundi.baihongyu.com/

你可能感兴趣的文章
交叉编译在x86上调试好的qt程序
查看>>
qt 创建异形窗体
查看>>
可重入函数与不可重入函数
查看>>
简单Linux C线程池
查看>>
内存池
查看>>
输入设备节点自动生成
查看>>
GNU hello代码分析
查看>>
Qt继电器控制板代码
查看>>
wpa_supplicant控制脚本
查看>>
gstreamer相关工具集合
查看>>
arm 自动升级脚本
查看>>
RS232 四入四出模块控制代码
查看>>
gstreamer插件之 videotestsrc
查看>>
autoupdate script
查看>>
linux 驱动开发 头文件
查看>>
/etc/resolv.conf
查看>>
container_of()传入结构体中的成员,返回该结构体的首地址
查看>>
linux sfdisk partition
查看>>
ipconfig,ifconfig,iwconfig
查看>>
opensuse12.2 PL2303 minicom
查看>>