Windows c++面向对象与可视化编程的基础知识
1.Windows的程序设计语言:Visual C++,Visual Basic ,Visual c#都是“面向对象”的程序设计语言;
2.Windows的程序设计的对象:是Windows的规范部件,窗口,菜单,对话框,程序模块;对象特征:具有规范形态和操作模式。
3.思想总结:编写Windows程序相当一部分工作是在创建对象和为对象属性赋值。
4.编程方法:传统编写法–>API 交互式方法–>MFC
5. Windows API的功能:
- 为应用程序提供Windows系统特殊函数及数据结构
- Win应用程序可以利用标准大量API函数调用系统功能
- 是Win系统与Win应用程序间的标准程序接口
6.Windows API函数的功能:
- 窗口管理函数实现窗口的创建、移动和修改功能
- 图形设备(GDI)函数:实现与设备无关的图形操作功能
- 系统服务函数:实现与操作系统有关的多种功能
7.Windows API函数编写Windows应用程序的几个名词:
- 窗口
- 事件驱动:Windows程序设计是针对事件或消息产生驱动运行处理函数的过程;
- 句柄:PVOID型(void*的别名)的数据一个4字节长的数值,用于标识应用程序中不同的对象和同类对象中不同的实例
- 消息:描述事件发生的信息(如按下鼠标或键盘)
typedef struct tagMSG
{HWND hwnd; 窗口句柄,为null,则可检索所有驻留在消息队列中的消息
UINT message;消息值,由Windows.h头文件中的宏定义来标识
WPARAM wParam; 包含有关消息的附加信息,不同消息其值有所不同
LPARAM lParam;
DWORD time; 指定消息送至队列的时间
*POINT* pt;指定消息发送时屏幕光标的位置, 其数据类型POINT也是一个结构体
}MSG;
typedef struct tagPOINT
{LONG x;
LONG y;
} *POINT*;
8.消息类型:
- BM 表示按钮控制消息
- CB 表示组合框控制消息
- DM 表示默认下压式按钮控制消息
- EM 表示编辑控制消息
- LB 表示列表框控制消息
- SBM 表示滚动条控制消息
- WM 表示窗口消息
9. Windows应用程序常用的消息
WM_LBUTTONDOWN:产生单击鼠标左键的消息;
WM_KEYDOWN:按下一个非系统键(系统键是指实现系统操作的组合键)时产生的消息(wParam:按下键的虚拟键码,用以标识按下或释放的键)
WM_ CHAR:按下一个非系统键时产生的消息(wParam 为按键的ASCII码)
WM_CREATE:由CreateWindow函数发出的消息
WM_CLOSE:关闭窗口时产生的消息
WM_DESTROY:由DestroyWiodow函数发出的消息
WM_QUIT:由PostQuitMessage函数发出的消息
WM_PAINT:产生此消息的操作
- 用户区移动或显示
- 用户窗口改变大小
- 程序通过滚动条滚动窗口
- 下拉式菜单关闭并需要恢复被覆盖的部分
- Windows清除对话框等对象,并需要恢复被覆盖的部分
-
Windows c++面向对象与可视化编程的基础知识的更多相关文章
- java第九节 网络编程的基础知识
/** * * 网络编程的基础知识 * 网络协议与TCP/IP * IP地址和Port(端口号) * 本地回路的IP地址:127.0.0.1 * 端口号的范围为0-65535之间,0-1023之间的端 ...
- python六十七课——网络编程(基础知识了解)
网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...
- C#复习笔记(5)--C#5:简化的异步编程(异步编程的基础知识)
异步编程的基础知识 C#5推出的async和await关键字使异步编程从表面上来说变得简单了许多,我们只需要了解不多的知识就可以编写出有效的异步代码. 在介绍async和await之前,先介绍一些基础 ...
- 编程必备基础知识|计算机组成原理篇(09):CPU的控制器和运算器
计算机基础方面的知识,对于一些非科班出身的同学来讲,一直是他们心中的痛,而对于科班出身的同学,很多同学在工作之后,也意识到自身所学知识的不足与欠缺,想回头补补基础知识.关于计算机基础的课程很多,内容繁 ...
- TCP/UDP网络编程的基础知识与基本示例(windows和Linux)
一.TCP编程的一般步骤 服务器端: 1.创建一个socket,用函数socket() 2.绑定IP地址.端口等信息到socket上,用函数bind() 3.开启监听,用函数listen() 4.接收 ...
- [转] linux操作系统下c语言编程入门--基础知识
点击阅读原文 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将会学到以下内容: 1. 源程序编译 2. Makefile的编写 3. 程序库 ...
- php面向对象编程(oop)基础知识示例解释
面向对象并不是一种技术,而是一种思想,是一种解决问题的最基本的思维方式!如何理解使用?OOP:面向对象编程 (直接代码说明) 1.面向对象的基本概念 示例demo: <?php header(& ...
- WIN64内核编程-的基础知识
WIN64内核编程基础班(作者:胡文亮) https://www.dbgpro.com/x64driver 我们先从一份"简历"说起: 姓名:X86或80x86 性别:? 出生 ...
- 01网络编程(基础知识+OSI七层协议+TCP与UDP)
目录 01 网络编程 一.软件开发架构 1.1 CS架构 1.2 BS架构 二.网络理论前戏 2.1 简介 2.2 常见硬件 三.OSI七层协议(五层) 3.1 七层协议 3.2 五层协议 3.3 知 ...
随机推荐
- jenkins配置java
# JDK版本 java -version # JDK目录 echo $JAVA_HOME # jenkins配置
- C语言 scanf()和gets()函数的区别
C语言 scanf()和gets()函数的区别 1.相同点:scanf( )函数和gets( )函数都可用于输入字符串 2.不同点:两者在功能上有所区别,具体区别如下: 要实现如下需求“从控制台输入字 ...
- 自定义redis session
1.思路 2.程序实现 1.用户系统类 这里模拟一个蹩脚的用户系统类(userSystem),如下: #coding=utf-8 #Redis实现用户系统 __author__ = 'beginman ...
- Android开发入门
教我徒弟Android开发入门(一) 教我徒弟Android开发入门(二) 教我徒弟Android开发入门(三) 出处:http://www.cnblogs.com/kexing/tag/Androi ...
- Java多线程编程核心技术,第三章
1,notify的同步块完了,才会运行wait的同步块 2,interrupt()不是静态方法,用在wait的线程上会有InteruptException,锁也会被释放 3,notify()唤醒的线程 ...
- 2.运行成功的Demo(Python+Appium)
1.打开Appium运行 2.在Pycharm输入代码如下所示: from appium import webdriver desired_caps = {} #初始化 desired_caps['p ...
- 指向NULL的类
引出:写个类A,声明类A指针指向NULL,调用类A的方法会有什么后果,编译通过吗,运行会通过吗? (在VS2008与VC++的情况下) 有错误欢迎批评指正! #include<stdio.h&g ...
- Spark在Windows下的环境搭建
本文转载自:http://blog.csdn.net/u011513853/article/details/52865076 由于Spark是用Scala来写的,所以Spark对Scala肯定是原生态 ...
- 汇编_指令_REP MOVESB 和 CLD
先说说MOVSB(MOVe String Byte):即字符串传送指令,这条指令按字节传送数据.通过SI和DI这两个寄存器控制字符串的源地址和目标地址,比如DS:SI这段地址的N个字节复制到ES:DI ...
- Map和Bean的相互转换
Map和Bean的相互转换 BeanUtils位于org.apache.commons.beanutils.BeanUtils下面,其方法populate的作用解释如下: 完整方法: BeanUtil ...