对话框的“关于”图标显示:
如果没有显示,应将图标的ID导入进来(如高亮部分)。
CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/)
: CDialog(CMyDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON1);//加载图标
}
VC++6.0中MFC编程时写出一个对象不显示该对象的成员函数解决办法:在工程文件夹下找到一个文件(工程名.ncb), 如果有:先退出工程,然后把“工程名.ncb”删除掉,重新打开VC++6.0,然后就可以出现提示了。
在MFC中怎样使用DOS命令
第一种方法:system("执行的命令");
第二种方法(本次采用):
WinExec((LPCSTR)cmd,SW_HIDE)
实例:
CString cmd=_T("cmd /c");
cmd+="copy /b D:pic.jpg + D:pic.rar D:aim.jpg";
WinExec((LPCSTR)cmd,SW_HIDE);
其中SW_HIDE 的作用是在执行这条语句时,那个黑色的命令窗口被隐藏。
选择文件路径的实现方法
实例:
char szFileFilter[]="压缩文件(*.rar)|*.rar|"
"所有文件(*.*)|*.*|";
//上一句的目的是为了过滤文件
CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);
CString strFilePath;
if(dlg.Domodal()==IDOK)
{
strFilePath=dlg.GetPathName();
CopyFile(strFilePath,"D:\pic.rar",false);
}
保存文件路径的方法
同选择文件路径的方法类似,需要改的地方时
CFileDialog(false,"jpg",NULL,OPN_HIDEREADONLY,szFileFilter)
隐藏关闭按钮的方法
在初始化函数里加入以下代码:
SetWindowLong(this->m_hWnd,GWL_STYLE,GetWindowLong(this->m_hWnd,GWL_STYLE)&~WS_SYSMENU); //隐藏关闭按钮
初始化对话框控件后,调用DoModal成员函数显示对话框并使用户输入路径和文件。DoModal返回不论是用户选择了OK(IDOK)还是取消(IDCANCEL)按钮。当DoModal返回IDOK,可以使用某一个CFileDIalog的公共成员函数获取用户输入的信息。
文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下:
CString 是MFC或者ATL中的实现,
string是C++标准库中的实现
string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中;
CString(typedef CStringT<TCHAR, StrTraitMFC<TCHAR>> CString)为Visual C++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,主要数据类型有char(应用于ANSI),wchar_t(unicode),TCHAR(ANSI与unicode均可);
char*为C编程中最常用的字符串指针,一般以’\0’为结束标志;
在MFC、ATL中使用字符串尽量使用CString,毕竟都是微软的孩子,各方面都比其它更有优势,而在非微软平台上或对移植性要求较高的场合推荐使用string,标准模板库提供了那么强大的泛型算法,没必要再自己去造车轮。
设置对话框中控件的文本和标题。SetDlgItemText
void CMyDlg::Onpicchoice()
{
char szFileFilter[]="图片文件(*.jpg)|*.jpg|"
"所有文件(*.*)|*.*|";
CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);
if(dlg.DoModal()==IDOK)
{
strpicpath=dlg.GetPathName();
SetDlgItemText(IDC_picpath,strpicpath);
CopyFile(strpicpath,"D:pic.jpg",false);
}
}
void CMyDlg::Onrarchoice()
{
char szFileFilter[]="压缩文件(*.zip)|*.zip|"
"所有文件(*.*)|*.*|";
CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);
if(dlg.DoModal()==IDOK)
{
strrarpath=dlg.GetPathName();
SetDlgItemText(IDC_rarpath,strrarpath);
CopyFile(strrarpath,"D:pic.zip",false);
}
}
void CMyDlg::Onaimchoice()
{
CString cmd=_T("cmd /c");
cmd+="copy /b D:pic.jpg + D:pic.zip D:aim.jpg"; //这里加入要执行的DOS指令
WinExec((LPCSTR)cmd,SW_HIDE);
char szFileFilter[]="图片文件(*.jpg)|*.jpg|"
"所有文件(*.*)|*.*|";
CFileDialog dlg(false,"jpg",NULL,OFN_HIDEREADONLY,szFileFilter);
if(dlg.DoModal()==IDOK)
{
straimpath=dlg.GetPathName();
SetDlgItemText(IDC_aimpath,straimpath);
if(CopyFile("D:aim.jpg",straimpath,false))
{
MessageBox("图种已经生成!","结果");
}
else
{
MessageBox("请先选择图片文件和压缩文件!","警告");
}
}
}