主要内容:介绍Windows编程的一些基础概念

  

  1.窗口的概念 

    <1>一个应用程序的窗口通常包括控制菜单框、下拉菜单、

      工作区以及最大化按钮、最小化按钮,
      还有垂直滚动条、水平滚动条

    <2>窗口是系统管理应用程序的基本单位

    <3>窗口是应用程序与用户之间交互的接口环境

    <4>是Win应用程序的基本操作单元

  2.事件驱动的概念
    <1>所谓事件驱动,简单地说就是点击什么对象(即产生什么事件),
      电脑就执行什么操作(即调用什么函数)

    <2>Windows程序设计是针对事件驱动进行的,
      事件驱动是对事件消息的描述

    <3>Windows程序的执行顺序取决于事件的发生顺序,
      程序的执行顺序是由顺序产生的消息驱动的
    

  3.句柄的概念
    <1>句柄是一个8字节长(相对于64位操作系统)的数值,
      用于标识应用程序中不同的对象和同类对象中的不同实例

    <2>应用程序通过句柄访问相应的对象信息
      

      以下为API编程中常见句柄:
            HWND         窗口句柄
            HBITMAP      位图句柄
            HDC        设备环境句柄
            HCURSOR       光标句柄
            HFONT        字体句柄
            HICON        图标句柄
            HMENU        菜单句柄
            HPEN         画笔句柄
            HBRUSH       画刷句柄
            HFILE        文件句柄
            HINSTANCE      当前实例句柄

    

  4.消息的概念
      <1>Windows应用程序利用Windows消息(Message)与应用程序及系统进行信息交换

      <2>在Windows中消息用结构体MSG表示

typedef struct tagMSG{
            HWND hwnd;  //消息所属的窗口句柄(索引内存当中的资源)
            UINT(无符号整型)  message;  //消息ID,由Windows.h头文件中的宏定义来标识,常以WM_开头
            WPARAM(整型) wParam; //关于消息的附加参数,例如:按下一个键,具体是哪个按键
            LPARAM(整型) LParam; //关于消息的附加参数
            DWORD(32位整数) time;//消息被传递到消息队列的时间
            POINT(坐标结构体) pt; //消息被传递到消息队列时,光标在屏幕上的位置
} MSG;

      

      <3>消息的内容
        <1>消息号:由事先定义好的消息名标识
        <2>字参数wParam:用于提供消息的附加信息
        <3>长字参数lParam:用于提供消息的附加信息

      <4>附加信息与具体消息号的值有关,

      <5>VC++中存在几种系统定义的消息分类,

        不同的前缀符号经常用于消息宏识别消息附属的分类,

        系统定义的消息宏前缀如下:
      

            BM          表示按钮控制消息(Button Message)
            CB          表示组合框控制消息(Combo Box)
            DM          表示默认下压式按钮控制消息(Deafult Message)
            EM          表示编辑控制消息(Edit Message)
            LB          表示列表框控制消息(List Box)
            SBM         表示滚动条控制消息(Scroll Bars Message)
            WM          表示窗口消息(Window Message)

      <6>Windows编程常用的消息有
        窗口管理消息 控制通知消息
        初始化消息 滚动条通知消息
        输入消息 非用户区消息
        系统消息 MDI消息
        剪贴板消息 DDE消息
        控制处理消息 应用程序自定义的消息等

        具体可查询MSDN文档

Windows编程基础的更多相关文章

  1. 第一章 Windows编程基础(1~4课)

    第一课:从main到WinMain 第二课:窗口和消息 第三课:MFC编程 第四课:MFC应用程序框架 概括: Win32的两种编程框架:SDK方式.MFC方式 1. SDK方式:使用WinMain入 ...

  2. WINDOWS编程基础-最简单的windows程序

    流程 1 建立并注册windows类 2 使用windows类创建窗口 3 实现事件处理,主循环 PeekMessage与GetMessage的对比 相同点: PeekMessage函数与GetMes ...

  3. Windows 编程基础

    1 Windows应用程序的分类 1.1 控制台程序 DOS程序,本身没有窗口,通过WINDOWS下的DOS窗口执行. 1.2 窗口程序 拥有自己的窗口,通过窗口可以和用户进行交互.(比如:记事本,画 ...

  4. MFC入门教程01 Windows编程基础

  5. 【Windows编程】系列第六篇:创建Toolbar与Statusbar

    上一篇我们学习了解了如何使用Windows GDI画图,该应用程序都是光光的静态窗口,我们使用Windows应用程序,但凡稍微复杂一点的程序都会有工具栏和状态栏,工具栏主要用于一些快捷功能按钮.比如典 ...

  6. MingW环境下的windows编程

    一般在进行windows编程时都使用vc++精简版,其插入菜单,图片等资源等更简单,且vc中对中文有更好的支持,win7下安装的Mingw中文并不能很好地显示,有光标显示的位置和光标实际位置不符的问题 ...

  7. Windows编程

    本文整理自百科.知乎与 科学家的世界 问题一:为什么开发windows应用程序不用c 而用.net,java,c++? 用 c+windows API  开发windows 应用程序  比用.net, ...

  8. 走进windows编程的世界-----入门篇

    1   Windows编程基础 1.1Win32应用程序基本类型 1)  控制台程序 不须要完好的windows窗体,能够使用DOS窗体方式显示 2)  Win32窗体程序 包括窗体的程序,能够通过窗 ...

  9. Windows编程 Windows程序的生与死(上)

    引子 “Windows 程序分为‘程序代码’和‘UI(User Interface)资源’两大部份,两部份最后以RC编译器(资源编译器)整合为一个完整的EXE 文件.所谓UI 资源是指功能菜单.对话框 ...

随机推荐

  1. SPOJ 10628 求树上的某条路径上第k小的点

    第k小,很容易会想到用主席树来解决 这里简单想一下树的转移过程 因为本身无向图形成一棵树,那么我们总以1为根,那么之后连下去的边对应的点建立的线段树总是在父亲节点对应的树上加上一个当前点对应位置出现的 ...

  2. POJ 2296 二分+2-sat

    题目大意: 给定n个点,给每个点都安排一个相同的正方形,使这个点落在正方形的下底边的中间或者上底边的中间,并让这n个正方形不出现相互覆盖,可以共享同一条边,求 这个正方形最大的边长 这里明显看出n个点 ...

  3. IOS中nil/Nil/NULL的区别

    类与对象的概念 类是对同一类事物高度的抽象,类中定义了这一类对象所应具有的静态属性(属性)和动态属性(方法). 对象是类的一个实例,是一个具体的事物. 类与对象是抽象与具体的关系. 类其实就是一种数据 ...

  4. 预编译 .pch文件

    如果工程导入了其他编程语言文件混编的时候   .pch文件会在程序开始的时候导入所有头文件,需要 '预编写命令' 区分编程语言的头文件. 下面报错就是因为工程导入了.c 文件   .pch全局导入了O ...

  5. metaprogramming笔记

    动态多态与静态多态 动态多态:允许我们通过单个基类指针或引用处理多个派生类型的对象. 模板元编程中强调静态多态,允许不同类型的对象以同样的方式被操纵,只要它们支持某种共通的语法即可. 动态多态,连同& ...

  6. Ubuntu封装制作ISO镜像

    首先下载Remastersys的Deb软件包 链接:http://pan.baidu.com/s/1i3tYPKT 密码: 使用命令强制安装 dpkg --force-all -i remasters ...

  7. 详解定位—>"position"

    position是css中一个重要的属性,他规定元素的定位类型,默认值为static,他的值有5种,absolute,fixed,relative,static,inherit.接下来将详细具体对每一 ...

  8. javaweb-dbcp2

    package cn.itcast.utils; import java.io.InputStream;import java.sql.Connection;import java.sql.Drive ...

  9. XML文件的读取、序列化和反序列化操作

    public class XmlHelper { //从xml中获取MsgType public static string XMLSelect(string XML) { XmlDocument x ...

  10. Inno Setup 在安装程序开始前和卸载程序开始前,检查并关闭运行的进程

    (2011-12-29 11:54:56) 转载▼ 标签: innosetup it 分类: 开发工具经验累积 Inno Setup在安装程序前,如果有使用的进程在运行,会有错误提示,而使得Insta ...