选择文件路径对话框被覆盖的问题

由于在有些时候,我们会将对话框置顶,也就是在SetWindowPos的时候用&wndTopMost标识,但是,这时,如果在对话框上有一个选择文件路径的按钮存在,那么,在点击此按钮的时候,弹出的选择路径对话框会被置顶的对话框隐藏,这个时候,就会造成不必要的麻烦。

这个时候,只需要将BROWSEINFO的hwndOwner设置为m_hWnd即可。

 比如以下的例子

原始代码:

void CSystemSettingSysFileTransDialog::OnBnClickedButtonRepoSel()
{
	// TODO: 在此添加控件通知处理程序代码
	BROWSEINFO  bi;
	bi.hwndOwner=NULL;
	bi.pidlRoot=NULL;
	bi.pszDisplayName=NULL;
	bi.lpszTitle=_T("请选择您需要的目的文件夹:");
	bi.ulFlags=0;
	bi.lpfn =NULL;
	bi.iImage =0;

	LPCITEMIDLIST pidl=SHBrowseForFolder(&bi);
	if(!pidl)
		return;

	TCHAR  szDisplayName[MAX_PATH];
	SHGetPathFromIDList(pidl,szDisplayName);
	CString str(szDisplayName);
	m_editFileRepo.SetWindowText(str);

}

修改后的代码:

void CSystemSettingSysFileTransDialog::OnBnClickedButtonRepoSel()
{
	// TODO: 在此添加控件通知处理程序代码
	BROWSEINFO  bi;
	bi.hwndOwner=m_hWnd;
	bi.pidlRoot=NULL;
	bi.pszDisplayName=NULL;
	bi.lpszTitle=_T("请选择您需要的目的文件夹:");
	bi.ulFlags=0;
	bi.lpfn =NULL;
	bi.iImage =0;

	LPCITEMIDLIST pidl=SHBrowseForFolder(&bi);
	if(!pidl)
		return;

	TCHAR  szDisplayName[MAX_PATH];
	SHGetPathFromIDList(pidl,szDisplayName);
	CString str(szDisplayName);
	m_editFileRepo.SetWindowText(str);

}



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值