最新VC++6.0使用MFC创建应用程序框架操作步骤

合集下载

vc6.0使用方法

vc6.0使用方法

一走进Visual C++Visual C++作为一个功能非常强大的可视化应用程序开发工具,是计算机界公认的最优秀的应用开发工具之一。

Microsoft的基本类库MFC使得开发Windows应用程序比以往任何时候都要容易。

本光盘教学软件的目的就是为了让你学会在Visual C++环境下,利用微软的基本类库MFC开发出功能强大的Windows应用程序。

在本章节的内容当中,我们将向您介绍使用VC开发软件需要用到的一些基本概念,使用MFC进行编程的基本特点,以及VISUAL C++集成开发环境提供的一系列编程辅助工具——WIZARD的使用方法。

1 理解VC工程Visual C++作为一种程序设计语言,它同时也是一个集成开发工具,提供了软件代码自动生成和可视化的资源编辑功能。

在使用Visual C++开发应用程序的过程中,系统为我们生成了大量的各种类型的文件,在本节中将要详细介绍Visual C++中这些不同类型的文件分别起到什么样的作用,在此基础上对Visual C++如何管理应用程序所用到的各种文件有一个全面的认识。

首先要介绍的是扩展名为dsw的文件类型,这种类型的文件在VC中是级别最高的,称为Workspace文件。

在VC中,应用程序是以Project的形式存在的,Project文件以.dsp扩展名,在Workspace文件中可以包含多个Project,由Workspace文件对它们进行统一的协调和管理。

与dsw类型的Workspace文件相配合的一个重要的文件类型是以opt为扩展名的文件,这个文件中包含的是在Workspace文件中要用到的本地计算机的有关配置信息,所以这个文件不能在不同的计算机上共享,当我们打开一个Workspace文件时,如果系统找不到需要的opt类型文件,就会自动地创建一个与之配合的包含本地计算机信息的opt文件。

上面提到Project文件的扩展名是dsp,这个文件中存放的是一个特定的工程,也就是特定的应用程序的有关信息,每个工程都对应有一个dsp类型的文件。

vc6的使用流程

vc6的使用流程

VC6的使用流程1. 准备工作在开始使用VC6进行开发之前,需要准备以下工作:•安装VC6软件,确保已经正确安装。

•确保已经安装了适当的编译器和调试器。

•确保已经安装了所需的库文件和依赖项。

2. 创建项目VC6中创建项目的方法如下:1.打开VC6软件。

2.在菜单栏中选择“文件” -> “新建” -> “项目”。

3.在弹出的对话框中选择“Win32应用程序”或其他合适的模板。

4.输入项目的名称和保存路径。

5.点击“确定”按钮创建项目。

3. 设置项目属性在创建项目后,需要设置项目的属性以满足开发需求。

以下是设置项目属性的一般步骤:1.在VC6的“项目视图”中,选择项目文件。

2.在菜单栏中选择“项目” -> “设置”。

3.在弹出的对话框中,选择需要设置的属性,如“C/C++”、“链接器”等。

4.根据需求进行属性设置,例如指定包含目录、库文件路径等。

5.点击“确定”按钮保存设置。

4. 编写代码在VC6中,可以使用C或C++语言编写代码。

以下是编写代码的一般步骤:1.在“资源视图”中,选择需要编辑的源文件。

2.在代码编辑器中编写代码。

3.可以使用VC6提供的自动完成、语法高亮等功能来提升编码效率。

4.完成代码编写后,保存文件。

5. 编译和调试在代码编写完成后,可以进行编译和调试。

以下是编译和调试的一般步骤:1.在菜单栏中选择“生成” -> “全部重新生成”或“生成” -> “生成解决方案”。

2.编译器将会编译代码,并生成可执行文件。

3.在VC6中可以进行单步调试、断点设置等操作,以便于调试代码。

4.调试完成后,可以查看调试结果并进行必要的修正。

6. 运行和发布在完成编译和调试后,可以运行和发布项目。

以下是运行和发布的一般步骤:1.点击菜单栏中的“调试” -> “开始执行”或使用快捷键F5,运行程序。

2.程序将会在VC6中启动,并在控制台或窗口中显示运行结果。

3.如果需要发布项目,可以通过“生成”菜单中的“发布…”选项来进行发布设置。

第一章 Visual C++ 6.0 程序设计快速入门

第一章 Visual C++ 6.0 程序设计快速入门

第1章Visual C++ 6.0程序设计快速入门Visual C++ 6.0(以下简称VC 6.0)是一个功能强大、对Windows程序进行可视化开发的编程开发环境,是一个相当优秀的集成开发环境(Integrated Developing Environment,IDE)。

它集代码编辑、调试、向导、编译和可视化资源编辑等功能于一体,所提供的MFC 基本类库对Windows API函数做了很好的封装,简化了程序人员的开发过程。

本章简单介绍VC 6.0的开发环境,并演示如何通过MFC应用程序创建向导创建应用程序。

1.1 Visual C++ 6.0开发环境简介VC 6.0集成开发环境的主窗口由标题栏、菜单栏、工具栏、工作区、客户区、输出窗口和状态栏等组成。

主界面如图1.1所示。

`图1.1 VC 6.0集成开发环境标题栏:用于显示应用程序名和当前打开的文件名。

工作区:用于显示当前打开工程的有关信息,包括工程的类、资源以及文件组成等内容。

客户区:用于文本编辑器、资源编辑器等进行文件和资源的编辑。

输出窗口:用于输出编译信息、调试信息和一些查询结果信息等。

状态栏:用于显示菜单栏、工具栏等的简单说明信息以及文本编辑器中当前光标所在的行列号等。

用户可以通过鼠标拖动,将菜单栏、工具栏、工作区、客户区和输出窗口等随意更换第1章 Visual C++ 6.0 程序设计快速入门·3·位置,也可以隐藏其中的某些窗口。

1.2 创建Visual C++ 6.0应用程序本节主要演示如何通过应用程序创建向导创建应用程序,也对MFC 应用程序创建向导可以创建的3种应用程序类型进行了简单的对比。

实例001 创建第一个C++应用程序【实例介绍】 本例通过空项目创建一个普通的C++程序,这个创建过程很重要,对于以后的很多例子,都是基于这种创建方法,也是学习C++语言理论进行实验的基本前提。

【开发过程】(1)创建一个新工作区,单击【文件】-》【新建】菜单,弹出下图所示对话框图1-1 新建工作区对话框在【Workspace name:】标签下的文本框中输入对应的工作区名称(这里输入的是:Chapter1)。

VC++6.0使用MFC创建应用程序框架操作步骤

VC++6.0使用MFC创建应用程序框架操作步骤

图 为套接字类添加响应消息的事件处理成员函数
(3)为套接字类添加一般的成员函数和成员变量 •在VC++的界面中,在工作区窗口选择ClassView卡,用右键 单 击 CMySocket 类 , 会 弹 出 快 捷 菜 单 , 选 择 其 中 的 Add Member Function 可 以 为 该 类 添 加 成 员 函 数 ; 选 择 Add Member Variable可以为该类添加成员变量。
m_listRecetved
Control
CListBox
定义了一个枚举变量IDD,值 , 定义了一个枚举变量 为IDD_TALKC_DIALOG。 。 这个对话框类就是通过这个 IDD和对话框资源建立了联系。 和对话框资源建立了联系。 和对话框资源建立了联系
CTalkcDlg类的 类的 构造函数
类CMySocket的定义 的定义
CMySocket的构造函数 的构造函数 CMySocket的析构函数 的析构函数
(2)利用类向导ClassWizard为这个套接字类添加 响应消息的事件处理成员函数。 •点菜单View/ClassWizard...,进入类向导对话框, 选择Message Maps(消息映射)卡,确认Class name是CMySocket,从Messages(消息)栏中选 择事件消息,然后点击Add Function按钮,就会看 到在Member Function栏中添加了相应的事件处理 函数。 •如图所示,此程序中需要添加OnConnect, OnClose和OnReceive三个函数。这一步会在 CMySocket类的MySocket.h中自动生成这些函数的 声明,在MySocket.cpp中生成这些函数的框架,以 及消息映射的相关代码。可参看后面的程序清单。

mfc创建项目

mfc创建项目

mfc创建项目MFC(Microsoft Foundation Classes)是一种用于开发Windows桌面应用程序的框架。

它提供了包含UI控件、消息处理、文件I/O等功能的库,简化了Windows应用程序的开发过程。

本文将介绍如何使用MFC创建项目,并详细讲解其中的步骤和注意事项。

一、创建MFC项目1. 打开Microsoft Visual Studio(建议使用最新版本),点击“创建新项目”。

2. 在弹出的对话框中,选择“Visual C++”下的“MFC应用程序”模板,并指定项目名称和保存路径。

3. 点击“确定”后,会出现一个向导对话框,用于配置项目的属性。

4. 在向导的第一个页面上,选择“应用程序类型”。

根据实际需求,选择“单文档应用程序”、“多文档应用程序”或“对话框应用程序”等。

5. 在下一个页面上,选择额外的选项,如支持OLE(对象链接与嵌入)或ActiveX控件等。

根据项目需求进行选择。

6. 在接下来的页面上,指定应用程序的名称和窗口类名称,可以保持默认设置。

点击“完成”按钮,Visual Studio会自动生成MFC项目的基本结构。

二、项目结构解析1. MFC项目通常包含以下几个文件夹:Resource Files、Header Files 和Source Files。

- 在Resource Files文件夹中,包含了应用程序的资源文件,如图标、位图、对话框等。

- Header Files文件夹中,保存了头文件(.h文件),其中定义了各种类和函数的声明。

- Source Files文件夹中,保存了源文件(.cpp文件),其中包含了具体的函数实现和代码逻辑。

2. 在MFC项目中,主要的代码逻辑集中在CWinApp类和CWinMain函数中。

- CWinApp类是MFC应用程序的入口类,通过重写CWinApp的虚函数,可以实现应用程序的初始化和退出等操作。

- CWinMain函数是整个应用程序的入口函数,程序在此处开始执行。

VC6.0制作简易计算器MFC[整理]

VC6.0制作简易计算器MFC[整理]

1、单击File(文件)菜单,选中New(新建),创建新工程。

2、选择工程栏中MFC AppWizard[exe]应用程序,并命名工程名称为calculator.(如图)3、选择MFC应用程序为“基于对话框”类型,其他选项默认。

单击完成(如图)4、修改界面。

经过前3步骤,VC6.0生成的工作界面如图所示。

先将对话框中的“TODO:在这里设置对话控制”静态文字控件和“确定”按钮控件删除,再使用工具箱将界面拖动控件修改为如图所示的界面。

该图所示是使用工具箱的控件拖放制作的计算器初始界面。

由于这些控件都有默认的名字,所以我们要对控件进行改名,右击Button1按钮,选中Properties(属性)选项以修改控件的属性,如图所示。

在弹出的对话框中,将Button1按钮的Caption(标题)属性修改为“+”,此时初始界面同时变成相应的“+”如下图所示。

修改后的界面如图所示,控件的Caption属性就是控件显示出来的值。

按照前文所讲述的方式,将界面上的按钮控件和静态文本控件的Caption属性都做相应的修改,修改后的界面如图所示。

5、为Edit(编辑)控件添加类的成员变量。

首先,右击Edit控件,选择ClassWizard(建立类向导)选项,如下图所示。

在弹出的对话框中,选择上方MemberVariables选项卡,选中DIC_EDIT1,然后单击单击右侧的Add Variable按钮,如图所示。

单击Add Variable按钮后会跳出,如图所示的对话框,该对话框是设置成员变量的命名和数据类型,在此可以命名为m_data1.注意:控件的ID只是标记一个控件,程序中不能直接控制ID,只能通过修改变量来改变控件的状态。

00相应的,再将另外两个Edit控件命名,本项目就将这3个Edit控件命名为:●IDC_EDIT1:m_data1,类型为double.●IDC_EDIT2:m_data2,类型为double.●IDC_EDIT3:m_result,类型为double.6、添加按钮控件的消息处理函数。

Visual C++操作指南

Visual C++操作指南

Visual C++6.0操作指南Visual C++6.0强大的操作界面会令人眼花缭乱,但它同样强大的编程工具AppWizard (应用程序向导)的和Class wizard(类向导)使得编程变得非常简单,可视化(Visual)真正体现了面向对象的特征,很多人称之为点击编程,它使程序员的主要精力不是放在美化界面的设计上,而是致力于源代码本身。

这里介绍如何编写——个简单的应用程序,并介绍怎样在对话框窗口中增加一个命令按钮控制。

一、生成一个Hello应用程序生成一个只弹出一个窗口,但无任何实际应用的Hello应用程序。

操作步骤如下:1)进入Visual C++6.0的工作台,如图1所示。

图1 Visual C++6.0的工作界面2)从顶部“File”菜单中选“New”选项,出现一对话框,该窗口中有四个标签:File、Project、Workspace、Other Docments。

3)选择Project 标签,在该页左边的编辑框中选择MFC AppWizard(exe)项,即要用生成一个可执行文件。

4)在Project Name编辑框中输入要创建的工程文件的名字,在此命名为“Hello”。

5)在Location编辑框中选择存放该工程文件的路径和位置。

6)由于这是第一个工程文件,必须创建一个新的工作区,故“Create New Workspace ”选项必须选中。

7)在Platforms编辑框中选择win32。

表示我们使用的Visual C++ 6.0是在32位操作系统下运行的。

8)确定工程文件的类型、名称和路径选项后按OK按钮,就可以开始创建该工程文件了。

见图2所示。

图2 New 对话框下面将在Visual C++6.0 MFC APP Wizard的可视化指导下,根据自已的设计来生成应用程序的工程文件和应用程序的框架文件。

V isual C++6.0显示出—个MFC App Wizard-Step1的窗口,如图3所示。

VC6.0编的“文件读写”的详细操作步骤(两种方式:MFC和基于对话框)

VC6.0编的“文件读写”的详细操作步骤(两种方式:MFC和基于对话框)

VC6.0编的“文件读写”的两种方式(MFC和基于对话框)软件实验三:基于对话框的MFC程序实现文件读写操作实例一:操作步骤:1、新建“MFC APPWIZARD(EXE)”,选择文件路径,输入文件名,选择应用程序类型为“基本对话框”,按上图添加各控件2、按下表修改各控件的ID号,添加成员函数和消息函数控件的ID号,选择mumber variables面板,单击add variable按钮,添加成员变量,并选择变量类型。

3、写入文件1)在“基于对话框的文件读写Dlg.h”文件中定义变量(粗体字为此处添加的代码)class CMyDlg : public CDialog{// Constructionpublic://定义变量CString strFileName;//文件名CString strFilePath;//文件路径BOOL IsTextFile(CString& rFile);//判断文件类型是否正确CMyDlg(CWnd* pParent = NULL); // standard constructor………}2)双击下压按钮“写入文件”,编写“写入文件”的消息处理函数void CMyDlg::OnButtonWrite() //单击“写入到文件”按钮{// TODO: Add your control notification handler code hereUpdateData(true);CFile file;CFileDialog filedlg(0,//1-文件打开,0-文件另存为".txt|*.*",NULL,OFN_OVERWRITEPROMPT,"文本文件(*.txt)|*.txt|All Files(*.*)|*.*||",NULL);if(filedlg.DoModal()==IDOK)strFileName=filedlg.GetFileName();//获得文件名if(strFileName==""){AfxMessageBox("请输入文件名");return;}file.Open(strFileName,CFile::modeCreate|CFile::modeWrite);//将数据写入文件int length=m_WriteString.GetLength();//获取文件长度file.Write((LPCTSTR)m_WriteString,length);//获取有关文件的信息CString AfxMessageBox("已保存到文件:"+strFileName+"!");//保存结束提示strFilePath=file.GetFilePath();//获得文件的路径file.Close();//关闭文件}4、查看文件路径双击下压按钮“查看文件路径”,编写“查看文件路径”的消息处理函数void CMyDlg::OnButtonFilepath() //查看文件路径{// TODO: Add your control notification handler code herem_FilePath=strFilePath;UpdateData(false);}5、读入文件1)定义判断文件类型是否正确的函数(粗体字为此处添加的代码)class CMyDlg : public CDialog{// Constructionpublic://定义变量CString strFileName;//文件名CString strFilePath;//文件路径BOOL IsT extFile(CString& rFile);//判断文件类型是否正确CMyDlg(CWnd* pParent = NULL); // standard constructor………}2)编写IsTextFile函数BOOL CMyDlg::IsTextFile(CString &rFile)//判断文件类型是否正确{CStringList strList;CString str(rFile);strList.AddHead(".TXT");strList.AddHead(".SYS");strList.AddHead(".BA T");strList.AddHead(".DA T");str=str.Right(4);//文件名的右边四位字符str.MakeUpper();//转换成大写return(strList.Find(str))?TRUE:FALSE;}3)在“基于对话框的文件读写Dlg.cpp”文件开头添加头文件#include "fstream.h"//添加的头文件4)单击下压按钮“读入文件”,编写下压按钮“读入文件”的消息函数void CMyDlg::OnButtonRead(){// TODO: Add your control notification handler code herefstream f1;//定义文件流对象char s[200];CFileDialog filedlg(1,//1-文件打开,0-文件另存为".txt|*.*",NULL,OFN_OVERWRITEPROMPT,"文本文件(*.txt)|*.txt|All Files(*.*)|*.*||",NULL);if(filedlg.DoModal()==IDOK){UpdateData(true);strFileName=filedlg.GetFileName();//获得文件名if(!IsTextFile(strFileName))//判断文件类型是否正确{AfxMessageBox("文件类型不正确");return;}f1.open(strFileName,ios::in|ios::nocreate);while(!f1.eof()){f1.getline(s,255);m_strRead=m_strRead+"\r\n"+s;//添加文件中的文本到编辑框UpdateData(false);}AfxMessageBox(strFileName+"文件读入完毕");//保存结束提示f1.close();//关闭文件流}}6、运行程序1)在写入文件的编辑框中输入内容,单击“写入文件”按钮,并可选择路径保存该文件。

在VS2024下如何建立一个MFC应用程序

在VS2024下如何建立一个MFC应用程序

在VS2024下如何建立一个MFC应用程序1. 打开Visual Studio 2024、选择“文件”(File)菜单,点击“新建”(New)。

2. 在“新建项目”对话框中,选择“Visual C++”下的“MFC”项目类型。

3. 在右侧面板中选择“应用程序向导(Application Wizard)”。

4. 在“应用程序向导”对话框中,选择“单文档”(Single Document)或“多文档”(Multiple Document)项目类型,然后点击“完成”(Finish)按钮。

5.在下一个对话框中,可以选择MFC应用程序模板的属性,如应用程序名称、位置、解决方案名称等。

在这里可以根据自己的需求进行设置。

6. 点击“确定”(OK)按钮后,Visual Studio将会自动生成MFC应用程序的基本框架。

7. 在应用程序的框架中,可以添加自定义的控件、对话框和功能。

可以通过“视图”(View)菜单添加各种视图类,通过“资源视图”(Resource View)菜单添加资源文件等。

8. 在资源视图中,可以添加菜单、工具栏等界面元素。

可以通过右键点击资源视图中的菜单或工具栏,选择“添加资源”(Add Resource)来添加自定义的菜单或工具栏。

9.通过双击资源视图中的对话框或菜单项,可以添加相应的处理函数。

可以在处理函数中编写相应的逻辑代码。

10. 可以在“解决方案资源管理器”(Solution Explorer)中添加和管理项目所需的文件和资源。

11. 可以通过生成(Build)和调试(Debug)菜单中的选项来构建和调试MFC应用程序。

12.在开发过程中,可以随时保存项目和代码,以便以后继续开发或部署。

以上就是在VS2024下建立一个MFC应用程序的步骤。

在实际开发过程中,还可以根据具体需求添加和修改功能,以满足实际需求。

VC6.0中MFC生成.exe安装包步骤

VC6.0中MFC生成.exe安装包步骤

最全版,亲测版VC6.0生成MFC可执行文件安装包步骤1、需要文件1、VC6.0MFC应用程序所使用的公用代码和库函数大都被包括在了7个DLL动态链接库中(在目录C:\Windows\System32下),生成安装文件后,同时将下列七个DLL文件一同发布给你的客户,就可以了。

2、你只需要发布一个release版本的应用程序abc.exe;3、IntallShield for VC6.0 安装包;2、安装 IntallShield按步骤安装完IntallShield后,再打开VC6.0;进行下列设置以便能在Visual C++6.0的"Tool"菜单中使用"InstallShield Wizard"菜单命令:(1) Visual C++6.0正确安装后,启动Visual C++6.0,并选择"Tools"菜单->"Customize"命令。

图1(2) 在弹出的"Customize"对话框中,切换到"Tools"页面,如图2所示。

图2(3) 将菜单列表项滚动到最后一个空行,并双击鼠标,键入"&InstallShield Wizard",并按Enter键。

(4) 选定刚才键入的菜单列表项,单击Browse按钮(有"..."符号的按钮)将InstallShield所在的Program文件夹下的IsVcWiz.exe调入。

(5) 将"Initial directory"的路径设为IsVcWiz.exe所在的路径,单机Close。

到此InstallShield Wizard安装完毕(特别注意exe所在路径不要包含有中文)。

(6)检查是否安装成功,如图点击Tools菜单下的InstallShield Wizard会弹出你要打包的exe的界面,说明InstallShield Wizard安装成功,接下来进行第下步。

VC++6.0 MFC编程实例

VC++6.0 MFC编程实例

第10章 Visual C++编程实例
10.2 常用MFC类和消息处理
10.2.1 常用MFC类 MFC的类构成了一个完整的体系,该体系由一个 被称为Cobject的类作为基类,其它类大部分由该类派 生而来,如CWnd(窗口类)、Cdocument(文档类)、 Cfile(文件类)等。也有一部分类如字符串类,Cstring和
第10章 Visual C++编程实例
程序开始
生成CwinApp 的一个实例, 初始化全局对象 AfxWinMain() 的函数体 初始化句柄
退出句柄 WindMain () 的函数体 消息循环
退出句柄
程序结束
图 10-1
第10章 Visual C++编程实例
一个MFC程序运行的一般过程如下:
(1) 生成CwinApp的一个实例(调用CwinApp的构造函数), 初始化全局对象; (2) Win32入口程序函数WinMain调用函数AfxWinMain; (3) AfxWinMain调用函数CwinApp的成员函数InitInstance;
库(DLL)。这种链接方式显著地减小了应用程序的可执 行文件的大小,并能有效地利用系统资源。
第10章 Visual C++编程实例
用系统资源。
然而,动态链接到 MFC 时要求提供 Mfcnn.dll 库文 件,文件名中的 nn 代表MFC 的版本号。该文件通常在 Windows System 或 System32 文件夹下。如果一个应用 程序动态链接到了 MFC,但该应用程序通常用在那些 可能没有 Mfcnn.dll 库的计算机系统上,则应把这个库 文件作为应用程序包的一部分提供给用户。 Microsoft 允许程序员自由地把这些库文件附在应用程序中。

vc++使用MFC操作EXCEL文件

vc++使用MFC操作EXCEL文件

使用MFC操作EXCEL文件本文档适用于:•Microsoft Foundation Classes (MFC), Microsoft Visual C++, 32-bit Editions, version 6.0 以上•Microsoft OLE 库第一步:建立一个自动化工程1.启动VC 6.0,打开新建对话框,新建一个MFC AppWizard(exe)工程,这里工程明设置为TestExcel。

2.进入MFC 应用程序向导,选择基本对话框,直接点击完成,工程文件结构如下图:3.打开MFC ClassWizard窗口(查看—>建立类向导),选择Automation,单击AddClass按钮,选择From a type library...,弹出文件选择对话框,之后定位到Microsoft Office的安装目录(通常为C:\Program Files\Microsoft Office\Office),选择EXCEL9.OLB注意,确定后,弹出Confirm Classes窗口,选择列表中的所有类,单击OK按钮。

注意文件名EXCEL9.OLB,因安装的Office版本不同而有所差异,EXCEL9.OLB对应的是Microsoft Office 2000,微软命名方式为Excel+数字的形式,Office版本越高,数字越大。

4.返回编辑器,查看工程文件,可发现多了EXCEL9.H及EXCEL9.CPP两个文件。

5.打开stdafx.h头文件确保包含如下头文件:#include <afxdisp.h>#include "excel9.h"6.打开TestExcel.cpp文件,修改CTestExcelApp::InitInstance(),加入如下代码:BOOL CTestExcelApp::InitInstance(){if( !AfxOleInit() ){AfxMessageBox("初始化Ole出错!");return FALSE;}AfxEnableControlContainer();............return FALSE;}为保证编译时不产生重复定义错误,打开excel9.h文件,在文件开始位置加入如下代码:#if !defined _HEAD_FILE_EXCEL9_#define _HEAD_FILE_EXCEL9_相应的,在文件末尾加入:#endif到此,OLE自动化工程建立完成。

DIP创建步骤(稍改)

DIP创建步骤(稍改)

使用MFC AppWizard创建图像处理应用程序基本框架,其步骤如下:(1)打开VC++6.0,从File菜单中选择New菜单项,弹出New对话框。

(2)选择Projects选项卡,从项目类型列表中选择MFC AppWizard(.exe),在Projects Name文本框中输入项目名称,这里设为Dip。

(3)在MFC AppWizard-Step 1对话框中选择MDI用户界面(可同时打开两个或两个以上文档)和中文[中国]。

(4)在MFC AppWizard-Step 6对话框中将CDipView类的基类改为CScrollView以支持视图滚动。

其他各选项采用默认值。

(5)单击Finish按钮,再单击OK,MFC AppWizard将自动生成图像处理程序的各个源文件。

(6)将ImageLoad.dll拷贝到Windows\System32目录。

将ImageErros.h、ImageLoad.h两个头文件及ImageLoad.dll、ImageLoad.lib库文件拷贝到当前工程目录文件里面。

(7)在Fileview-->Dipfiles→右键→Setting→Link→(对象/库模块:)ImageLoad.lib(8)复制DibObject.h和DibObject.cpp到所建的当前工程目录文件里面。

(9)在菜单栏→工程→添加工程→Files→添加DibObject.h,DibObject.cpp,ImageErros.h、ImageLoad.h (10)在Dip.cpp中(#endif 下面)添加:char szFilter[] = "位图文件(*.BMP)|*.BMP|图形交换格式文件(*.GIF)|*.GIF|PCX文件(*.PCX)|*.PCX|TGA 文件(*.TGA)|*.TGA|JPEG文件(*.JPG)|*.JPG|标记图像文件(*.TIF)|*.TIF|所有支持图片|*.BMP,*.GIF,*.PCX,*.TGA,*.JPG,*.TIF|所有文件(*.*)|*.*||";(11)在Dip.cpp中,在// CDipApp中添加菜单命令:ON_COMMAND(ID_FILE_NEW, OnFileNew)ON_COMMAND(ID_FILE_OPEN, OnFileOpen) 得到代码如下:BEGIN_MESSAGE_MAP(CDipApp, CWinApp)//{{AFX_MSG_MAP(CDipApp)ON_COMMAND(ID_APP_ABOUT, OnAppAbout)ON_COMMAND(ID_FILE_NEW, OnFileNew)ON_COMMAND(ID_FILE_OPEN, OnFileOpen)// NOTE - the ClassWizard will add and remove mapping macros here.(12)在Dip.cpp中,在// CDipApp message handlers下为上述菜单命令添加消息映射函数的代码:void CDipApp::OnFileNew(){// TODO: Add your command handler code here}void CDipApp::OnFileOpen(){static int nIndex = 1;CFileDialog FileDlg( TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter );FileDlg.m_ofn.nFilterIndex = (DWORD) nIndex;if( FileDlg.DoModal() == IDOK ){CString PathName = FileDlg.GetPathName();PathName.MakeUpper();OpenDocumentFile( PathName );nIndex = (int) FileDlg.m_ofn.nFilterIndex;}}(13)在Dip.h中添加afx_msg void OnFileNew();afx_msg void OnFileOpen();形成以下代码:// Implementation//{{AFX_MSG(CDipApp)afx_msg void OnAppAbout();afx_msg void OnFileNew();afx_msg void OnFileOpen();// NOTE - the ClassWizard will add and remove member functions here.// DO NOT EDIT what you see in these blocks of generated code !//}}AFX_MSGDECLARE_MESSAGE_MAP()(14)在DipDoc.cpp预处理指令中添加三个预处理指令:#include "MainFrm.h"#include "ChildFrm.h"#include "DipView.h"(15)在DipDoc.cpp预处理指令后添加外部变量声:extern char szFilter[];(#endif 下面)(16)在DipDoc.cpp中添加菜单命令:ON_COMMAND(ID_FILE_NEW, OnFileNew)ON_COMMAND(ID_FILE_OPEN, OnFileOpen)ON_COMMAND(ID_FILE_SA VE_AS, OnFileSaveAs) 得到以下代码:// CDipDocIMPLEMENT_DYNCREATE(CDipDoc, CDocument)BEGIN_MESSAGE_MAP(CDipDoc, CDocument)//{{AFX_MSG_MAP(CDipDoc)ON_COMMAND(ID_FILE_NEW, OnFileNew)ON_COMMAND(ID_FILE_OPEN, OnFileOpen)ON_COMMAND(ID_FILE_SA VE_AS, OnFileSaveAs)// NOTE - the ClassWizard will add and remove mapping macros here.// DO NOT EDIT what you see in these blocks of generated code!//}}AFX_MSG_MAPEND_MESSAGE_MAP()(17)在DipDoc.cpp中构建构造函数和析构函数// CDipDoc construction/destructionCDipDoc::CDipDoc(){m_pDibObject = NULL;m_bImageLoaded = FALSE;// TODO: add one-time construction code here}CDipDoc::~CDipDoc(){if(m_pDibObject != NULL){delete m_pDibObject;m_pDibObject = NULL;}}(18)在DipDoc.cpp中添加消息映射函数OnFileNew()和OnFileOpen()的指令内容:// CDipDoc commandsvoid CDipDoc::OnFileNew(){// TODO: Add your command handler code here}//打开图像文件void CDipDoc::OnFileOpen(){static int nIndex = 1;CFileDialog FileDlg( TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter );FileDlg.m_ofn.nFilterIndex = (DWORD) nIndex;if( FileDlg.DoModal() == IDOK ){CString strPathName = FileDlg.GetPathName();AfxGetApp()->OpenDocumentFile( strPathName );nIndex = (int) FileDlg.m_ofn.nFilterIndex;if( !ReadImgToDoc() ){AfxMessageBox("无法载入图像文件!");return;}}}//另存图像文件void CDipDoc::OnFileSaveAs(){static int nIndex = 1;CFileDialog DialogSaveAs( FALSE, NULL, m_pDibObject->GetImageName(),OFN_HIDEREADONLY, szFilter );DialogSaveAs.m_ofn.nFilterIndex = (DWORD) nIndex;if( DialogSaveAs.DoModal() == IDOK ){CMainFrame *pMainFrame = ( CMainFrame *)AfxGetMainWnd();CChildFrame *pChildFrame = ( CChildFrame *)pMainFrame->MDIGetActive();CDipView *pDipView = ( CDipView * )pChildFrame->GetActiveView();nIndex = (int) DialogSaveAs.m_ofn.nFilterIndex;//是JPEG格式图像,判断其是否为24位真彩色图像if( nIndex == 5 ){if( m_pDibObject->GetNumBits() != 24 ){AfxMessageBox("只有24位真彩色图像才能存为JPEG格式!");return;}}//CDibObject类中有图像才能保存if( m_pDibObject != NULL ){//获取指定的文件名(含路径名)CString strPathName = DialogSaveAs.GetPathName();int nFindIndex = strPathName.Find(".");if( nFindIndex != -1)strPathName = strPathName.Left( nFindIndex );//加上指定的扩展名以构成完整文件名strPathName += CDibObject::szExtensions[ nIndex - 1 ];//调用CDibObject类成员函数Save()保存图像m_pDibObject->Save( strPathName );//设置窗口标题CString strFileName = DialogSaveAs.GetFileName();nFindIndex = strFileName.Find(".");if ( nFindIndex != -1 )strFileName = strFileName.Left( nFindIndex );strFileName += CDibObject::szExtensions[ nIndex - 1 ];pChildFrame->SetWindowText( strFileName );SetPathName( strPathName );//若保存为JPEG图像,重新将图像载入并更新视图的显示if( nIndex == 5 ){m_pDibObject->Load( strPathName );pDipView->InvalidateRect( NULL, FALSE );pDipView->UpdateWindow();}}}}//将图像文件读入CDibObject类对象中BOOL CDipDoc::ReadImgToDoc(){CString strPathName = GetPathName();//设置等待光标BeginWaitCursor();m_pDibObject = new CDibObject( strPathName.GetBuffer(3) );//取消等待光标EndWaitCursor();//读入图像文件失败if( m_pDibObject == NULL ){ AfxMessageBox("无法创建图像类对象!");//返回FALSEreturn(FALSE);}//读入图像文件成功,设置相应变量m_bImageLoaded = TRUE;//返回TRUEreturn(TRUE);}(19)在DipDoc.h中声明两个公有成员变量:// Attributespublic:BOOL m_bImageLoaded;//表示指向图像是否读入内存CDibObject *m_pDibObject; //表示指向CDibObject类的指针,来保存图像接着定义一个公有成员变量:// Operationspublic:BOOL ReadImgToDoc();//负责读入图像对象文件(20)在DipDoc.h中添加afx_msg void OnFileNew();afx_msg void OnFileOpen();afx_msg void OnFileSaveAs();形成以下代码:protected://{{AFX_MSG(CDipDoc)afx_msg void OnFileNew();afx_msg void OnFileOpen();afx_msg void OnFileSaveAs();// NOTE - the ClassWizard will add and remove member functions here.// DO NOT EDIT what you see in these blocks of generated code !//}}AFX_MSGDECLARE_MESSAGE_MAP()(21)在DipView.cpp中,在void CDipView::OnDraw(CDC* pDC)中添加以下内容,实现具体的图像绘制任务:void CDipView::OnDraw(CDC* pDC){CDipDoc* pDoc = GetDocument();ASSERT_V ALID(pDoc);// TODO: add draw code for native data hereif( !pDoc->m_bImageLoaded){pDoc->ReadImgToDoc();}//滚动窗口CSize sizeTotal;sizeTotal.cx = pDoc->m_pDibObject->GetWidth();sizeTotal.cy = pDoc->m_pDibObject->GetHeight();SetScrollSizes (MM_TEXT, sizeTotal);//获取客户区尺寸OnPrepareDC(pDC);CRect Rect;GetClientRect( &Rect );//获取图像宽度及高度int nImageWidth, nImageHeight;nImageWidth = pDoc->m_pDibObject->GetWidth();nImageHeight = pDoc->m_pDibObject->GetHeight();//当图像实际尺寸小于窗口尺寸时,将图像放在客户区中间int nX, nY;if( nImageWidth < Rect.Width() )nX = (Rect.Width() - nImageWidth ) / 2;elsenX = 0;if( nImageHeight < Rect.Height() )nY = (Rect.Height() - nImageHeight ) / 2;elsenY = 0;pDoc->m_pDibObject->Draw(pDC, nX, nY);}(22)考虑工程中多处引用DibObject.h,在StdAfx.h预编译文件中直接添加DibObject.h: (#endif 下面)#include "DibObject.h"。

VC++6.0入门【第六章 创建和使用对话框】

VC++6.0入门【第六章 创建和使用对话框】

第6章创建和使用对话框对话框是一种用户界面,几乎每一个Windows程序都使用对话框与用户进行交互。

对话框可能是一个简单的只含有OK按钮的消息框,也可以是一个复杂的数据输入表单。

对话框上有一些方便用户输入的控件,对话框依靠这些控件与用户进行交互,其实质是一个接收消息的窗口。

在本章节我们主要讲述模式对话框和无模式对话框的原理和使用方法,下一章将详细介绍各种控件的使用。

你将学习创建一个对话框,使用对话框模板编辑一个对话框资源,并在程序中调用对话框的方法。

6.1 对话框的基本原理6.1.1 对话框的工作原理在创建一个对话框之前,我们先来了解一下对话框是如何工作的,对话框的数据来自三方面:对话框资源、对话框对象、和一个文档对象:1.对话框资源对话框资源是一个用户输入或取得数据的图形界面。

这个图形界面是使用Develop Studio的对话框编辑器在对话框模板上创建的,程序员可以在对话框模板上增加并编辑控件,生成对话框资源。

当应用程序运行时,就可以得到一个对话框。

2.对话框对象MFC使用CDialog类来描述对话框,它是CWnd类的派生类。

在CWnd类的基础上增加了数据交换的功能。

当创建一个新的对话框资源后,使用ClassWizard可以创建一个对话框类的派生类。

对话框对象实现了对话框和应用程序之间的通信。

在应用程序中定义一个对话框对象后,在对话框显示前,可以通过访问对话框对象的成员变量为一个对话框的控件初始化,在对话框关闭后,可以通过访问对话框对象的成员变量获得用户的输入数据。

3.文档对象MFC使用文档对象描述应用程序处理的数据,用户输入的数据要进一步的处理,通常要先存贮到文档对象中。

例如:一个学生记录处理的应用程序,用户通过一个对话框输入学生记录并贮存到一个文件中。

应用程序的处理顺序是:用户在对话框中输入信息,通过对话框对象得到输入信息,将输入信息整理到文档对象中,使用序列化函数将文档对象存贮到一个文件中,所以文档对象扮演了一个很重要的数据交换的角色。

VC++6.0使用教程

VC++6.0使用教程
打开vc60双击桌面上的vc60图标鼠标左键单击windows操作系统的开始程序microsoftvisualstudio60microsoftvisual新建filenewctrln新建工程命名10修改工程存放路径11创建一个空工程12生成一个空工程13vc60的编辑窗口14自动生成的文件和文件夹15工程管理结构workspaceprojectproject我们一般把自定义数据类型函数等的定义和声明放置在头文件中
int main() {
/* 向标准输出stdout输出一个字符串 */
printf(“Hello, World!\n”);
return 0;
/* 主函数返回 */
}
图中显示的黑色窗口称为控制台窗口,程序的输 入、输出均在这个窗口中进行。
C程序开发过程
打开 VC++6.0
双击桌面上的vc++6.0图标
鼠标左键单击Windows操作系统的“开始” →“程序” →“Microsoft Visual Studio 6.0” →“Microsoft Visual C++ 6.0”
新建
File → New (Ctrl+N)
创建一个新的项目文件
新建工程命名
修改工程存放路径
创建一个空工程
生成一个空工程
VC++6.0 使用教程
1
用VC编写控制台程序
• Microsoft Visual C++(简称VC)是是微 软推出的一款基于其Windows系统C++ 编译器,将“高级语言”翻译为“机器 语言(低级语言)”的程序。VC是一个 功能强大的可视化软件开发工具。
什么是控制台程序?

VC6.0MFC串口调试助手编辑过程介绍

VC6.0MFC串口调试助手编辑过程介绍

其于MFC的串口调试助手编辑过程一、新建打开VC6.0 文件新建工程MFC AppWiard(exe) 位置(选择保存工程位置)工程名称(输入工程名XXXX)确定选择基本对话框下一步下一步下一步选择(CXXXXDlg)完成确定在生成的基本对话框内将不需要按钮及提示框(自动生成的“确定”“取消”及提示框)删除或修改使用,至此基本框架完成如下图:二、往生成的基本框架中添加控件1、因为控件列表框内没有串口通信用到的通信控件,所以要先添加到控件列表框内再将控件添加到基本框内使用,步骤如下:菜单栏工程添加到工程Components and controls…Registered ActiveX Controls 选择“Microsoft Communications Control, version 6.0”Insert 确定OK 关闭此子窗口完成添加操作标志如上图所示。

2、将刚才添加添加到控件列表框内的串口控件添加到基本框架内点击控件列表框内的串口控件,此时光标变为“十”形,在基本框架内随意划取一矩形区域,即可以添加串口控件,不需要修改此控件的大小及位置,因为程编译运行后此控件是看不到的,步骤结果如下图:此控件(标志)是下面步骤添加进来的串口控件基本框架3、继续往基本框架内添加用于编辑发送数据的输入编辑框及输出编辑框,同理选择控件列表框内的“编辑框控件”,以相同的操作即可添加两个编辑窗口及一个按纽控件如下图所示:选择其中任意一个作为输入编辑框及输出编辑框这两个窗口需要修改大小及位置,因为程序运行后将会显示而串口通信控件则不显示,上图是运行后的效果。

4、对以上四个控件编程步骤如下:a、右击串口通信控件建立类向导Member variables Control IDS中选择IDC_MSCOMM1 add variable…Member variable name中输入控件变量名m_ctrlComm(变量名可以随意选取,但程序中应与所取变量名一致)OK 确定b、右击编辑框、属性、常规、ID:中输入ID号,此编辑框用于接收显示数据的其ID 号为IDC_EDIT_RXDATA(可以随意选取,但程序中应与所取ID号一致),再在此窗口的样式中勾选”多行”,同时将“自动水平滚动(T)”勾选去掉,再勾选“垂直滚动(V)”,此勾选操作是用于垂直多行显示的,按回车后即可输入;同理右击另一编辑框输入ID号为IDC_EDIT_TXDATA此编辑框用于编辑发送数据的,同样也选上用于垂直多行显示,发送框可以不用垂直多行显示;再为按钮控件添加ID号,为IDC_BUTTON_MANUALSEND,并将标题中的“Button1”改为“发送”,功能是按一次就把发送编辑框中的内容发送一次。

VC++6.0教程_C语言_工具

VC++6.0教程_C语言_工具

vc++6.0入门教程步骤是:(先工程—后文件—编译—连接---运行)1 桌面上的快捷方式如下:双击即可运行2 在所有程序里点击也可以运行:3 即会出现如下界面:14 进入后的界面如下:25将每日提示关闭既可:31,建立一个工程,“文件”——“新建”,出现下面界面:选择“Win32 Console Application”(控制台应用程序,左边倒数第三个),命名工程名称,选择保存位置,4点击“确定”,进入下一步,看到如下提示界面:建立一个空工程,对应其他需要的你一可以建立别的工程;点击“完成”,之后:5显示你创建的工程的信息。

2,再在有一个的工程的条件下,我们再建立一个源文件;“文件”——“新建”(快捷键Ctri+N),出现:6建立源文件,选择“C++ Source ”,一般都是建立这种文件的(适用在当文件中适用)如果要建立头文件的话,选择“C/C++ Header File”,(适用在多文件工程中使用)命名,文件名称,点击“确定”,之后:7进入编辑区,在主界面编写代码:如下编写完之后呢:89 可以按编译按钮调试程序,看看有没有错误,有的话改正,没有的话就可以再按连接按钮检查连接(多文件工程时常用,检查文件间是否正常连接),最后,点运行按钮,就可以运行了。

如果是您有代码如:cpp 文件,或 .h 文件,想添加都VC6.0里来测试的话,可以这样做:首先,要理解一下 文件扩展名为:cpp 和.h文件扩张名是.h,代表的是头文件,一般是书写一些函数原型,以及一些在整个程序中常用到的结构体,频繁使用的函数说明,定义等等;文件扩张名为,cpp的,是C++中的源文件,也是最常用到的文件,每建立一个工程都要至少一个源文件(至少要有一个函数入口——主函数main() ),包含了核心代码;建立与运行说明:(以VC 6.0编译器为例,其他编译器类似)首先,打开VC 6.0编译环境;10在菜单栏——文件(的下拉菜单中选择“新建”),在弹出的选择窗口中,选择Win32 Console Application(控制台应用程序) ,在填写工程名称,选择一个程序保存路径,点击“完成”,查看工程信息。

MFC控件使用详细教程

MFC控件使用详细教程

MFC控件使用详细教程MFC(Microsoft Foundation Classes)是微软公司开发的一套面向对象的C++类库,旨在简化Windows应用程序的开发。

其中包括了一系列的控件类,用于构建Windows用户界面。

本文将介绍MFC控件的使用,并提供详细的教程。

1.创建MFC应用程序首先,打开Visual Studio开发环境,选择创建MFC应用程序项目。

在项目向导中,选择“对话框”应用程序类型。

2.添加控件到对话框在MFC应用程序中,用户界面的主要组成部分是对话框。

打开对话框资源文件(通常是一个名为“MainDlg”的文件),可以看到空白的对话框。

从工具箱中选择所需的控件,例如按钮(Button)、文本框(Edit Control)等。

点击工具箱中的控件,然后在对话框上绘制一个矩形,即可在对话框中添加该控件。

3.设置控件属性选中添加的控件,可以在“属性”窗口中设置其属性。

例如,可以设置按钮的文本、大小、位置等。

4.响应控件事件控件可以触发各种事件,例如按钮点击事件。

为了响应这些事件,我们需要添加相应的事件处理程序。

在资源视图中,右键点击对话框资源文件,选择“添加事件处理程序”。

然后,选择要响应的事件,例如按钮的点击事件。

在出现的对话框中,输入事件处理程序的名称,并选择成员变量的名称。

点击“确定”后,Visual Studio会自动生成事件处理程序的代码。

5.控件的常用操作- 设置控件的文本:使用SetWindowText函数,例如SetWindowText("Hello");- 获取控件的文本:使用GetWindowText函数,例如CString str; GetWindowText(str);- 启用或禁用控件:使用EnableWindow函数,例如EnableWindow(FALSE)可以禁用控件;- 显示或隐藏控件:使用ShowWindow函数,例如ShowWindow(SW_HIDE)可以隐藏控件;- 设置或获取控件的位置、大小:使用SetWindowPos和GetWindowRect函数,例如SetWindowPos(NULL, x, y, width, height)可以设置控件的位置和大小;- 样式和外观设置:使用ModifyStyle和SetWindowLong函数,例如在按钮上设置图标和文字风格。

手工生成(不用向导)MFC对话框应用程序

手工生成(不用向导)MFC对话框应用程序

手工生成(不用向导)MFC对话框应用程序天天用MFC的向导开发程序觉得有的时候不是很方便,怎样不用向导直接用MFC来生成一个对话框应用程序呢?现在我来为大家介绍一下。

打开vc++6.0,建立个基本的工程,当然了工程名称自己随便取,这里我取名为AppDlgTst。

工程的类型选择Win32 Application,如下图:第二歩选择“An empty project”,一个空的工程,如下图:点击“完成”,再“确定”,建立一个win32工程。

接下来,给工程添加主程序类。

主菜单(insert->NewClass),打开“New Class”对话框。

新建一个类,Name: CWinAppDlg ,Derived From :CWinApp,as:public。

点击“Change…”按钮,修改类文件的路径,把类文件放到新建的工程目录下。

界面如下:点击“OK”,会出现如下提示框:不用管它,确定。

这是一个基本的应用程序类,就这样建成了。

接下来,我们需要手动添加一个对话框,添加方法如下:依次点击主菜单的“insert”→“resource…”,打开insert resource对话框。

选中“Dialog”,点击“New”按钮,一个对话框就添加到你的工程中了。

如下图:对话框添加了,但工程中相应的资源管理器(ResourceView)还没有出现,无法操作添加的对话框。

关闭工作区,此时系统会提示是否保存资源文件?如下图:点击“是”,保存资源文件为“script.rc”,保存,如下图。

重新打开工程,但左侧的工程管理栏内仍然没有“resourceView”页,怎么办?把刚才保存的资源文件添加到工程即可,操作如下:依次点击主菜单“project”→“add project”→“Files…”,打开“Insert Files into Project”对话框,找到刚才退出工程时保存的资源文件“Script.rc”,选中它,点击“保存”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Caption 服务器名称 服务器端口 消息 发送的消息 接收的消息
连接 断开 发送
3.为对话框中的控件对象定义相应的成员变量
•在窗口菜单中点查看/建立类向导,进入类向导(Class Wizard) 对话框,如图。
•选择成员变量卡(Member Variables),用类向导为对话框 中的控件对象定义相应的成员变量。确认Class Name是 CTalkcDlg,在左边的列表框中选择一个控件,然后点“Add Variable”按钮,会弹出”Add Member Variable”对话框, 如图所示,然后按照表输入即可。
把控件ID与类的成员 变量匹配起来
4.创建从CAsyncSocket类继承的派生类
(1)为了能够捕获并响应socket事件,应创建用户自己的套接字类,它应 当从CAsyncSocket类派生,还能将套接字事件传递给对话框,以便执行用 户自己的事件处理函数。选择菜单“插入/类…”,进入“New Class”对 话框,如图所示。
CButton
IDC_EDIT_SERVNAME
m_strServName Value
CString
IDC_EDIT_SERVPORT
m_nServPort
Value
int
IDC_EDIT_MSG
m_strMsg
Value
CString
IDC_LIST_SENT
m_listSent
Control
CListBox
VC++6.0使用MFC创建应用程 序框架操作步骤
创建客户端程序
1.使用MFC AppWizard创建服务器端应用程序框 架。
2.为对话框界面添加控件对象 3.为对话框中的控件对象定义相应的成员变量 4.创建从CAsyncSocket类继承的派生类 5.为CAsyncSocket类继承的派生类添加控件对象
IDC_LIST_RECEIVED
m_listRecetved
Control
CListBox
定义了一个枚举变量IDD,值 为IDD_TALKC_DIALOG。 这个对话框类就是通过这个 IDD和对话框资源建立了联系。
CTalkcDlg类的 构造函数
类向导生成的 对话框控件和 对应的控件变 量的映射语句
事件的响应函数 6.为对话框类添加控件对象事件的响应函数 7.为CTalkcDlg对话框类添加其它的成员函数和成
员变量架构
1.使用MFC AppWizard创建客户端应用程序框架。 (1)在New对话框中,选择Projects卡,如图所示。选MFC AppWizard(exe) ,在Project Name处填入工程名Talkc, 在Location处选定存放此工程的目录。然后点击OK按钮。
图 添加自己的套 接字类
•选择或输入以下信息:
Class Type:选择MFC Class
Class Infoumation下的Name: 输入CMySocket
Class Infoumation 下 的 Base class : 选 择 CAsyncSocket
控件ID IDC_STATIC_SERVNAME IDC_STATIC_SERVPORT IDC_STATIC_MSG IDC_STATIC_SENT IDC_STATIC_RECEIVED IDC_EDIT_SERVNAME IDC_EDIT_SERVPORT IDC_EDIT_MSG IDC_BUTTON_CONNECT IDC_BUTTON_CLOSE IDOK IDC_LIST_SENT IDC_LIST_RECEIVED
在主对话框中添加控件
图 Talkc程序的主对话框
对话框中的控件属性按照下表修改控件属性。
表 Talkc程序主对话框中的控件属性
控件类型 静态文本 static text 静态文本 static text 静态文本 static text 静态文本 static text 静态文本 static text 编辑框 edit box 编辑框 edit box 编辑框 edit box 命令按钮 button 命令按钮 button 命令按钮 button 列表框 listbox 列表框 listbox
(4)出现新工程信息对话框(New Project Information),说明了所创建 的骨架工程的有关信息。如图所示。
所创建的程序是一个基于对话框的Win32 应用程序,将自动创建两个类: 应用程序类CTalkcApp,对应的文件是 talkc.h和talkc.cpp; 对话框类CTalkcDlg,对应的文件是 talkcDlg.h和talkcDlg.cpp。 支持Windows Socket 使用共享的DLL实现MFC42.DLL。
(2)出现MFC AppWizard设置的第一步对话框(MFC AppWizard – Step 1),如图所示。从中选择Dialog based的应用程序类型,语言支持 选择中文(中国),使此工程能够正确地进行中文的输入、输出、显示及处 理。然后点击NEXT按钮。
(3)出现MFC AppWizard设置的第二步对话框(MFC AppWizards – Step 2 of 4),如图所示,在Windows Sockets复选框上打上选择标记, 表示应用程序将支持WinSock套接字。接受其它的默认设置。跳过后面的步 骤,直接点击Finsh按钮。
图 增加控件成员 变量的对话框
表 客户端程序对话框中的控件对象对应的成员变量
控件ID Control IDs
IDC_BUTTON_CONNECT
变 量 名 称 Member Variable Name
变量类别 Category
变量类型 Variable Type
m_btnConnect
Control
2.为对话框界面添加控件对象
•在创建了应用程序骨架之后,可以布置程序的主 对话框。
•在MFC界面左方的工作区(workspace)中选择 resourceView卡,从中选择Dialog,双击 IDD_TALKC_DIALOG,右边会出现对话框,会 出现控件面板。
•利用控件面板可以方便地在程序的主对话框界面 中添加相应的可视控件对象,如图所示。
相关文档
最新文档