Window程序设计(书)
文章平均质量分 80
Ronal_Lee
这个作者很懒,什么都没留下…
展开
-
卷动列 续
卷动列的范围和位置 每个卷动列均有一个相关的「范围」(这是一对整数,分别代表最小值和最大值)和「位置」(它是卷动方块在此范围内的位置)。当卷动方块在卷动列的顶部(或左部)时,卷动方块的位置是范围的最小值;在卷动列的底部(或右部)时,卷动方块的位置是范围的最大值。在内定情况下,卷动列的范围是从0(顶部或左部)至100(底部或右部),但将范围改变为更方便於程式的数值也是很容易的:SetSc原创 2008-11-05 12:00:00 · 786 阅读 · 0 评论 -
windows程序设计--colors1程序
// COLORS1.cpp : Defines the entry point for the application.//#include "stdafx.h"#include "COLORS1.h"#define MAX_LOADSTRING 100// Global Variables:HINSTANCE hInst; // current instanceTC原创 2009-01-13 17:42:00 · 1312 阅读 · 0 评论 -
图形基础-映射模式--英文
The MM_ISOTROPIC Mapping ModeThe MM_ISOTROPIC mapping mode is ideal for using arbitrarily scaled axes while preserving equal logical units on the two axes. Rectangles with equal logical widths and h原创 2008-11-20 13:46:00 · 850 阅读 · 0 评论 -
图形基础---矩形、区域和剪裁
矩形、区域和剪裁Windows包含了几种使用RECT(矩形)结构和「区域」的绘图函数。区域就是屏幕上的一块地方,它是矩形、多边形和椭圆的组合。矩形函数下面三个绘图函数需要一个指向矩形结构的指针:FillRect (hdc, &rect, hBrush) ; FrameRect (hdc, &rect, hBrush) ; Inver原创 2008-11-25 14:49:00 · 2890 阅读 · 0 评论 -
键盘--谁获得了焦点(英文)
Whos Got the Focus?Like all personal computer hardware, the keyboard must be shared by all applications running under Windows. Some applications might have more than one window, and the keyboard原创 2008-11-26 23:26:00 · 1221 阅读 · 0 评论 -
键盘--谁获得了焦点
谁获得了焦点与所有的个人计算机硬件一样,键盘必须由在Windows下执行的所有应用程序共享。有些应用程序可能有多个窗口,键盘必须由该应用程序内的所有窗口共享。回想一下,程序用来从消息队列中检索消息的MSG结构包括hwnd字段。此字段指出接收消息的窗口控件码。消息循环中的DispatchMessage函数向窗口消息处理程序发送该消息,此窗口消息处理程序与需要消息的窗口相联系。在按下键盘上的键原创 2008-11-26 23:25:00 · 1948 阅读 · 0 评论 -
键盘--外语键盘问题
外语键盘问题如果您执行美国英语版本的Windows,那么您可安装不同的键盘布局,并输入外语。可以在 控制台的键盘中安装外语键盘布局。选择 语系页面标签,按下新增 键。要查看死键的工作方式,您可能想安装「德语」键盘。此外,我还要讨论「俄语」和「希腊语」的键盘布局,因此您也可安装这些键盘布局。如果在「键盘」显示的列表中找不到「俄语」和「希腊语」的键盘布局,则需要安装多语系支持:从「控制台」中原创 2008-12-02 09:46:00 · 2909 阅读 · 0 评论 -
键盘--字符消息
字符消息前面讨论了利用位移状态信息把按键消息翻译为字符消息的方法,并且提到,仅利用转换状态信息还不够,因为还需要知道与国家/地区有关的键盘配置。由于这个原因,您不应该试图把按键消息翻译为字符代码。Windows会为您完成这一工作,在前面我们曾看到过以下的程序代码:while (GetMessage (&msg, NULL, 0, 0)) {原创 2008-12-02 09:43:00 · 3538 阅读 · 3 评论 -
键盘--外语键盘问题(英文)
The Foreign-Language Keyboard ProblemIf youre running the American English version of Windows, you can install different keyboard layouts and pretend that youre typing in a foreign language. Yo原创 2008-12-02 09:56:00 · 1596 阅读 · 0 评论 -
键盘--字符消息(英文)
Character MessagesEarlier in this chapter, I discussed the idea of translating keystroke messages into character messages by taking shift-state information into account. I warned you that shift-st原创 2008-12-02 09:45:00 · 1149 阅读 · 0 评论 -
图形基础-GDI映像模式( 下)
设备坐标和逻辑坐标您也许会问:如果使用MM_LOENGLISH映射方式,是不是将会得到以百分之一英寸为单位的WM_SIZE消息呢?绝对不会。Windows对所有消息(如WM_MOVE、WM_SIZE和WM_MOUSEMOVE),对所有非GDI函数,甚至对一些GDI函数,永远使用设备坐标。可以这样来考虑:由于映像方式是一种设备内容属性,所以,只有对需要设备内容句柄作参数的GDI函数,映像方原创 2008-11-17 11:33:00 · 1870 阅读 · 0 评论 -
图形基础
程序5-3 LINEDEMO画一个矩形、一个椭圆、一个圆角矩形和两条线段,不过不是按这一顺序。程序表明了定义封闭区域的函数实际上对这些区域进行了填入,因为在椭圆后面的线被遮住了,结果如图5-12中所示。程序5-3 LINEDEMO LINEDEMO.C /*-------------------------------------------原创 2008-11-12 15:25:00 · 1192 阅读 · 0 评论 -
图形基础--画点和线
画点和线在第一章,我们谈论过Windows图形设备接口将图形输出设备的设备驱动程序与计算机连在一起的方式。在理论上,只要提供SetPixel和GetPixel函数,就可以使用图形设备驱动程序绘制一切东西了。其余的一切都可以使用GDI模块中实作的更高阶的例程来处理。例如,画线时,只需GDI呼叫SetPixel数次,并适当地调整x和y坐标。在实际情况中,也的确可以仅使用SetPixel原创 2008-11-12 11:43:00 · 3564 阅读 · 0 评论 -
第四章:格式化文字-续
SYSMETS1.C视窗讯息处理程式 SYSMETS1.C程式中的WndProc视窗讯息处理程式处理三个讯息:WM_CREATE、WM_PAINT和WM_DESTROY。WM_DESTROY讯息的处理方法与第三章的HELLOWIN程式相同。WM_CREATE讯息是视窗讯息处理程式接收到的第一个讯息。在CreateWindow函式建立视窗时,Windows产生这个讯息。在处理WM_CREAT原创 2008-11-05 16:02:00 · 684 阅读 · 0 评论 -
(1)第四张--输出文字:绘图程序的组织
绘图程序的组织在处理完滚动条消息后,SYSMETS2不更新显示区域,相反,它呼叫InvalidateRect使显示区域失效。这导致Windows将一个WM_PAINT消息放入消息队列中。最好能使Windows程序在响应WM_PAINT消息时完成所有的显示区域绘制功能。因为程序必须在一接收到WM_PAINT消息时就更新整个显示区域,如果在程序的其它部分也绘制的话,将很可能使程序代码重复。原创 2008-11-05 20:32:00 · 666 阅读 · 0 评论 -
(2)第5章--图形基础--GDI结构
图形设备接口(GDI:Graphics Device Interface)是Windows的子系统,它负责在视讯显示器和打印机上显示图形。正如您所认为的那样,GDI是Windows非常重要的部分。不只您为Windows编写的应用系统在显示视觉信息时使用GDI,就连Windows本身也使用GDI来显示使用者接口对象,诸如菜单、滚动条、图标和鼠标光标。不幸的是,如果要对GDI进行全面的讲述,将需要原创 2008-11-05 20:37:00 · 667 阅读 · 0 评论 -
卷动列
卷动列 卷动列是图形使用者介面中最好的功能之一,它很容易使用,而且提供了很好的视觉回馈效果。您可以使用卷动列显示任何东西--无论是文字、图形、表格、资料库记录、图像或是网页,只要它所需的空间超出了视窗的显示区域所能提供的空间,就可以使用卷动列。卷动列既有垂直方向的(供上下移动),也有水平方向的(供左右移动)。使用者可以使用滑鼠在卷动列两端的箭头上或者在箭头之间的区域中点一下,这时,「原创 2008-11-05 11:59:00 · 706 阅读 · 0 评论 -
鼠标下
拦截鼠标一个窗口消息处理程序通常只在鼠标光标位于窗口的显示区域,或非显示区域上时才接收鼠标消息。一个程序也可能需要在鼠标位于窗口外时接收鼠标消息。如果是这样,程序可以自行「拦截」鼠标。别害怕,这么做没什么大不了的。设计矩形为了说明拦截鼠标的必要性,请让我们看一下BLOKOUT1程序(如程序7-6所示)。此程序看起来达到了一定的功能,但它却有十分严重的缺陷。程序7-6 BLOK原创 2008-12-29 15:08:00 · 1286 阅读 · 0 评论 -
第四章 格式化文字
格式化文字 Windows启动後,系统字体的大小就不会发生改变,所以在程式执行过程中,程式写作者只需要呼叫一次GetTexMetrics。最好是在视窗讯息处理程式中处理WM_CREATE讯息时进行此呼叫,WM_CREATE讯息是视窗讯息处理程式接收的第一个讯息。在WinMain中呼叫CreateWindow时,Windows会以一个WM_CREATE讯息呼叫视窗讯息处理程式。假设要编写一个原创 2008-11-05 11:55:00 · 908 阅读 · 0 评论 -
第五章--图形基础--设备内容(1)
设备内容在开始绘图之前,让我们比第四章更精确地讨论一下设备内容。当您想在一个图形输出设备(诸如屏幕或者打印机)上绘图时,您首先必须获得一个设备内容(或者DC)的句柄。将句柄传回给程序时,Windows就给了您使用设备的权限。然后您在GDI函数中将这个句柄作为一个参数,向Windows标识您想在其上进行绘图的设备。设备内容中包含许多确定GDI函数如何在设备上工作的目前「属性」,这原创 2008-11-05 20:43:00 · 803 阅读 · 0 评论 -
第五章--设备内容(The Device Context)(2)
设备的大小假定要绘制边长为1英寸的正方形,您(程序写作者)或Windows(操作系统)需要知道视讯显示上1英寸对应多少图素。使用GetDeviceCaps函数能取得有关如视讯显示器和打印机之类输出设备的实际显示大小信息。视讯显示器和打印机是两个不同的设备。但也许最不明显的区别是「分辨率」与设备联系起来的方式。对于打印机,我们经常用「每英寸的点数(dpi)」表示分辨率。例如,大多数激原创 2008-11-05 20:45:00 · 1277 阅读 · 0 评论 -
鼠标
鼠标是有一个或多个键的定位设备。虽然也可以使用诸如触摸画面和光笔之类的输入设备,但是只有鼠标以及常用在膝上型计算机上的轨迹球等才是渗透了PC市场的唯一输入设备。情况并非总是如此。当然,Windows的早期开发人员认为他们不应该要求使用者为了执行其产品而必须买只鼠标。因此,他们将鼠标作为一种选择性的附加设备,而为Windows中的所有操作以及applet提供一种键盘接口(例如,查看Wind原创 2008-12-16 09:52:00 · 1549 阅读 · 0 评论