Windows编程入门

本文介绍了Windows编程的基本特点,包括可视化的图形用户界面设计、面向对象的编程方法及事件驱动的程序运行方式。此外还概述了基于Windows API和MFC的两种编程方法,并详细描述了框架窗口、对话框和控件的概念及其在MFC中的实现。


Windows编程的三个基本特点:
1.可视化的图形用户界面设计
  windows程序设计的三类窗口:
  1.MS-DOS窗口   基于控制台的文字用户界面程序
  2.文档窗口
  3.对话框 
  2、3类窗口 称为 图形用户界面(GUI Graphical User Interface)

   Visual C++支持可视化的图形用户界面设计,Windows应用程序的每个图形界面元素(如对话框、菜单、命令按钮、文    本框等)都是可视的(visuable)。
2.使用面向对象方法编程
  从图形用户界面到整个程序,都采用面向对象的方法组织,即窗口对象和程序对象。
  Windows为每一个对象分配:
  a、一个句柄(handle),4字节的整数,对象的唯一内部编号,系统内定,对用户透明
  b、对象标识符(ID),对象的外部名,用户自行设定

3.采用事件驱动的程序运行方式

  过程驱动VS事件驱动
  过程驱动:明确的控制过程和执行顺序
  事件驱动:事件发出消息,消息激活对象(对象通常处于循环休眠状态)

  事件(envent):激活对象执行程序代码的一种动作(程序动作or用户动作如鼠标事件和键盘事件)
                  任何具备设备驱动程序的系统输入设备(包括端口)都可能产生事件
  消息(message):Windows定义(WinUser.h)的一种特殊的数据结构(MSG),打包了事件的相关消息

  什么对象可以产生和接收什么事件,由MFC规定的。
  每一个需要相应的消息对应一个处理该消息的程序--事件驱动程序,响应消息就是启动相应的事件驱动程序,Windows   将响应消息的过程称为消息映射。

使用Visual C++进行Windows编程有两种方法:
1.基于windows API(Application Programming Interface 应用程序编程接口,Windows操作系统和Windows应用程序之间的标准接口)的编程方法:
  作为Windows操作系统的组成部分(shell),API提供的C函数分为三类:
  a、窗口管理函数:实现窗口创建、移动、修改等功能
  b、图形设备接口函数:实现与具体显示设备无关的图形操作
  c、系统服务函数:实现操作系统提供的各种系统服务功能

2.基于MFC(Mircro Fundation Class微软基础类库,不是Windows操作系统的组成部分,微软为Visual C++开发的配套软件包)的编程方法:
  MFC充分使用了面向对象方法中的继承和多态技术,以类的方式封装了Windows应用程序几乎所有的标准部件,其核心就是以C++的形式封装了API的大部分函数。
  MFC是一个很大的类层次体系,以CObject的类作为根基类。

窗口:
1.框架窗口:程序主窗口
  MFC提供了由基类CWnd(窗口类)派生了四个框架窗口类:CFrameWnd,CMDIFrameWnd,CNDIChildWnd,Cdialog,用于支持三种标准框架窗口:
  1.单文档(Single Document)窗口:由CFrameWnd支持
  2.多文档(Multiple Document)窗口:主窗口有CMDIFrameWnd支持,其他为子窗口由CMDIChildWnd支持
  3.对话框(Dialog):由Cdialog支持
2.对话框(Dialog)与控件(Control)
  对话框与控件密不可分,对话框中一般都有一些控件,对话框通过这些控件与用户交互。控件大多可以捕获事件并向对话框发送消息。控件实际上也都是窗口,所有的控件类都是CWnd的派生类,控件通常作为对话框的子窗口而创建。

开发一个MFC工程通常有四个工程步骤:
1.建立工程架构(skeleton):工程的总体设计,首先确定工程的类型,然后根据工程类型创建并组织基本组件。
  MFC支持三种基本工程类型:单文档工程、多文档工程、对话框工程。
  VC++为建立工程架构提供了强大的工具——MFC AppWizard(应用程序向导)
 
2.设计图形用户界面
  设计工具:对话框编辑器
  对话框编辑器主要包括如下控件:对话框窗体、控件箱、布局工具栏、对话框和控件的属性对话空

3.设计对象的事件驱动程序
  对象的事件驱动程序在VC++中称为消息处理成员函数。
  a、确定各个控件要传递的数据
     读取和更新控件上的数据是对话框的重要工作,MFC为此提供了一套标准方法:DDX(Dialog Data Exchange)和DDV(Dialog Data Validation)技术。
  b、确定对象的消息映射
  c、在消息处理函数体内添加代码

     DDX通过成员变量(member variable)的方式实现对话框和控件之间的数据交换。
     如果要在对话框的消息处理函数中访问控件的数据,就必须在对话框的类中为控件添加(声明)一个成员变量,每个成员变量绑定一个控件,在消息处理函数中通过这个成员变量访问控件。
    成员变量是对话框的public数据成员,两类成员变量:
    a、value类:其值是控件数据
    b、control类:代表控件本身,控件的一个对象,其值是控件的句柄
    DDV用于用于数据的校验,例如自动校验字符串的长度和取值范围。

    使用MFC DDX/DDV的流程:
    a、声明用于接收控件数据的成员变量
    b、调用MFC函数传递数据:
       最简单的相关MFC函数:UpdateData()更新成员变量,UpdateData(FALSE)更新控件

    设计工具:MFC Clas Wizzard()类向导
  
4.工程的编译、连接和运行
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值