编写一个MFC程序的主要步骤

一、创建MFC应用程序

1.文件—新建—项目—MFC—MFC应用程序

MFC有三个选项:MFC ActiveX控件、MFC应用程序、MFC DLL。

MFC ActiveX 控件:用来生成MFCActiveX控件程序。

MFC 应用程序:用来生成MFC应用程序。

MFC DLL:用来生成MFC动态链接库程序。

2. MFC应用程序向导—应用程序类型:基于对话框,并且不使用Html对话框,不使用Unicode库

应用程序类型有三个选项——单个文档、多个文档、基于对话框

单个文档Windows记事本、Windows画图、Windows写字板这样的程序,一个程序只有一个文档处于编辑状态。

多个文档:像WordExcel这样可以在一个MDI窗口里面同时处理多个文档的类型。

基于对话框:像Windows扫雷、纸牌那样直接在对话框进行操作的程序。用不着文档和试视图。

不使用Unicode库:为程序兼容性考虑,避免字符串处理麻烦。

3. MFC应用程序向导—MFC的使用—在共享DLL中使用MFC

MFC的使用有两个选项: 在共享DLL中使用MFC、在静态库中使用MFC

在共享DLL中使用MFC:MFC的类会以动态链接库的方式访问,所以我们的应用程序本身就会小些,但是发布应用程序时必须同时添加必要的动态链接库,以便在没有安装VS2010的机子上能够正常运行程序。

在静态库中使用MFC:类会编译到可执行文件中,所以应用程序的可执行文件要比上种方式大,但可以单独发布,不需另加包含MFC类的库。

4. MFC应用程序向导—主框架样式:即用户界面特性,根据需求

5. MFC应用程序向导—高级功能:使用缺省设置

ActiveX控件:应用程序内可以再嵌套一个应用程序的技术被微软公司称为ActiveX。


二、设计MFC程序界面设计(工具箱)

控件工具箱: 

按钮(Button):用来接收用户的命令,应用程序在接收到用户命令后,通常需要进行一些后台工作。按钮可以响应单击或双击动作,在按钮接收到鼠标动作后,向其父窗口发送相应的控件通知,用户可以对这些控件通知进行消息映射,从而进行相应的处理。在一个对话框中,可以定义一个默认按钮,这只要选中按钮属性中的“Default”选项。如果在对话框活动的时候按下了Enter键,则等同于单击了默认按钮。

 

复选框(Check Box):用来显示某种可能的选择,该项选择是独立的,用户可以选中或取消该选项。在选项被选中的时候核选标记出现,选项被取消时核选标记消失。MFC中由CButton类对核选框进行支持,用户可以通过SetCheck()函数和GetCheck()函数设置或获取核选框当前的状态。

编辑框(Edit Box):用来接收用户输入的字符串。通过选择编辑框的选项,编辑框可以接收字符串、数字、密码等;编辑框还可以设置成接收多行字符串的模式;可以自动进行大小写转换。编辑框可能向其父窗口发送多种控件通知,如果用户需要,可以对这些控件通知进行处理。

组合框(Combo Box):列表框和编辑框的组合,用户除了可以在列表中对已经存在的选项进行选择外,还可以输入新的选择。

列表框(List Box):用来选择一系列的可能选择,用户通过滚动条可以在这些选择中浏览。在列表框中,可以进行单项选择,也可以进行多项选择,这取决于用户在控件属性对话框中的设置。

组成框(Group Box):用来包围具有逻辑关系的一组控件,在这些控件的周围加上边界和标题。需注意的是,组成框仅仅是在视觉效果上对控件进行成组,真正的成组工作还需要另外一些工作。

单选按钮(Radio Button):用来选择某种可能的选择,与核选框不同,该选项不是独立的。一般是几个单选按钮组成一组,同组中的单选按钮可以有也只能有一个按钮被选中.

静态文本(Static Text):用来在指定的位置显示特定的字符串,一般用来标识附近另一个控件的内容。显示在静态文本控件中的字符串一般不再改变,但是在需要的时候,也可以通过调用相应的函数来进行设置。

形控件Picture Control):常用于显示位图(Bitmap)和图标(Icon

组合框(Combo Box):列表框和编辑框的组合,用户除了可以在列表中对已经存在的选项进行选择外,还可以输入新的选择。

滚动条(Scroll Bar):这包括水平滚动条和垂直滚动条,除了在视觉效果上的方向不同外,水平滚动条在被滚动时发生WM_HSCROLL消息,而垂直滚动条在被滚动时发送WM_VSCROLL消息。

微调按钮(Spin Button):包括一对紧靠在一起的上下箭头,使用微调按钮可以增大或者缩小某个特定的数值。微调按钮往往都需要一个伙伴控件,这通常都是一个编辑框。当微调按钮的向上箭头被单击时,编辑框中的数字就增大;反之则减小。


进度条(Progress):在进行一项需要占有较长时间的操作时来反应当前的进度。当操作的进度不断前进时,进度条就用特色颜色填充进度条框。用户可以设定进度条的范围和当前位置。

滑块控件(Slider):通常用来在程序中接受一系列离散的数值。用户可以设置滑块控件的取值范围,并可以为控件加上刻度标记以显示特定位置的含义。


热键控制(Hot Key):热键控件看起来就像一个编辑框,但是在热键控件中能够立刻反应用户刚刚按下的键组合,这在设置程序的热键时特别有用。热键控件只是在视觉上显示了按键组合,设置热键的工作还需要用户添加代码完成。

列表控制(List Control):按一定的排列顺序显示一系列带图标的字符串,列表控件提供了四种显示模式:大图标、小图标、列表和详细信息。用户可以向列表控件中添加新的项,也可以控制列表控件的显示模式。

树形控件(Tree Control):用来显示一系列项目的层次关系,最典型的例子是显示磁盘上的文件与文件夹。如果有子项目的话,单击树形控件中的项目可以展开或者收缩其子项目。

属性表控件(Tab Control):用来包含大量的控件,可以满足用户显示或者获取大量数据的要求。每个属性表又分为好几个属性页,这些属性页由各自的标签进行区分,这些属性页中都可以包容其他控件。在显示属性表的时候,一次只能够显示一个属性页的全部内容,同时显示其他属性页的标签,用户通过单击标签打开相应的属性页。


动画控件(Animation):用来播放一段AVI格式的视频剪辑。用户可以控制视频剪辑的播放、停止和定位,但也仅限于这些功能。动画控件设置不能播放音频剪辑,如果用户需要更高层次的视频或者音频的支持,请选用MCIWnd控件。


高级编辑框(Rich Edit):编辑控件功能的扩展。在高级编辑框中,除了简单的输入和编辑字符串外,用户还可以为字符或段落指定特定的格式,用户甚至还可以向高级编辑框中插入OLE项。高级编辑框基本上实现了一个带格式的文本编辑器功能,而只需要用户添加少量的接口。

日历控件(Month Calender):看似与真正的日历类似,操作也类似,直观的为用户提供了观察和显示当前日期的途径。

日期/时间选择器(Date Time Picker):向用户提供了一种直观的选择日期和时间的方法、日期/时间选择器在外观上类似于一个组合框,但是当用户单击下拉箭头时就会展开一个日历控件供用户选择,而一旦用户做出了选择,日期/时间选择器会自动显示新的日期/时间。

IP
地址控件(IP Adress:IP地址控件用来输入和编辑IP地址。该控件外观类似于一个编辑框,但是可以自动对输入的字符按3个一组进行区分和加间隔圆点。IP地址控件为开发支持Internet技术的程序提供了方便。

扩展组合框(Extended Combo Box):在普通组合框的基础上还支持图像列表。即,可以在组合框中显示特定的图标表示相应的选择,而不仅仅是显示文本。

 

三、添加并关联变量(控件右击—关联变量)

Control变量:它是微软对实现Windows程序的图形用户界面元素的一些类的总称。

Value变量:仅仅只是获取用户输入值的变量

 

所有控件的公共属性:
ID
:控件的资源标识。
Visiable
:控件是否可见。
Disabled
:控件是否被禁止、被禁止的控件无法接受键盘和鼠标输入。
Group
:是否从这个空间开始一个新组。
Tab stop
:在程序中是否可以用【Tab】键切换到这个控件。
Help ID
:是否给控件分配一个帮助标识,帮助标识基于控件本身的资源标识。
Client edge
:给控件增加一个凹陷的边界,使整个控件看起来像是凹下去的一样。
Static edge
:给控件增加一个边界。
Modal frame
:给控件增加一个3维的框架,与Clientedge相反,它是凸出来的。
Transparent
:拥有此属性的窗口是透明的,它下面的窗口不会被它遮掩住。
Accept files
:拥有此属性的窗口可以接收拖放文件,如果一个文件被拖动到这个控件上面,控件会收到WM_DROPFILES消息。
No parent notify
:表示控件不向其父窗口发送WM_PARENTNOTIFY消息
Right aligned text
:表示文本右对齐。

 

四、添加事件处理函数(控件右击—添加事件处理函数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值