7.1 鼠标的基础知识

来源:互联网 发布:日本人的退休生活知乎 编辑:程序博客网 时间:2024/05/16 04:45

        摘录于《Windows程序(第5版,珍藏版).CHarles.Petzold 著》P221

        Windows 98 支持单键、双键和三键鼠标,并支持利用控制杆或光笔来模拟鼠标。在早期,为了尊重使用单键鼠标的用户,Windows 应用程序都避免使用第二个按钮或第三个按钮。但是,双键鼠标已经成为事实上的标准,因此那种慎用第二个按钮的传统就变得不再合理。的确,第二个按钮现在已经是弹出“上下文菜单”或执行一些特殊拖动(不久会详细解释)的标准。所谓“上下文菜单”,是指出现在普通菜单栏之外的窗口中的菜单。然而,程序不应该依赖于双键鼠标的存在

        理论上,可以利用我们的老相识 GetSystemMetrics 函数来判断是否连接了鼠标:

fMouse = GetSystemMetrics (SM_MOUSEPRESENT);
当鼠标已被安装时,fMouse 的值为 TRUE(非零),否则值为 0。但是,在 Windows 98 中,不论鼠标是否连接上,该函数的返回值总是 TRUE。在 Windows NT 中,该函数的返回值是正确的。

        为了确定所安装鼠标的按钮个数,可以利用以下语句:

cButtons = GetSystemMetrics (SM_CMOUSEBUTTONS);
若没有安装鼠标,该函数返回值为 0。但是,在 Windows 98 下,该函数在没有安装鼠标时还是返回 2。

        习惯用左手的用户可以利用 Windows 控制面板来切换鼠标的按钮。程序也可以通过检查是否调用了带 SM_SWAPBUTTON 参数的 GetSystemMetrics 函数,判断鼠标的按钮是否调用了带 SM_SWAPBUTTON 参数的 GetSystemMetrics 函数,判断鼠标的按钮是否被切换,但是这种方法通常没有必要。食指控制的按钮被认为是左键,即使该按钮在物理位置上位于鼠标的右侧。但是,在一个计算机培训程序汇总,如果想在屏幕上画出一个鼠标,在这种情况下可能需要知道鼠标的按钮是否已被切换。

        在控制面板中,还可以设定鼠标的其他参数,比如鼠标双击的速度。从 Windows 应用程序中调用 SystemParametersInfo 函数可以获取或设定这个参数信息。

7.1.1  一些基本术语

        当 Windows 用户移动鼠标时,Windows 系统会在显示设备上移动一个位图格式的小图标,称为“鼠标指针”。鼠标指针具有一个单像素精度的“热点”(hot spot)。热点在显示设备上指示了一个精确的位置。当我提到屏幕上鼠标指针的位置时,实际上是指热点的位置

        Windows 为程序提供了几种预定义的鼠标指针。最常用的是斜向箭头,称为 IDC_ARROW(定义在 WINUSER.H 头文件中的标识符)。

        箭头的顶点即为热点。IDC_CROSS 指针的热点位于十字型图案的中心。IDC_WAIT 指针呈沙漏形,一般用在程序中表示忙碌状态。程序员还可以设计属于自己的指针。本书会在第 10 章讲述如何设计自定义鼠标指针。对一个具体窗口来说,默认的鼠标指针在定义窗口类结构时就被指定了。例如:

wndclass.hCursor = LoadCursor (NULL, IDC_ARROW);

        下面的术语描述了对鼠标按钮的操作:

  • 单击        按下鼠标按钮,然后松开。
  • 双击        连续两次快速按下鼠标按钮并松开。
  • 拖动       保持按下按钮,并移动鼠标。

        对三键鼠标来说,三个按钮分别被称作左键、中键和右键。Windows 头文件定义了三个与鼠标对应的标识符,分别简写为 LBUTTON、MBUTTON 和 RBUTTON。双键鼠标只有左键和右键,而单键鼠标只有左键。

7.1.1  鼠标的复数形式是什么?

        现在,为了表现我的勇敢,我将直面在替换输入设备领域最具争议的问题之一:“鼠标”的复数形式是什么?

        尽管人们都知道,多只老鼠(老鼠和鼠标在英语中是同一个词 mouse)称为"mice",但是对所谓的多个输入设备,似乎没有人能给出一个确定性答案。“mice” 和 “mouses” 听上去都不合适。在我惯用的参考书 American Heritage Dictionary of the English Language(第三版)中,作者认为这两种说法都是可行的(“mice” 更好一些),而 Microsoft Press Computer Dictionary(第三版)则完全只字未提。

        《连线》(Wired)杂志的编辑在 Wired Style:Principles of English Usage in the Digital Age(HardWired, 1996)一书中指出,“mouses”更有利于避免和啮齿动物复数混淆。Doug Engelbart 在 1964 年发明了鼠标,然而他对这个问题也毫无办法。我曾就鼠标的复数问题请教过他,《连线》杂志的编辑也曾问过他同样的问题,他回答说不知道。

        最后,以一种高度权威的态度,Microsoft Manual of Style for Technical Publications 告诉我们要“避免使用复数形式 mice; 如果需要表示多个鼠标,可以用 mouse devices 代替”。听上去这像是一种逃避,但是,在没有合理的复数形式的情形下,这的确是十分明智的建议。事实上,大部分可能需要使用“mouse”复数的表达度可以改写成不用复数的形式。比如,“人们像使用多个键盘一样频繁地使用多个鼠标(People use mice almost as much as keyboards.)”完全可以用“人们像使用键盘一样地使用鼠标(People use the mouse almost as much as the keyboard.)”来替换。

0 0
原创粉丝点击