四个按钮:打开文本文件IDC_BTN_TXT 打开图片IDC_BTN_BMP 打开网址IDC_BTN_URL 打开电子邮件编辑器IDC_BTN_MAIL
为四个按钮添加事件响应函数:
void CShellOpenDlg::OnBnClickedBtnTxt()
{
// TODO: 在此添加控件通知处理程序代码
//打开文本文件
CFileDialog dlg(TRUE, NULL, NULL,
0, _T("*.txt|*.txt||"), this);
if(dlg.DoModal() == IDOK)
OpenTheFile(dlg.GetPathName());
}
void CShellOpenDlg::OnBnClickedBtnBmp()
{
// TODO: 在此添加控件通知处理程序代码
//打开图片文件
CFileDialog dlg(TRUE, NULL, NULL,
0, _T("*.bmp|*.bmp|*.jpg|*.jpg||"), this);
if(dlg.DoModal() == IDOK)
OpenTheFile(dlg.GetPathName());
}
void CShellOpenDlg::OnBnClickedBtnUrl()
{
// TODO: 在此添加控件通知处理程序代码
//打开网址
CInputDlg dlg(this, _T("输入"), _T("请输入一个网址:"),
_T("http://www.GOOGLE.com"));
if(dlg.DoModal() == IDOK)
{
OpenTheFile(dlg.GetInputText());
}
}
//需要系统中有outlook等软件
void CShellOpenDlg::OnBnClickedBtnMail()
{
// TODO: 在此添加控件通知处理程序代码
//打开邮件编辑器
CInputDlg dlg(this, _T("输入"), _T("请输入一个邮件地址:"),
_T("WanMeiTech@163.com"));
if(dlg.DoModal() == IDOK)
{
CString str;
str.Format(
_T("mailto:%s?subject=测试邮件&body=测试ShellOpen程序。"),
dlg.GetInputText());
OpenTheFile(str);
}
}
添加函数:
protected:
void OpenTheFile(LPCTSTR lpFilename);
void CShellOpenDlg::OpenTheFile(LPCTSTR lpFilename)
{
//利用系统命令打开文档
ShellExecute(m_hWnd, _T("open"), lpFilename,
NULL, NULL, SW_SHOWNORMAL);
}
要将之前的CInputDlg类添加到项目里