zoukankan      html  css  js  c++  java
  • VC++01

    Visual C++

    1.简介

    是windows环境下最主要的应用开发系统之一

    是C++语言的集成开发环境

    与win32紧密相连

    强大的调试功能为大型复杂软件的开发提供了有效的排错手段

    2.可视化

    指软件开发阶段的可视化

    利用计算机图形技术和方法

    3.开发环境

    创建工程文件

    访问资源编辑

    使用内部调试

    访问程序的源代码

    Edit菜单

    1.断点的作用是中断程序的执行过程,以便检查程序代码,变量和寄存器值

    位置断点:是在代码的指定行,函数的开始活着指定的内存地址处设置

    数据断点:是在变量或者表达式上设置,当变量或者表达式的值改变是,数据断点将中断程序的执行

    消息断点:是在窗口函数WndProc上设置,当接收到指定的消息时,将中断程序的执行 

    2.List Members

    .->减少输入代码量

    3. Tpye info

    鼠标停在的函数或者变量的语法 

    4. Parameter info

    函数名(参数的输入补充

    5. Compete word

    View菜单

    改变窗口

    改变工具栏显示方式

    检查源代码

    激活调试等

    ClassWizard选项

    1. Message map

    对于每一个对象的响应消息处理函数就是通过消息处理函数来完成的

    message 为窗口,对话框,控件和菜单选项和加速键等对象映射消息。

    2. Member variables

    定义成员变量用于自动初始化

    control IDs是映射到成员变量的控件ID值

    type是成员变量的类型

    Member是成员变量名

     Insert菜单

    New class 添加类

    New form

    Resource

    New ATL Object

    Build菜单

    Compile编译:只编译当前文件而不屌用链接器或者其他工具

    Build 编译和链接 只是对于更改的部分

    Rebuild all 所有的都编译

    Batch Build能单步重新建立多个工程文件,并允许用户指定要建立的项目类型 Win32 Release发行版 Win32 Debug调试版 .DLL动态链接库文件 .LAB库文件

     Start Debug Go,StepInto,Run 

    2.项目工作区窗口简介

    VC项目工作区由

    classView ResourceView和FileView来组成

    资源以及资源编辑器

    资源:光标,图标菜单,位图,对话框

    资源是一种界面元素,用户卡哇伊从中获得信息并在其中执行某个动作

    资源符号是映射到整数值上的一串字符,是一种标识符,每当创建一个新的资源或者资源对象时,系统就会为其提供一个缺省的资源符号名称并赋一个整数值,该定义保存在resources.h文件中

    面向对象的设计语言

    对象是Windows的规范部件(窗口,菜单,按钮,对话框,程序模块)编写WIndows程序相当于一部分工作是在创建对象和为对象属性赋值 

    编程方法:

     传统编写法->API Application Program Interface

    交互性方法->MFC 

    采用交互式方法时,可视化平台给出了很多选用的对象,程序员可以根据所需对象并确定其属性,由此搭建起应程序的“大框架”,并且根据需要进一步编写必要的细节代码段,最好构成完整的应用程序。

    API 编写应用程序必须了解

    1.窗口的概念:是系统管理应用程序的最基本的单位,是应用程序与用户之间交互的接口环境,win应用程序的基本操作单元

    编写一个win应用程序首先应窗帘一个或者多个窗口,随后应用的运行过程即是窗口内部,窗口与窗口之间,窗口与系统之间进行数据处理与交换的过程。

    2.事件驱动的概念:win程序设计就是针对事件或者消息的处理 消息就是描述发生的信息(如按下鼠标或者键盘)

    win程序的执行顺序取决于事件发生的顺序,程序的执行顺序是由顺序产生的消息驱动的。

    3.句柄:是一个4字节长度的数据,是用于标识应用程序中不同对象和同类对象中不同的实例 

    窗口,按钮,图标,滚动条,输出设备,控制,文件

    应用程序通过句柄访问相应的对象信息(HWND)

    4.消息:win应用程序是利用win消息(Message)与应用程序以及系统进行信息交换

    消息包括:消息号(由事先定义号的消息名标识),字参数(wParam用于提供消息的附加信息),长字参数(lParam用于提供消息的附加信息)

    附加信息与具体消息号的值有关,在win中消息用结构体MSG表示

    VC中存在几种系统定于的消息分类

    Windows应用程序常用的消息

    WM_LBUTTONDOWN:   产生单击鼠标左键的消息

    lParam 低字节是包含当前光标X的,高字节是Y坐标值

    wParam包含一整数值以标识鼠标键的按下状态 MK_LBUTTON按下左键MK_MBUTTON按下中键MK_RBUTTON按下右键

    系统键和非系统键

    系统键是实现系统操作的组合件,Alt与某个功能键的组合以实现系统菜单操作 

    WM_KEYDOWN:按下一个非系统键时产生的消息

    WM_KEYUP:放开一个非系统键时产生的消息 

    wParam:按下键的虚拟键码,用以标识按下或释放的键(eg,F1的虚拟键码在Windows.h文件中定义为VK_F1)

    lParam:记录了按键的重复次数,扫描码,转移代码,先前键的状态等信息

    WM_CHAR:按下一个非系统键时产生的消息  

    wParam:按下键的ASCII码(0~9,A~Z)

    lParam:记录了按键的重复次数,扫描码,转移代码,先前键的状态等信息

    WM_CREATRE

    WM_CLOSE

    WM_DESTROY

    WM_PAINT

    事件驱动面向对象

    四. Windows应用组成以及编程步骤

    1.应用程序的组成

    一个完整的win应用程序通常由五种类型的文件组成

    C语言源程序文件,头文件,模块定义文件,资源描述文件,项目文件

     源程序组成结构

    Win应用程序包括入口函数WinMain和窗口函数WndProc构成基本框架 包含各种数据类型和数据结构和函数等

    WinMain所有的应用程序的入口类似于Main函数,完成一系列的定义和初始化,并产生消息循环

    WndProc是主要用来消息处理

    两者是win应用程序的主体

    1. WinMain函数

    功能:注册窗口类,建立窗口以及执行必要的初始化;

    进入消息循环,据接受的消息调用相应的处理过程;

    当消息循环检索到WM-QUIT时终止程序运行。

    基本组成部分:函数说明,初始化和消息循环 比之前多了消息循环

    win是多任务管理的,同个应用程序的多个窗口可能会同时存,win系统对每一个窗口的执行称为一个实例,并用一个实例句柄来唯一标识

    1.1 初始化

    窗口类的定义:定义窗口的形式和功能(LoadIcon,LoadCursor,GetStockObject);通过给窗口类数据结构WNDCLASS赋值完成,该数据结构中包含窗口类的各种属性

    窗口类的注册:窗口类必须先注册后使用 RegisterClass(&wndclass);返回的布尔值

    1.2 创建窗口实例: CreateWindow();

    显示窗口: ShowWIndow(hwnd,nCmdshow窗口显示形式), UpdateWindow(hwnd) 把在内存中创建的,后再去调用显示

     1.3 消息循环

    win将产生的消息放到消息队列中,WinMain函数将消息传递给窗口函数的相应过程处理

    MSG Msg;

    while(GetMessage(&Msg,NULL,0,0)){

    TranslateMessage(&Msg);//将消息的虚拟键转换为字符信息

      DispatchMessage(&Msg);//将消息传送到指定窗口函数

    }

    GetMessage(

    lpMSG,//指向MSG结构的指针

    hwnd

    2. 窗口函数WinProc

    定义了应用程序对接受到不同消息的响应

    包含了对各种可能接受到的消息的处理过程

    WinProc函数由一个或者多个switch语句组成,每一个case对应一条消息

  • 相关阅读:
    将Nginx添加到windows服务中
    springboot使用redis管理session
    GIT常用命令
    阻止360、谷歌浏览器表单自动填充
    谈谈对Spring IOC的理解
    同一个Nginx服务器同一端口配置多个代理服务
    LeetCode 653. Two Sum IV
    109. Convert Sorted List to Binary Search Tree(根据有序链表构造平衡的二叉查找树)
    108. Convert Sorted Array to Binary Search Tree(从有序数组中构造平衡的BST)
    LeetCode 236. Lowest Common Ancestor of a Binary Tree(二叉树求两点LCA)
  • 原文地址:https://www.cnblogs.com/gzoof/p/7863744.html
Copyright © 2011-2022 走看看