VC学习笔记1对话框应用程序设计

来源:互联网 发布:mac如何切换大小写 编辑:程序博客网 时间:2024/05/19 04:06

在VC++6.0环境中创建MFC工程

创建,调用新对话框:

在资源试图Dialog中右键增加新对话框,打开类向导(ctrl+w)会弹出是否加入新的对话框类,选择加入.

然后你该输入类名了,注意规范,类以C开头,如类名:Cxx  这个时候点确定时系统会自动生成xx.h的头文件

对话框可以分为模态对话框和非模态对话框两大类。区别是:在模态对话框关闭之前,用户不能再进行其他操作,而非模态对话框在运行的同时,用户还可以在应用程序的其他窗口中进行工作。

如果要调用那个新对话框,只需在响应里加入:

Cxx dlg;   //Cxx为刚才创建的类名

dlg.DoModal();  //模态打开

注意如果报错必须在前面加上#include "xx.h"

如果要建立非模态可以这样做:

先在主对话框类中点右键增加成员变量

数据类型是 Cxx*   这里用指针类型

变量名随意这里为 pdlg

在所需要响应的按钮中

pdlg=new Cxx;

pdlg->Create(IDD_DIALOG2);    //这里为对话框ID,每个元素都可以自定义一个ID,可以选中更改

pdlg->ShowWindow(SW_SHOW);  //SW_SHOW显示

注意如果报错在对应的文件里#include "xx.h"


MessageBox用法:

 在MFC中,消息对话框通过CWnd::MessageBox和AfxMessageBox两个函数进行调用。前一个函数是CWnd的成员函数,而AfxMessageBox则是全局函数。
MessageBox函数可以调用一个消息对话框。
语法:
int MessageBox( LPCTSTR lpszText, LPCTSTR lpszCaption = NULL, UINT nType = MB_OK );
AfxMessageBox函数可以调用一个消息对话框。
语法:
int AfxMessageBox(LPCTSTR lpszTest,UINT nType=MB_OK UINT nIDHelp=0);
lpszText:消息框中显示的文本。
lpszCaption:消息框的标题。
nType:消息框中显示的按钮风格和图标风格的组合,可以使用“|”操作符来组合各种风格。默认为MB_OK。

调入文件路径:

在某个响应按钮中加入:

    CFileDialog dlg(TRUE,  //打开对话框,FALSE为保存
                    NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
                    "ALL Files(*,TXT)|*.TXT||",AfxGetMainWnd());    //以TXT结尾

注意这里会弹出一个新的对话框,该对话框是系统默认的获取文件路径的对话框

    CString strPath,strText="";
    if(dlg.DoModal()==IDOK)
    {
        strPath=dlg.GetPathName();
        m_OpenPath.SetWindowText(strPath);
    }

如果点确定,strPath被赋值路径名,然后 m_OpenPath(这里我定义了静态文本)会显示路径内容

读入文件:

在上面调入以后

CFIle file(strPath,CFile::modeRead);  //以只读的方式打开char read[10000];file.Read(read,10000);for(int i=0;i<file.GetLength();i++){   strText+=read[i];}file.Close();

保存文件:

    CFileDialog dlg(FALSE,  //打开对话框,FALSE为保存                    NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,                    "ALL Files(*,*)|*.*||",AfxGetMainWnd());   //构造另存为对话框CString strPath,strText="";char write[1000];    if(dlg.DoModal()==IDOK)    {        strPath=dlg.GetPathName();        if(strPath.Right(4)!=".txt")          strPath+=".txt";   //不以.txt结尾则加.txt    }  Cfile file(_T(strPath),Cfile::modeCreate|Cfile::modeWrite);   //创建文件以写方式打开m_edit.GetWindow(strText);  //读入m_edit对象(文本控件)里面的内容到strTextstrcpy(write,strText);  //入缓存file.Write(write,strText.GetLength());  //向文件写入数据file.Close();
Edit控件:

可以给该控件增加变量

当然,如果要将Edit里面的东西更新到变量中用

UpdateData(TRUE);

如果要把变量里的东西更新到Edit里面用

UpdateData(FALSE);

判断Edit里面是否为空

m_edit,IsEmpty()

m_edit.GetWindow(strText);  //读入m_edit对象(文本控件)里面的内容到strText,CString类型

 m_OpenPath.SetWindowText(strPath);  //显示某内容



0 0