Windows编程知识点总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“windows7知识点总结”。
1、基于MFC对话框程序的框架代码主要由一下几个部分组成:
A.应用程序类
B.对话框类
C.资源文件
D.预编译文件
2、Windows是建立在消息驱动机制上的。
3、模态对话框运行机制?
当模态对话框产生后,应用程序没有处理消息,唯一的解释就是模态对话框产生后会屏蔽其他窗体消息。事实也正是如此,创建模态对话框后,应用程序只会响应该对话框的消息,知道应用收到结束模态对话框窗体的消息后,才会把控制权交还给应用程序。
4、非模态对话框
与模态对话框不同,非模态对话框不会垄断用户的输入,用户任然可以使用其他窗体。
5、属性对话框主要分为两个部分:
A.属性页
B.属性对话框架
6、属性页只是对话框的一种形式。
7、控件的逻辑顺序决定着软件中需要使用TAB进行焦点切换时的顺序排列。
8、控件按钮有四种基本类型:
A.下压按钮
B.复选按钮
C.单选按钮
D.自绘按钮
9、按钮控件会向父窗口发出控件通知消息
A.BN_CLICKED:鼠标单击消息
B.BN_DOUBLECLICKED:鼠标双击击消息
C.BN_SETFOCUS:获取用户输入焦点
D.BN_KILLFOCUS:失去用户输入焦点
10、在MFC环境下,除了使用CButton类本身的成员函数来操作按钮控件,还可以使用窗体相关类的成员函数,使用这些函数可以根据按钮ID直接进行操作。
11、MFC的CEdit类封装了编辑框控件的基本操作。
12、UPPERCASES设置大写,lowerCase设置小写,Number设置只能接受数字,Paword设置显示为*。
13、MFC的CListBox类封装了列表框控件的基本操作。
14、AddString:添加字符串列表项
DeleteString:删除字符串列表项
Dir:从当前目录向列表框添加文件名
FindString:在列表框中查找包含指定前缀的第一个列表项
FindStringExact:在列表框中查找与指定字符串匹配的列表项
InsertString:向列表框中插入一个列表项
ResetContentp:清空编辑框和列表框的所有内容
Selectstring:在列表框中查找字符串
15、组合框有三种模式:
简易式
下拉式
下拉列表式
16、组合框有两种形式:
Dropdown样式
Drop List样式
17、MFC的CProgreCtrl类封装了进度条控件的基本操作。
18、tist->SetTimer(1,100,NULL)
设置计时器ID为1,每100ms触发一次
19、tist->KillTimer(1)
关闭计时器120、列表控件有四种呈现方式:
图标视图
小图标视图
列表视图
报表视图
21、文档视图结构是使用MFC开发基于文档的应用程序的基本框架,最主要的思想是数据的管理与显示分离。
22视图类CView23、使用AppWizard创建SDI和MDI的过程相似,主要区别是创建SDI时不生成CChildFrame类,CMainFrame的基类为CMainWnd;而创建MDI时会生成两个框架类,一个是CMainFrame类,由CMDIFrameWnd类派生而来,另一个是CChildFrame类,由CMDIChildWnd类派生而来
24、文档与视图体系
一个文档可以对应多个视图,而一个视图只能对应一个文档
文档与视图的结构的优势在于数据的管理与显示分离,在开发文档/视图体系开发应用过程时,涉及到:文档模板、文档、视图、框架窗口
25、MFC的CView类是所有视图类的基类,主要有两大工能:
将与其相关联文档的数据呈现给用户
接受用户对数据的修改,并反馈给文档
26、建立MFC单文档应用程序,实例项目名称为“single”框架会自动生成4个类:
CSingleApp类:应用程序类
CMainFrame类:框架类
CSingleDoc文档类
CSingleView类:视图类
27、在MFC中使用GDI 进行绘画操作一般会涉及两类对象:
设备上下文对象
GDI对象
28、设备上下文,是一种windows数据结构,它包含与设备绘制属性相关的信息。
29、主要有一下几种GDI 对象:
CPen对象:用来绘制线条
CBrush对象:用来填充绘制对象的内部
CBitmap对象:用来操作位图对象
CFont对象:用来绘制文本
CPalette对象:用于应用程序和色彩输出设备之间的接口
30、使用GDI进行图形绘制的一般流程:
创建GDI对象
创建获取得设备上下文对象
使用SelectObject把GDI对象选入设备上下文
使用图形输出函数在指定上下文中绘制图形
31、画刷其实是一个像素大小为8*8的位图,用多个相同的位图对封图形的内部进行填充
32、位图
位图是描述图形最简单直观的一种形式,把图像横向分为等间距的W列,纵向分为等间距的H列,于是这个图形的大小被定义为分辨率W*H33、键盘上的每一个健都对应一个唯一的扫描码,在windows系统中为实现设备无关的要求,需要使用虚拟键值
34、当有键盘事件发生时,设备驱动器首先获取健的扫描码,并转换为虚拟键值
35、在应用程序中响应键盘消息有两种方式:
响应本进程的键盘消息
响应系统的键盘消息
36、keybd_event只是用于产生键盘事件,至于由谁来处理他并不关心。系统捕捉到键盘事件后,会转化为键盘消息的形式派发给当前系统中拥有键盘输入焦点的应用程序。SendMeage和PostMaeage的区别在于,PostMaeage首先把消息发到指定句柄所在线程的消息队列再由线程派发。SendMeage是把消息直接发送的指定句柄的窗体或控件。而往往很多情况下。指定句柄是个控件。而对控件的消息消息处理一般都是定义在主对话框上的。除非对其进行子类化,如果使用SendMeage,消息就无法到达主对话框因而无法达到预期的效果。
37、TCP协议是一个面向连接的、可靠的协议,UDP协议是一个不可靠的、无连接的协议
38、因特网控制报文协议(Internet Control Meage Protocol,ICMP)
39、套接字是一种网络编程接口,提供了一种网络数据发送和接受机制,套接字是网络通信的基础,一个套接字表示通信的一端,使用套接字可以实现数据包在网络上的传输。
40、soket函数,用来根据指定的地址协议簇、套接字类型和协议类型创建一个套接字。
listen函数,监听远程连接
accept函数,用来接受客户端连接。
sendto函数,用来向指定地址发送数据。
recv函数,用来在已建立连接的套接字上接收数据。
recvfrom函数,用来在指定套接字上接收数据。
setsockopt函数,用来设置套接字属性。
41、进程是一个正在运行的程序的实例,有两部分组成:
一个操作系统用来管理进程的内核对象。
创建时系统所分配的资源,主要是内存地址单元。
41、进程地址空间作为一个载体。包含进城的所有数据和代码以及堆和栈。为线程的运行提供保障。
42、进程是静态的43、线程也有两个部分组成:
线程内核对象;线程堆栈。
44、线程是动态的、可执行的、它总是在某个进程的环境中创建的。
45、每个线程都是运行在其所属进程的地址空间,因此线程只能访问本进程的地址空间,而其他进程对其是不可见的46、所谓‘页’,只是操作系统为了更好的管理地址空间所产生的一个逻辑上的概念,把一个固定长度的地址空间作为一个页,通常为4kb,系统在在对地址空间进行管理时,把每4kb的空间作为一个单位,最终形成内存管理的多级索引结构。
47、物理存储器和进程虚拟地址空间的映射是无序的,每一个进程虚拟地址空间也只能由一个物理存储器页来映射。
48、“地址转换机构”就是负责他们彼此之间的关联。
49、虚拟内存也有三种基本状态:
空闲:地址空间没有被占用,不能使用
保留:地址空间没有被占用,但还没有与物理存储器相关联,不能使用。
提交:且已经与物理存储器相关联,可以使用。
50、内存映射文件
内存映射文件可以在进程中保留一个地址空间区域,并把磁盘文件提交给该区域。一旦映射成功,就可以在内存中直接操作文件,而不再需要使用readfile、writefile等文件操作API。
51、情况下会使用内存映射文件:
系统使用内存映射文件加载可执行模块(.exe)和动态链接(DDL)
操作数据文件
共享内存
52、消息传递
消息传递机制并不以进程为界限,处理消息的是窗体,而与是否在同一进程无关。因而在进程间使用消息传递作为通信手段有个前提,即都是窗体应用程序。
53、共享内存的原理
使用内存共享机制,在任何一个进程内创建内存映射,却能够在其他多个进程中使用。这些进程共享的是物理内存器的同一个页面,把这些物理内存映射到虚拟内存时各个进程的虚拟地址不一定相同。当一个进程将数据写入共享内存时,其他进程可以立即获取数据变更情况,显然这种共享内存的方式是完全可以满足在进程间进行大数据快速传输任务要求的。
54、与内存映射磁盘文件一样,共享内存的本质也是内存映射机制。
55、使用系统页文件支持的内存映射文件,及共享内存。
56、进程间通信的三种基本方法:匿名管道、命名管道、邮槽
57、管道是用于进程间通信的共享内存区域。创建管道的进程称为管道服务器,而连接这两个管道的进程称为管道客户端,一个进程向管道写入信息,另外一个进程从管道读取信息
58、匿名管道
匿名管道是基于字符和半双工的,一般用于程序输入输出的重定向。如果需要获取一个基于控制台窗口应用程序的输出,此时就可以是用匿名管道,首先使用CreatePipe函数创建匿名管道。
59、命名管道的特征:
命名管道是双向的,进程间可以使用同一管道进行交互
命名管道不但可以面向字节流,还可以面向消息。所以读取进行可以读取写进程发送的不同长度的消息
多个独立的管道实例可以用同一个名称来命名。
命名管道可以用于网络间两个进程的通信,而其实现过程与本地进程通信完全一致
60、创建命名管道使用CreateNamedPipe函数
61、邮槽是实现单通道的进程间通信的通信方式。创建邮槽的进程称为邮槽服务器,向邮槽发送消息的进程称为邮槽客户端
60、创建邮槽使用CreateMailslot函数
61、windows剪贴板是一种比较简单同时也是开销比较小的进程间通信方式。
62、剪贴板通信机制
windows系统支持剪贴板IPC的基本机制室友系统预留的一块全局共享内存,可用于被各个进程暂时存储数据。写入进程首先穿件一个全局内存块,并将数据写到该内存块;接受数据的进程通过剪贴板机制获取此内存块的句柄,并完成对该内存块数据的读取。
63、剪贴板通信有5种基本情况:
文本剪贴板
位图剪贴板
自定义格式
延迟提交
多项数据
63、进程同步可分为两大类:
访问共享资源,多个进程访问进程共享资源时,需要确保资源不受破坏。
事件通知,一个线程完成某项任务后通知其他线程。
64、原子访问,是指线程对共享资源的独占式访问。
65、关键代码段,是指在执行前首先去的对共享资源的访问权,然后让代码以原子操作方式执行来访问共享资源的一种方法。
66、内核对象等待函数,其所等待的也正是内核对象的受信状态。
67、内核对象本质上只是一个内存块。
68、内核对象是操作系统对资源进行管理的单位。
69、内核对象有两种状态:已通知状态、未通知状态
70、在所有内核对象中,事件内核对象是最基本的对象,事件内核对象有两种状态:已通知状态、未通知状态。在多线程环境先经常使用事件内核对象的这种特性实现线程同步。
71、事件内核对象有两种基本类型:手动重置事件、自动重置事件。
72、等待定时器内核对象是可以在某个指定时间或者以规定的间隔发出通知信号的内核对象,一般在某个线程需要定时执行某项功能时用这种内核对项
73、信标内核对项常用于在多线程环境下控制某类资源的使用,使用信标内核对象可以让系统自动地维护资源的数量,并合理的控制线程对资源的访问情况。
74、信标的出色之处在于它们能够以原子操作方式来执行测试和设置操作,当向信标申请一个资源时,操作系统就要检验是否有这个资源可供使用,同时将可用资源的数量递减,而不让另一个线程加以干扰。只有当资源数量递减后,系统才允许另一个线程申请对资源的访问权。
75、如果线程需要访问该资源就要先获取互斥对象,所有线程都应遵循这个规则。
76、动态链接库(DLL)是Windows操作系统的基础,所有API函数都包含在DLL中。应用程序并不是只有一个可执行程序,而是由一个可执行模块和若干个DLL模块组成。当执行应用程序时,系统会把与可执行模块相链接的DLL模块加载到当前进程地址空间。
77、动态链接库(DLL)的最大特性是支持动态载入。
78、要产生可执行文件有两个步骤:
1)编译过程。编译源码,为每个C/C++源文件生成一个.obj模块,由编译器完成。
2)链接过程。把应用程序的各个.obj模块链接起来产生.exe文件,有链接器完成。
79、DLL隐式链接,是指在链接过程中,把应用程序所需要DLL模块的名字和输入符号都记录下来,使得应用程序在运行时可以动态载入该DLL。
80、与隐式链接相比,显示加载DLL主要有以下几个特性:
1)显示加载的DLL并不会在应用程序初始化时就加载,而是在运行时根据需要调用LoadLibrary或LoadLibraryEx函数来加载。
2)在应用程序输入表中没有记录。
3)隐式链接的前提是需要有DLL所对应的lib文件,如果没有lib文件就无法进行隐式链接。显示加载就没有这个限制。
81、DllMain函数是DLL的可选入口。
82、线程本地存储器(TLS)的主要作用是可以避免多个线程同时访问同一全局或者静态变量时导致的冲突。
83、TLS有两种使用方法:静态TLS和动态TLS。
84、结构异常处理有三种基本的使用方法,分别是结束异常程序、异常处理程序和顶层异常处理。
85结构化异常处理(SEH)是被作为一种系统机制引入到操作系统中的。
86、可执行文件格式(PE),其格式中得分数据结构通常定义在winnt.h中。
Windows编程教案第一课最简单的Windows程序(2学时)Windows编程是一个很大的主题,涉及的方面也非常的多。Windows始于90年代,至今Windows编程的发展已经非常成熟了,而单独直接使用......
Windows编程/附件资料2实验2MFC 框架程序的分析认知与编程实践 (4学时)一、实验目的:熟悉在Visual C++ 6.0 IDE中编辑、编译、调试和运行一个MFC应用程序的基本思路;理解并掌......
一、常量 数字常量 i.普通数字:1,35,2.7 ii.指数形式:2.45e-2等价于2.45*10-2 注意e大小写皆可,e前面的数字不能省,就算是1也不能省,后面的数字一定要是整数iii.长整型,单精度浮点型......
1. 右手螺旋法则—右手笛卡尔坐标系;定则——回转方向。2. 坐标轴确定的方法及步骤:Z轴:取产生切割力的主轴轴线X轴:一般位于平行工件装夹面的水平面内Y轴:根据确定的XZ轴,按右手笛......
Windows phone8项目总结报告半年的时间,自己在总结它的时候,感觉是那么的短暂,弹指一挥间。而也就是在这一挥间,承载着太多、太多的东西,有收获与成就,有失败与不足。回头看看......