Windows编程
jiexuan357
记录学习的点点滴滴。
闻道有先后,术业有专攻,如是而已。
展开
-
DirectX 11 SDK文档(七)
总结 在前面的教程中,这个世界看起来令人厌烦,因为所有的对象以同一种方式显示。在这个教程将介绍简单的光照概念,并介绍如何去应用它。这个技术是方向光。光照 在这个教程中,将介绍最基础的光照类型是方向光。方向光不论对象跟光源的距离,都受到统一的关照。当光照到一个表面时,光照的发射计算这个表面和光线的夹角大小。当光线直接照射到表面时,表面会将所有的光反射回去,转载 2012-07-20 20:54:26 · 679 阅读 · 0 评论 -
第14章 Windows API 的跨平台开发
14.1 Windows API 跨平台开发概述 Windows API是Miscrosoft公司在推出其Windows系列操作系统时同时提供给广大用户的一个应用程序接口,在这套应用程序接口中定义了数以千计的可用于面向Windows程序设计的函数。用户使用这些函数可以轻易地完成诸如窗口生成并显示,消息循环和处理等各种工作。由于其良好的可重用性、Windows操作系统的紧密集成以及强大的功能,转载 2012-07-24 21:58:44 · 925 阅读 · 0 评论 -
第二章 WINDOWS应用程序框架
创建窗口只需调用CreateWindow 函数即可,但实际上并不这么简单。 但实际上并非真得这么简单。虽然创建窗口的函数确实被命名为CreateWindow, 但您将发现 CreateWindow的第一个参数就是所谓的“窗口类名称”,并且该窗口类连接所谓的“窗口过程”。在我们调用CreateWindow之前,有一点背景知识会对您大有帮助。WINDOWS应用程序的基本结构 进行Wi转载 2012-07-24 21:50:29 · 1220 阅读 · 0 评论 -
第六章 鼠标消息与键盘消息
在Microsoft Windows 中,键盘和鼠标是两个标准的用户输入源,在一些交叠的操作中通常相互补充使用。当然,鼠标在今天的应用程序中比10年前使用得更为广泛。甚至在一些应用程序中,我们更习惯于使用鼠标,例如在游戏、画图程序、音乐程序,以及Web创览器等程序中就是这样。然而,我们可以不使用鼠标,但绝对不能从一般的PC中拆掉键盘。 相对于个人计算机的其他组件,键盘有非常久远的历史,它起源转载 2012-07-24 21:53:17 · 1393 阅读 · 0 评论 -
第12章 Windows的内存管理
Windows是一个多任务的操作系统,由于同时可以运行多个任务,因此Windows必须小心地管理系统的存储空间,以便一个应用程序对内存的要求得到满足的同时不会影响其他任务的执行。 尽管微处理机向物理内存写或读都是使用物理地址,但是程序员在程序设计中却是使用逻辑地址来对物理内存进行操作。逻辑地址包括两部分: 1、段标识符 用于说明存取的内存段的值; 2、偏移值 相对于段地址的字节数转载 2012-07-24 21:57:33 · 975 阅读 · 0 评论 -
第一章 Windows程序设计概述
Windows和Windows应用程序最大的优点就是用户界面的一致性。因为大多数用户都在不同的软件包上工作,而每一个软件包都有自己的用户界面,所以用户界面一致性的设计就显得非常重要。Windows环境中的每一个窗口都包含了相同的基本特性,由于这些基本特性在应用程序中是一致的,因而用户能很容易地适应新的应用程序。 对用户的另一个好处是使用了基于图形的图标来代表应用程序和数据。由于Windows转载 2012-07-24 21:49:51 · 898 阅读 · 0 评论 -
第九章 对话框
在 Miscrosoft Windows中,对话框就是应用程序创建的用于获取用户输入的一个临时窗口。应用程序一般用对话框来提示用户输入命令的附加信息。对话框通常都含有一个或多个用户可以输入文本、选择可选择项或者指导命令操作的控件。对话框的基础知识一、对话框概述 Windows提供了许多函数、消息和预定义的控件,用于帮助创建和管理对话框。这样,开发应用程序用户接口就变得更容易了转载 2012-07-24 21:54:39 · 750 阅读 · 0 评论 -
第十章 多文档界面
多文档界面(MDI)是Microsoft Windows文档处理应用程序的一种规范,该规范描术了窗口结构和允许用户在单个应用程序中使用多个文档的用户界面(如字处理程序中的本文文档和电子表格程序中的电子表格)。简单地说,就像Windows在一个屏幕上维护多个应用程序窗口一样,MDI应用程序在一个客户区内维护多个文档窗口。Windows中的第一个MDI应用程序是Windows下的Microsoft E转载 2012-07-24 21:55:11 · 1200 阅读 · 0 评论 -
第十一章 动态链接库
动态链接库(也称为DLL、动态库或库模块)是Microsoft Windows最重要的组成要素之一。大多数与Windows相关的磁盘文件要么是程序模块,要么是动态链接库模块。迄今为止,我们都是在编写Windows应用程序,现在是尝试编写动态链接库的时候了。许多您已经学会的编写应用程序的规则同样适用于编写这些库模块,但也有一些重要的不同。动态链接库基础知识库的基本知识 正如前面转载 2012-07-24 21:55:59 · 4392 阅读 · 0 评论 -
第13章 动态数据交换和对象链接与嵌入
剪贴板 在Windows操作系统中大量使用剪贴板使用户能够在同一应用程序之中或不同应用程序之间传输数据。13.1.1 剪贴板数据格式 当用户选中某些数据并对它进行复制操作时,Windows把这些数据从选中区中读出并传送到剪贴板上:当用户使用粘贴命令时,该数据从剪贴板上读出并粘贴到插入位置。剪贴板倾向于对用户保持透明,用户甚至不会意识到它的存在。注意:剪贴板只是一个简单的数据转载 2012-07-24 21:58:14 · 1983 阅读 · 0 评论 -
一组路径操作的API
本节介绍了在Windows Shell路径处理功能。出口本文档中介绍的编程元素SHLWAPI.DLL和定义在Shlwapi.h和Shlwapi.lib的。在本节中主题描述PathAddBackslash添加一个反斜杠结束的字符串,创建正确的语法的路径。如果源路径已经有一个尾部的反斜杠,没有反斜杠将被添加。PathA翻译 2012-09-29 11:01:10 · 1062 阅读 · 0 评论 -
d3d多渲染窗口结构
使用d3d的交换链可以方便的实现多渲染窗口结构,类的层次结构如下图所示:D3DRes用来定义dx设备丢失的处理,所有需要关心设备丢失的资源都从此类继承,然后重写设备丢失回调函数和设备重置回调函数即可方便的处理设备丢失。RenderTarget用来定义基本的渲染目标,成员包括长宽及大小的定义,及渲染目标的虚接口定义(比如:缓冲区切换等)。Win32Window封装win32接转载 2012-10-22 21:23:13 · 667 阅读 · 0 评论 -
#pragma warning指令
该指令允许有选择性的修改编译器的警告消息的行为指令格式如下:#pragma warning( warning-specifier : warning-number-list [; warning-specifier : warning-number-list...]#pragma warning( push[ ,n ] )#pragma warning( pop )主要用到的警转载 2012-11-13 15:00:11 · 980 阅读 · 0 评论 -
第七章 弹出式窗体与子窗体
我们讨论三种窗体,它们分别是“重叠式窗体”(overlapped window)“弹出式窗体”(popup window) 与“子窗体”(child window)。窗体风格1. WS_OVERLAPPED2. WS_OVERLAPPEDWINDOW3. WS_POPUP4. WS_POPUPWINDOW5. WS_CHILD6. WS_CHILDWINDOW转载 2012-07-24 21:53:44 · 1028 阅读 · 0 评论 -
第五章 文本和字体
文本输出是应用程序经常需要实现的功能。许多程序的运行结果都必须以文本输出形式显示;文字处理程序更是主要以文本作为处理的对象。所以,程序员掌握文本输出的基本原理和技术具有重要的意义。文本输出需要解决的问题是如何修改显示文本的字体、颜色和大小,以及如何协调在不同设备上显示文本的差异。第一节 文本输出的基本知识1.文本的设备描述表属性 设备描述表( Device Context)是一个转载 2012-07-24 21:52:22 · 592 阅读 · 0 评论 -
DirectX 11 SDK文档(四)
总结 在前面的教程中,我们创建了顶点缓冲区,并且传送了一个三角形的数据给GPU渲染。现在,我们通过graphics pipeline来看看,它每个步骤是怎么工作的。渲染器的概念,对系统的影响将被一一解释。Graphics Pipeline 在前面的教程中,我们创建了顶点缓冲区,并且我们将顶点格式和顶点渲染器联系在一起。现在,我们将解释渲染器是如何工作的。转载 2012-07-20 20:53:00 · 977 阅读 · 0 评论 -
DirectX 11 SDK文档(六)
总结 在前面的教程中,我们将模型空间中的立方体渲染到屏幕上。在这个教程中,我们将扩展变换的概念,并使用这些变换展示简单的动画。变换 在3D图形学中,变换经常用来操作顶点和向量。也用来将一个对象从一个空间变换到另一个空间。变换能够能够用矩阵进行多种操作。这里有3个典型的原始变换:平移(与原点的位置关系),旋转(与X,Y,Z轴的方向关系),缩放(与原点的距离转载 2012-07-20 20:54:05 · 1255 阅读 · 0 评论 -
DirectX 11 SDK文档(八)
总结 在前面的教程中,我们介绍了光照。现在我们为立方体添加纹理。我们将介绍静态缓存的概念,并解释如何使用缓存以最小的带宽来加快处理。纹理映射 纹理映射是指2D纹理到3D几何模型的投影。我们可以认为它是一种包装。为了完成这项任务,我们不得不确定2D图像跟表面上顶点的关系。 这个立方体比较适合进行纹理坐标的设置。对于复杂的模型,手动地设置纹转载 2012-07-20 20:54:51 · 811 阅读 · 0 评论 -
DirectX 11 SDK文档(二)
总结 这是第一个教程,我们将通过必要的元素来创建一个小型的DirectX 11应用程序。每个DirectX 11应用程序必须拥有这些元素得以正常运转。这些元素包括创建一个窗口对象和设备对象,并且能够显示一种颜色的窗口。创建DirectX 11 设备 创建窗口对象和消息循环请参见DirectX 11 SDK文档(一)。现在我们有一个能够显示的窗口,接下来我们转载 2012-07-20 20:51:57 · 756 阅读 · 0 评论 -
DirectX 11 SDK文档(三)
总结 在前面的教程中,我们创建了一个小型的,能够显示单颜色的窗口的Direct3D 11应用程序。在这个教程中,我们将扩展这个应用程序将一个三角形显示在屏幕上,我们将贯穿这个过程来创建关于三角形的数据结构。效果如上图。三角形的元素 一个三角形由三个点组成,也可以叫做顶点。用一个顶点数组来定义一个三角形,为了GPU能够渲染这个三角形,我们必须告诉GPU三角形的三个顶点转载 2012-07-20 20:52:32 · 1135 阅读 · 0 评论 -
DirectX 11 SDK文档(五)
总结 在前面的教程中,我们成功地在应用程序窗口的中央绘制了一个三角形,我们没有吧注意力集中在顶点缓冲区里的坐标信息。在这个教程中,我们将详细描述3D坐标和Transformation。3D空间 在前面的教程中,我们很明智地把三个顶点信息放置在屏幕上。然而,不具有一般性。那么,我们需要一个系统来表示在3D空间中的对象和一个系统将他们显示出来。转载 2012-07-20 20:53:35 · 825 阅读 · 0 评论 -
DirectX 11 SDK文档(一)
原文地址:http://blog.csdn.net/cmt100/article/details/6343274总结 这是一个初步的教程。我们将通过必要的步骤来创建一个Win32 Application。我们创建一个空白的窗口为DirectX 11做准备。创建窗口 每一个窗口应用程序需要至少一个窗口对象。甚至在开始获得Dire转载 2012-07-20 20:50:25 · 3037 阅读 · 0 评论 -
关于Whisperwind数学库的选择:XnaMath
in Whisperwind(我的开源游戏项目) , by 李素颙in Whisperwind(我的开源游戏项目) , by 李素颙最近又开始愁数学库的问题了,折腾了一天,总算定了下来,大抵上如下:一般的开源引擎或是商业引擎基本上的选择都是自己去写,写一个通用库然后按照自己需要支持的平台去针对性优化,如果实力强悍这种方法当然是最好的,易控转载 2012-07-20 21:20:38 · 961 阅读 · 0 评论 -
怎样使用C++回调函数
程序员常常需要实现回调。本文将讨论函数指针的基本原则并说明如何使用函数指针实现回调。注意这里针对的是普通的函数,不包括完全依赖于不同语法和语义规则的类成员函数(类成员指针将在另文中讨论)。声明函数指针 回调函数是一个程序员不能显式调用的函数;通过将回调函数的地址传给调用者从而实现调用。要实现回调,必须首先定义函数指针。尽管定义的语法有点不可思议,但如果你熟悉函数声明的一般方法转载 2012-07-23 14:41:41 · 489 阅读 · 0 评论 -
回调函数定义和使用
最近经常使用回调函数,有时感觉有点混乱,对回调函数理解不透,昨天花点时间深深品味了一下回调函数,写下博客记录一下,言规正转,VC中的定时器是一种特殊的回调函数,只要我们设置好了定时器,我们就不用管什么时候调用定时器处理函数,是操作系统负责调用,定时器的处理函数还是我们自己去写实现。 为什么 要用回调函数呢,这个问题我也想过,现在先说说回调函数的定义 和使用,过下在回答为什么 要使转载 2012-07-23 14:42:49 · 833 阅读 · 0 评论 -
第三章 WINDOWS 资源
大多数Windows程序都包含一个定制的图标,Windows将该图标显示在应用程序窗口标题栏的左上角。当程序被列在“开始”菜单中,或者被显示在屏幕底部的任务栏中,或者被列在“Windows资源管理器”中,或者作为快捷方式显示在桌面上时,Windows也显示该程序的图标。有些程序——诸如 Windows Paint一类的重要的图形绘制工具——也使用用户化的鼠标光标来表示程序的不同操作。许多Windo转载 2012-07-24 21:51:15 · 1192 阅读 · 0 评论 -
第四章 WINDOWS绘图程序设计
图形设备接口(GDI:Graphics Device Interface)是Windows的子系统,它负责在视频显示器和打印机上显示图形。正如您所认为的那样,GDI是Windows非常重要的部分。不但您为Windows编写的应用系统在显示视觉信息时只使用GDI,就连Windows本身也只使用GDI来显示用户界面对象,诸如菜单、滚动条、图标和鼠标光标。 不幸的是,如果要对GDI进行全面的讲述,转载 2012-07-24 21:51:47 · 1011 阅读 · 0 评论 -
3D API中,字体绘制的Batch优化
原文地址:http://blog.csdn.net/nhsoft/article/details/7788547在3D引擎中绘制字符是很恶心的事情。一个个绘制吧又太慢。组成一个大mesh吧。又太耗引擎的人品。而且还是得lock/unlock vb。才绘制了一百多个字。 fps从600掉到80多。经过跟别人的讨论。pos之类的数据用shader constant来传递会效转载 2012-12-03 13:30:38 · 424 阅读 · 0 评论