《windows程序设计》读书笔记
fir_dameng
这个作者很懒,什么都没留下…
展开
-
特别篇-SetWindowExtEx,SetViewportExtEx解析
窗口坐标和视口坐标的转换公式: 例1: //各向异性,表示windows不对窗口和视口做出调整,即x轴和y轴并不总是保持相同的逻辑单位, SetMapMode(hdc,MM_ANISOTROPIC); //设置窗口的范围300 X 300, SetWindowExtEx(hdc,原创 2015-07-25 17:57:20 · 1903 阅读 · 0 评论 -
8.计时器
1.计时器定义windows计时器是一种输入设备,每到一个指定的时间间隔,它就会周期性地通知应用程序。windows会反复地向程序发送WM_TIMER消息,以表示改时间间隔已经过去。2.计时器功能多任务进行。在抢占式多任务系统中,如果程序必须完成大量的处理,可以把一个任务分成许多小块,每当收到一个WM_TIMER消息时,就处理一小块任务。达到充分利用cpu的效果。保持更新进原创 2015-07-24 19:56:58 · 1058 阅读 · 0 评论 -
22,波形音频
人发出的是声波,而计算机是以数字形式工作的,所以计算机有必要提供一种将声音转换为数字,再把数字转换为声音的机制。最常见的不压缩数据的方法被称为“脉冲编码调制”(pluse code modulation,PCM)脉冲编码调制以固定周期频率对波形进行采样,通常每秒几万次。对于每个样品,需要测量波形的幅值,这样分割的很细的话,得到的很多个点再绘制起来就可以还原原来的波形了。模数转换器(原创 2015-08-05 13:58:04 · 520 阅读 · 0 评论 -
7,鼠标学习四-滚轮
滚轮的滑动是windows产生WM_MOUSEWHEEL消息,并发送给具有输入焦点的窗口,而不是鼠标指针下面的窗口。和通常一样,参数lParam包含鼠标的位置信息,但是这些坐标是相对屏幕左上角的坐标,而不是相对客户区的坐标。同样,参数wParam的低位字包含一系列标志(flag),用于指明鼠标按钮,shift键和Ctrl键的状态。新的信息出现在参数wParam的高位字,这是一个“增量”原创 2015-07-23 21:23:59 · 813 阅读 · 0 评论 -
特别篇之动态链接库,静态链接库
dll(dynamic linking library)msdn上说:dll是一个包含函数和数据的模块,被其它模块调用,包括应用程序或其他dll。在一个dll可以定义导出和内置这两种函数,导出函数可以被外部和内部调用,内置函数则在内部调用。尽管dll可以导出数据,但通常用于它的函数中。但也不阻止数据被导出(比如说资源库)。dll提供了一种方法使应用程序模块化以便于它的功能更新和重用原创 2015-08-03 17:36:53 · 432 阅读 · 0 评论 -
win32消息机制
Windows把消息分为两种:一种是需要立即处理的消息,另一种是不需要立即处理的消息。 对于需要立即处理的消息,Windows直接把它送给窗口的消息处理函数进行处理,这类消息我们叫做非队列消息; 而对于不需要立即处理的消息,Windows会把它发送给应用程序的消息队列进行排队,由应用程序逐个进行处理,我们把这类消息叫做队列消息。消息队列又可以分成系统消息队列和线程消息队列。系统消息队列由W转载 2015-07-22 13:49:57 · 591 阅读 · 0 评论 -
7,鼠标学习二
《鼠标学习一》描述的是鼠标在客户区情况下,当鼠标在非客户区的时候呢?窗口的非客户区包括:标题栏,菜单和窗口滚动条,系统一般不需要用户处理非客户区消息,只要将其发送个DefWindowProc即可,这个系统键盘消息很类似哦。非客户区鼠标消息几乎和客户区完全类似,标识符“NC_",表示非客户(nonclient)WM_NCMOUSEMOVE :鼠标在非客户区移动。原创 2015-07-22 13:54:59 · 472 阅读 · 0 评论 -
7,鼠标学习三——焦点切换
继《鼠标学习二》中的矩形块绘制,当时采用的是坐标转换的方式。这次用一种新的绘图方式即子窗口,对,就是用25个子窗口来表示矩形。这样实现了将客户区划分成几个更小的逻辑区域。每个子窗口有属于自己的句柄,窗口过程和客户区。每个子窗口过程只接受与自身窗口有关的鼠标消息。tips:鼠标消息参数lParam中包含的坐标是相当于子窗口客户区左上角的,而不是父窗口。那么在两个窗口之间,原创 2015-07-22 15:02:54 · 675 阅读 · 0 评论 -
7. 鼠标学习一
鼠标消息:1.windows只把键盘消息发送到当前具有输入焦点的窗口。鼠标消息则不同,当鼠标经过窗口或在窗口内被单击,则即使该窗口是非活动窗口或不带输入焦点,窗口过程还是会收到鼠标消息。2.windows定义了21种鼠标消息,其中11种与客户区无关,称为“非客户区消息”。windows应用程序通常忽略这类消息。当鼠标移经窗口客户区(不管窗口是否获得焦点),窗口过程接收WM_MO原创 2015-07-22 10:43:11 · 475 阅读 · 0 评论 -
6.1-键盘之综合示例
第六章—–键盘windows程序中,对于键盘消息的处理,分为击键消息和字符消息。击键消息 包括WM_KEYDOWM,WM_KEYUP,WM_SYSKEYDOWM,WM_SYSKEYUP,其中windows会自动处理WM_SYSKEYDOWM,WM_SYSKEYUP,应用程序则负责其他两种。字符消息 也分为四种。 大多数情况下,我们只用处理非系统字符消息WM_CHAR就行。综合示例之typer源原创 2015-07-20 19:08:37 · 448 阅读 · 0 评论 -
8,计时器应用实例
示例一:数字时钟。模拟LED的七级显示形式,显示当前时间。原创 2015-07-26 10:07:52 · 447 阅读 · 0 评论 -
特别篇-GDI映射模式SetWindowOrgEx,SetViewportOrgEx
1.几乎所有GDI函数中,坐标值都是“逻辑单位”(logic unit)。windows必须要将逻辑单位转换成“设备单位”(device unit)也就是像素。这些转换是由映射模式,窗口原点,视口原点,窗口范围和视口范围共同控制的。2.windows定义了8种映射模式,他们在winGDI.h中定义的标识符如下表。3.设备坐标与逻辑坐标映射模式使设备环境的一种属性原创 2015-07-25 19:47:36 · 1658 阅读 · 0 评论