VB编程基础课.pdf

上传人:asd****56 文档编号:70344586 上传时间:2023-01-19 格式:PDF 页数:14 大小:185.64KB
返回 下载 相关 举报
VB编程基础课.pdf_第1页
第1页 / 共14页
VB编程基础课.pdf_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《VB编程基础课.pdf》由会员分享,可在线阅读,更多相关《VB编程基础课.pdf(14页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、VB 编程基础课编程基础课 什么是什么是 API 首先,有必要向大家讲一讲,什么是 API。所谓 API 本来是为 C 和 C+程序员写的。API 说来说去,就是一种函数,他们包含在一个附加名为 DLL 的动态连接库文件中。用标准的定义来讲,API 就是 Windows 的 32 位应用程序编程接口,是一系列很复杂的函数,消息和结构,它使编程人员可以用不同类型的编程语言编制出的运行在Windows95和Windows NT 操作系统上的应用程序。可以说,如果你曾经学过 VC,那么 API 对你来说不是什么问题。但是如果你没有学过 VC,或者你对 Windows95 的结构体系不熟悉,那么可以说

2、,学习API 将是一件很辛苦的事情。如果你打开 WINDOWS 的 SYSTEM 文件夹,你可以发现其中有很多附加名为 DLL 的文件。一个 DLL 中包含的 API 函数并不只是一个,数十个,甚至是数百个。我们能都掌握它嘛?回答是否定的不可能掌握。但实际上,我们真的没必要都掌握,只要重点掌握 Windos系统本身自带的 API 函数就可以了。但,在其中还应当抛开掉同 VB 本身自有的函数重复的函数。如,VB 的 etAttr 命令可以获得文件属性,SetAttr 可以设置文件属性。对 API 来讲也有对应的函数 GetFileAttributes 和 SetFileAttributes,性能

3、都差不多。如此地一算,剩下来的也就 5、600 个。是的,也不少。但,我可以敢跟你说,只要你熟悉地掌握 100 个,那么你的编程水平比现在高出至少要两倍。尽管人们说 VB 和 WINDOWS 具有密切的关系,但我认为,API 更接近 WINDOWS。如果你学会了 API,首要的收获便是对 WINDOWS 体系结构的认识。这个收获是来自不易的。如果你不依靠 API 会怎么样?我可以跟你说,绝大多是高级编程书本(当然这不是书的名程叫高级而高级的,而是在一开始的本书内容中指明本书的阅读对象是具有一定 VB基础的读者的那些书),首先提的问题一般大都是从 API 开始。因此可以说,你不学 API,你大概

4、将停留在初级水平,无法往上攀登。唯一的途径也许就是向别人求救我快死了,快来救救我呀,这个怎么办,那个怎么办?烦不烦呢?当然,现在网上好人太多(包括我在内,嘻嘻),但,你应当明白,通过此途径,你的手中出不了好的作品。这是因为缺乏这些知识你的脑子里根本行不成一种总体的设计构思。很多 API 函数都是很长很长的。想看什么样子吗?如下就是作为例子的 API DdeClientTransaction 函数 Declare Function DdeClientTransaction Lib user32(pData As Byte,ByVal cbData As Long,ByVal hConv As L

5、ong,ByVal hszItem As Long,ByVal wFmt As Long,ByVal wType As Long,ByVal dwTimeout As Long,pdwResult As Long)As Long 哇!这么长?如果你从来没有接触过 API,我想你肯定被吓住了。你也许考虑,该不该继续学下去。不过不要担心,幸运的是 Microsoft 的设计家们为我们提供了有用的工具,这便是 API 文本查看器。通过 API 文本查看器文本查看器,我们可以方便地查找程序所需要的函数声明、结构类型和常数,然后将它复制到剪贴板,最后再粘贴到 VB 程序的代码段中。在大多数情况下,只要我

6、们确定了程序所需要的函数、结构和常数这三个方面后,就可以通过对 API 文本游览器的以上操作将他们加入到程序段中,从而程序中可以使用这些函数了。这些是学习 API 最基本的常识问题,它远远占不到 API 的庞大的体系内容。今后我们把精力浪费(这绝不是浪费)在哪里呢?那就是什么时候使用什么函数,什么时候使用什么结构类型,什么时候使用什么常数。API 函数声明函数声明 让我们回想一下。在 VB 中,如何声明函数呢?我想,如果你正在看此文,那么你绝对能够回答得出这个问题。以下便是你应该很熟悉的函数声明 Function SetFocus(ByVal hwnd As Long)As Long 即,这行

7、代码定义了名为 SetFocus 的函数,此函数具有一个 Long 型数据类型的参数,并按值传递(ByVal),函数执行后将返回一个 Long 型数据。API 函数的声明也很类似,如,API 中的 SetFocus 函数是这样写的 Declare Function SetFocus Lib user32 Alias SetFocus(ByVal hwnd As Long)As Long 有点复杂了一些。是的,是复杂了点。但我可以告诉你,除了这些多出来的部分,其他部分还是和你以前学到的东西是一样的。函数在程序中的调用也是一样。如:Dim dl As Long dl&=SetFoucs(Form1

8、.Hwnd)但,一点是清楚的。它不象你自己写的程序那样能够看到里面的运行机理,也不像 VB 自带的函数那样,能够从 VB 的联机帮助中查到其用法。唯一的方法就是去学、查 VB 以外的资料。Declare 语句用于在模块级别中声明对动态链接库(DLL)中外部过程的引用。对此,你只要记住任何 API 函数声明都必须写这个语句就可以了。Iib 指明包含所声明过程或函数的动态链接库或代码资源。也就是说,它说明的是,函数或过程从何而来的问题。如在上例中,SetFocus Lib user32说明 函数 SetFocus 来自 user32.dll 文件。主要的 dll 动态连接库文件有 user32.d

9、ll Windows 管理。生成和管理应用程序的用户接口。GDI32.dll 图形设备接口。产生 Windows 设备的图形输出 Kernel32.dll 系统服务。访问操作系统的计算机资源。注意,当 DLL 文件不在 Windows 或 System 文件夹中的时候,必须在函数中说明其出处(路径)。如,SetFocus Lib c:Mydlluser32 函数声明中的 Alias 是可选的。表示将被调用的过程在动态链接库(DLL)中还有另外的名称(别名)。如,Alias SetFocus,说明 SetFocus 函数在 User32.dll 中的另外一个名称是,SetFocus。怎么两个名都

10、一样呢?当然,也可以是不同的。在很多情况下,Alias 说明的函数名,即别名最后一个字符经常是字符 A,如 SetWindowsText 函数的另一个名称是 SetWindowsTextA,表示为 Alias SetWindowsTextA。这个 A 只不过是设计家们的习惯的命名约定,表示函数属于 ANSI 版本。那么,别名究竟有什么用途呢?从理论上讲,别名提供了用另一个名子调用 API 的函数方法。如果你指明了别名,那么 尽管我们按 Declare 语句后面的函数来调用该函数,但在函数的实际调用上是以别名作为首要选择的。如,以下两个函数(Function,ABCD)声明都是有效的,他们调用的

11、是同一个 SetFocus 函数 Declare Function SetFocus Lib user32 SetFocus(ByVal hwnd As Long)As Long Declare ABCD SetFocus Lib user32 Alias SetFocus(ByVal hwnd As Long)As Long 需要注意的是,选用 Alias 的时候,应注意别名的大小写;如果不选用 Alias 时的时候,函数名必须注意大小写,而且不能改动。当然,在很多情况下,由于函数声明是直接从 API 文本游览器中拷贝过来的,所以这种错误的发生机会是很少的,但您有必要知道这一点。最后提醒你一

12、句,API 声明(包括结构、常数)必须放在窗体或模块的通用(General Declarations)段。数据类型与类型安全 API 函数中使用的数据类型基本上和 VB 中的一样。但作为 WIN32 的 API 函数中,不存在Integer 数据类型。另外一点是在 API 函数中看不到 Boolean 数据类型。Variant 数据类型在 API 函数中是以 Any 的形式出现,如 Data As Any。尽管其含义是允许任意参数类型作为一个该API 函数的参数传递,但这样做存在一定的缺点。其原因是,这将会使得对目标参数的所有类型检查都会被关闭。这自然会给各种类型的参数调用带来了产生错误的机会

13、。为了强制执行严格的类型检查,并避免上面提到的问题,一个办法是在函数里使用上面提到到 Alias 技术。如对 API 函数 GetDIBits 可进行另外一种声明方法。如下 GetDIBits 函数的原型 Public Declare Function GetDIBits Lib gdi32 Alias GetDIBits(ByVal aHDC As Long,ByVal hBitmap As Long,ByVal nStartScan As Long,ByVal nNumScans As Long,lpBits As Any,lpBI As BITMAPINFO,ByVal wUsage A

14、s Long)As Long GetDIBits 函数的改型 Public Declare Function GetDIBitsLong Lib gdi32 Alias GetDIBits(ByVal aHDC As Long,ByVal hBitmap As Long,ByVal nStartScan As Long,ByVal nNumScans As Long,lpBits As Long,lpBI As BITMAPINFO,ByVal wUsage As Long)As Long 通过本课程前面所学到的知识,我们已经可以得知原型 GetDIBits 函数也好,改型 GetDIBits

15、Long 函数也好,实际将调用的都是 Alias 所指定的 GetDIBits 原函数。但你应当看到,两者的区别在于,我们在改型的函数中强制指定 lpBits 参数为 Long 形。这样就会使得函数调用中发生的错误机率减少到了最小。这种方法叫做安全类型声明。API 函数中经常看到的数据类型有Long,String,Byte,Any.(也就这些吧。)常常 数数 对于 API 常数来讲,没有什么太特别的学问。请看 VB 中的以下代码 Msg=MsgBox(您好,vbOKCancel)我们知道,vbOKCancel 这个常数的值等于 1。对上面的代码我们完全可以这样写,而不会影响代码的功能 Msg=

16、MsgBox(您好,1)但你大概不太愿意选择后一种,因为这会使得看懂代码费劲起来。这种方法也被 API 采取了。只是 API 常数必须在事情之前做好初始化声明 VB 本身是看不懂的。其内容仍然来自与API 文本游览器。具体形式如下等等 Public Const ABM_ACTIVATE=&H6 Public Const RIGHT_CTRL_PRESSED=&H4 Public Const RPC_E_SERVER_DIED=&H80010007 Private Const RPC_S_CALL_FAILED_DNE=1727&在常数的初始化中,有些程序使用 Global,如 Global C

17、onst ABM_ACTIVATE=&H6,但我认为 Public 完全可以代替它。过去我也用过 Global,但现在不大用了。一会儿用这个,一会儿用那个,各程序之间不能保持一致性了,起码看起来别扭。结 构 返回 结构是 C 和 C+语言中的说法。在 VB 中一般称为自定义数据类型。想必很多朋友都已经认识它。在 API 领域里,我更喜欢把它叫做结构,因为 API 各种结构类型根本不是我定义(自定义)的。在 VB 中,API 结构同样由 TYPE.END TYPE 语句来定义。如,在 API 中,点(Point)结构的定义方法如下:Public Type POINTAPI X As Long 点

18、在 X 坐标(横坐标)上的坐标值 Y As Long 点在 Y 坐标(纵坐标)上的坐标值 End Type 又如,API 中矩形(Rect)结构的定义如下 Public Type RECT Left As Long 矩形左上角的 X 坐标 Top As Long 矩形左上角的 Y 坐标 Right As Long 矩形右下角的 X 坐标 Bottom As Long 矩形右下角的 Y 坐标 End Type 这些内容同样可以从 API 文本游览器中拷贝过来。这些结构中的变量名可随意改动,而不会影响结构本身。也就是说,这些成员变量都是虚拟的。如,POINTAPI 结构可改为如下 Public T

19、ype POINTAPI MyX As Long 点在 X 坐标(横坐标)上的坐标值 MyY As Long 点在 Y 坐标(纵坐标)上的坐标值 End Type 不过,一般来讲,是没有这种必要的。结构本身是一种数据类型,因此,使用时必须声明具体变量为该结构型,才能在程序中真正使用到该结构。结构的声明方法和其他数据的声明方法一样,如,以下语句把变 MyPoint 声明为 POINTAPI 结构类型 MyPoint As POINTAPI 引用结构中的成员变量也十分简单,在结构名后面加上一个,然后紧接着写要引用的成员变量即可。这很象 VB 中的引用一个对象的某个属性。如,假如我们把上面已经声明的

20、MyPoint 结构中的 X 变量的值赋给变量 Temp&则代码如下 Temp&=MyPoint.X 但,特别注意的是,你千万不要认为上例中的 MyPoint 是一个值。它不是值,而是地址(指针)。值和地址是完全不同的概念。结构要求按引用传递给 WINDOWS 函数,即所有 API 函数中,结构都是按 ByRef 传递的(在 Declare 语句 中 ByRef 是默认型)。对于结构的传递,你不要试图采用 ByVal,你将一无所获。由于结构名实际上就是指向这个结构的指针(这个结构的首地址),所以,你也就传送特定的结构名就可以了(参见小结,我用红色字体来突出了这种传递方式)。由于结构传送的是指针

21、,所以函数将直接对结构进行读写操作。这种特性很适合于把函数执行的结果装载在结构之中。小 结 返回 以下的程序是为了总结本课中学到的内容而给出的。启动 VB,新建一个项目,添加一个命令按钮,并把下面的代码拷贝到代码段中,运行它。Private Declare Function GetCursorPos Lib user32(lpPoint As POINTAPI)As Long Private Type POINTAPI 定义点(Point)结构 X As Long 点在 X 坐标(横坐标)上的坐标值 Y As Long 点在 Y 坐标(纵坐标)上的坐标值 End Type Sub PrintC

22、ursorPos()Dim dl AS Long Dim MyPoint As POINTAPI dl&=GetCursorPos(MyPoint)调用函数,获取屏幕鼠标坐标 Debug.Print X=&Str(MyPoint.X)&and&Y=&Str(MyPoint.Y)End Sub Private Sub Command1_Click()PrintCursorPos End Sub 输出结果为(每次运行都可能得到不同的结果,这得由函数调用时鼠标指针在屏幕中所处的位置而决定)X=240 and Y=151 程序中,GetCursorPos 函数用来获取鼠标指针在屏幕上的位置。以上例子中

23、,你可以发现,以参数传递的 MyPpint 结构的内容在函数调用后发生了实质性变化。这是由于结构是按 ByRef 传递的原因。一些 API 函数集 返回 Windows API 1.控件与消息函数 AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 AnyPopup 判断屏幕上是否存在任何弹出式窗口 ArrangeIconicWindows 排列一个父窗口的最小化子窗口 AttachThreadInput 连接线程输入函数 BeginDeferWindowPos 启动构建一系列新窗口位置的过程 BringWindowToTop 将指定的窗口带至窗口列表顶部

24、 CascadeWindows 以层叠方式排列窗口 ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标 CloseWindow 最小化指定的窗口 CopyRect 矩形内容复制 DeferWindowPos 该函数为特定的窗口指定一个新窗口位置 DestroyWindow 清除指定的窗口以及它的所有子窗口 DrawAnimatedRects 描绘一系列动态矩形 EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入 EndDeferWindowPos 同时更新 Defer

25、WindowPos 调用时指定的所有窗口的位置及状态 EnumChildWindows 为指定的父窗口枚举子窗口 EnumThreadWindows 枚举与指定任务相关的窗口 EnumWindows 枚举窗口列表中的所有父窗口 EqualRect 判断两个矩形结构是否相同 FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口 FlashWindow 闪烁显示指定窗口 GetActiveWindow 获得活动窗口的句柄 GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由

26、它接收)GetClassInfo 取得 WNDCLASS 结构(或 WNDCLASSEX 结构)的一个副本,结构中包含了与指定类有关的信息 GetClassLong 取得窗口类的一个 Long 变量条目 GetClassName 为指定的窗口取得类名 GetClassWord 为窗口类取得一个整数变量 GetClientRect 返回指定窗口客户区矩形的大小 GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄 GetFocus 获得拥有输入焦点的窗口的句柄 GetForegroundWindow 获得前台窗口的句柄 GetLastActivePopup 获得在一个给定

27、父窗口中最近激活过的弹出式窗口的句柄 GetLastError 针对之前调用的 api 函数,用这个函数取得扩展错误信息 GetParent 判断指定窗口的父窗口 GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 GetWindowContextHelpId 取得与窗口关联在一起的帮助场景 ID GetWindowLong 从指定窗口的结构中取得信息 GetWindowPlacement 获得指定窗口的状态及位置信

28、息 GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容 GetWindowTextLength 调查窗口标题文字或控件内容的长短 GetWindowWord 获得指定窗口结构的信息 InflateRect 增大或减小一个矩形的大小 IntersectRect 这个函数在 lpDestRect 里载入一个矩形,它是 lpSrc1Rect 与 lpSrc2Rect 两个矩形的交集 InvalidateRect 屏蔽一个窗口客户区的全部或部分区域 IsChild

29、 判断一个窗口是否为另一窗口的子或隶属窗口 IsIconic 判断窗口是否已最小化 IsRectEmpty 判断一个矩形是否为空 IsWindow 判断一个窗口句柄是否有效 IsWindowEnabled 判断窗口是否处于活动状态 IsWindowUnicode 判断一个窗口是否为 Unicode 窗口。这意味着窗口为所有基于文本的消息都接收 Unicode 文字 IsWindowVisible 判断窗口是否可见 IsZoomed 判断窗口是否最大化 LockWindowUpdate 锁定指定窗口,禁止它更新 MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系

30、统 MoveWindow 改变指定窗口的位置和大小 OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来 OpenIcon 恢复一个最小化的程序,并将其激活 PtInRect 判断指定的点是否位于矩形内部 RedrawWindow 重画全部或部分窗口 ReleaseCapture 为当前的应用程序释放鼠标捕获 ScreenToClient 判断屏幕上一个指定点的客户区坐标 ScrollWindow 滚动窗口客户区的全部或一部分 ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分 SetActiveWindow 激活指定的窗口 SetCapture 将鼠标捕获设

31、置到指定的窗口 SetClassLong 为窗口类设置一个 Long 变量条目 SetClassWord 为窗口类设置一个条目 SetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口 SetForegroundWindow 将窗口设为系统的前台窗口 SetParent 指定一个窗口的新父 SetRect 设置指定矩形的内容 SetRectEmpty 将矩形设为一个空矩形 SetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID SetWindowLong 在窗口结构中为指定的窗口设置信息 SetWindowPlacement 设置窗口状态和位置信息

32、SetWindowPos 为窗口指定一个新位置和状态 SetWindowText 设置窗口的标题文字或控件的内容 SetWindowWord 在窗口结构中为指定的窗口设置信息 ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口 ShowWindow 控制窗口的可见性 ShowWindowAsync 与 ShowWindow 相似 SubtractRect 装载矩形 lprcDst,它是在矩形 lprcSrc1 中减去 lprcSrc2 得到的结果 TileWindows 以平铺顺序排列窗口 UnionRect 装载一个 lpDestRect 目标矩形,它是 lpSrc1R

33、ect 和 lpSrc2Rect 联合起来的结果 UpdateWindow 强制立即更新窗口 ValidateRect 校验窗口的全部或部分客户区 WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口 2.硬件与系统函数 ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 Beep 用于生成简单的声音 CharToOem 将一个字串从 ANSI 字符集转换到 OEM 字符集 ClipCursor 将指针限制到指定区域 ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的

34、地方 ID CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 DestroyCaret 清除(破坏)一个插入符 EnumCalendarInfo 枚举在指定“地方”环境中可用的日历信息 EnumDateFormats 列举指定的“当地”设置中可用的长、短日期格式 EnumSystemCodePages 枚举系统中已安装或支持的代码页 EnumSystemLocales 枚举系统已经安装或提供支持的“地方”设置 EnumTimeFormats 枚举一个指定的地方适用的时间格式 ExitWindowsEx 退出 windows,并用特定的选项重新启动

35、ExpandEnvironmentStrings 扩充环境字串 FreeEnvironmentStrings 翻译指定的环境字串块 GetACP 判断目前正在生效的 ANSI 代码页 GetAsyncKeyState 判断函数调用时指定虚拟键的状态 GetCaretBlinkTime 判断插入符光标的闪烁频率 GetCaretPos 判断插入符的当前位置 GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域 GetCommandLine 获得指向当前命令行缓冲区的一个指针 GetComputerName 取得这台计算机的名称 GetCPInfo 取得与指定代码页有关的

36、信息 GetCurrencyFormat 针对指定的“地方”设置,根据货币格式格式化一个数字 GetCursor 获取目前选择的鼠标指针的句柄 GetCursorPos 获取鼠标指针的当前位置 GetDateFormat 针对指定的“当地”格式,对一个系统日期进行格式化 GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄 GetEnvironmentVariable 取得一个环境变量的值 GetInputState 判断是否存在任何待决(等待处理)的鼠标或

37、键盘事件 GetKBCodePage 由 GetOEMCP 取代,两者功能完全相同 GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局 GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表 GetKeyboardLayoutName 取得当前活动键盘布局的名称 GetKeyboardState 取得键盘上每个虚拟键当前的状态 GetKeyboardType 了解与正在使用的键盘有关的信息 GetKeyNameText 在给出扫描码的前提下,判断键名 GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 Ge

38、tLastError 针对之前调用的 api 函数,用这个函数取得扩展错误信息 GetLocaleInfo 取得与指定“地方”有关的信息 GetLocalTime 取得本地日期和时间 GetNumberFormat 针对指定的“地方”,按特定的格式格式化一个数字 GetOEMCP 判断在 OEM 和 ANSI 字符集间转换的 windows 代码页 GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型 GetSysColor 判断指定 windows 显示对象的颜色 GetSystemDefaultLangID 取得系统的默认语言 ID GetSystemDefaul

39、tLCID 取得当前的默认系统“地方”GetSystemInfo 取得与底层硬件平台有关的信息 GetSystemMetrics 返回与 windows 环境有关的信息 GetSystemPowerStatus 获得与当前系统电源状态有关的信息 GetSystemTime 取得当前系统时间,这个时间采用的是“协同世界时间”(即 UTC,也叫做GMT)格式 GetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步 GetThreadLocale 取得当前线程的地方 ID GetTickCount 用于获取自 windows 启动以来经历的时间长度(毫秒)GetTi

40、meFormat 针对当前指定的“地方”,按特定的格式格式化一个系统时间 GetTimeZoneInformation 取得与系统时区设置有关的信息 GetUserDefaultLangID 为当前用户取得默认语言 ID GetUserDefaultLCID 取得当前用户的默认“地方”设置 GetUserName 取得当前用户的名字 GetVersion 判断当前运行的 Windows 和 DOS 版本 GetVersionEx 取得与平台和操作系统有关的版本信息 HideCaret 在指定的窗口隐藏插入符(光标)IsValidCodePage 判断一个代码页是否有效 IsValidLocal

41、e 判断地方标识符是否有效 keybd_event 这个函数模拟了键盘行动 LoadKeyboardLayout 载入一个键盘布局 MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换 MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的 mouse_event 模拟一次鼠标事件 OemKeyScan 判断 OEM 字符集中的一个 ASCII 字符的扫描码和 Shift 键状态 OemToChar 将 OEM 字符集的一个字串转换到 ANSI 字符集 SetCare

42、tBlinkTime 指定插入符(光标)的闪烁频率 SetCaretPos 指定插入符的位置 SetComputerName 设置新的计算机名 SetCursor 将指定的鼠标指针设为当前指针 SetCursorPos 设置指针的位置 SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 SetEnvironmentVariable 将一个环境变量设为指定的值 SetKeyboardState 设置每个虚拟键当前在键盘上的状态 SetLocaleInfo 改变用户“地方”设置信息 SetLocalTime 设置当前地方时间 SetSysColors 设

43、置指定窗口显示对象的颜色 SetSystemCursor 改变任何一个标准系统指针 SetSystemTime 设置当前系统时间 SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 SetThreadLocale 为当前线程设置地方 SetTimeZoneInformation 设置系统时区信息 ShowCaret 在指定的窗口里显示插入符(光标)ShowCursor 控制鼠标指针的可视性 SwapMouseButton 决定是否互换鼠标左右键的功能 SystemParametersInfo 获取和设置数量众多的 windows 系统参数

44、 SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间 ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成 ASCII 字符 ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成 Unicode 字符 UnloadKeyboardLayout 卸载指定的键盘布局 VkKeyScan 针对 Windows 字符集中一个 ASCII 字符,判断虚拟键码和 Shift 键的状态 完 3.菜单函数 AppendMenu 在指定的菜单里添加一个菜单项 CheckMenuItem 复选或撤消复选指定的菜单条目 CheckMenuRadioIte

45、m 指定一个菜单条目被复选成“单选”项目 CreateMenu 创建新菜单 CreatePopupMenu 创建一个空的弹出式菜单 DeleteMenu 删除指定的菜单条目 DestroyMenu 删除指定的菜单 DrawMenuBar 为指定的窗口重画菜单 EnableMenuItem 允许或禁止指定的菜单条目 GetMenu 取得窗口中一个菜单的句柄 GetMenuCheckMarkDimensions 返回一个菜单复选符的大小 GetMenuContextHelpId 取得一个菜单的帮助场景 ID GetMenuDefaultItem 判断菜单中的哪个条目是默认条目 GetMenuIte

46、mCount 返回菜单中条目(菜单项)的数量 GetMenuItemID 返回位于菜单中指定位置处的条目的菜单 ID GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 GetMenuState 取得与指定菜单条目状态有关的信息 GetMenuString 取得指定菜单条目的字串 GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置 GetSystemMenu 取得指定窗口的系统菜单的句柄 HiliteMenuItem 控制顶级菜单条目的加亮显示状态 InsertMenu 在菜单

47、的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动 InsertMenuItem 插入一个新菜单条目 IsMenu 判断指定的句柄是否为一个菜单的句柄 LoadMenu 从指定的模块或应用程序实例中载入一个菜单 LoadMenuIndirect 载入一个菜单 MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 ModifyMenu 改变菜单条目 RemoveMenu 删除指定的菜单条目 SetMenu 设置窗口菜单 SetMenuContextHelpId 设置一个菜单的帮助场景 ID SetMenuDefaultItem 将一个菜单条目设为默认条目 SetM

48、enuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号()SetMenuItemInfo 为一个菜单条目设置指定的信息 TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单 TrackPopupMenuEx 与 TrackPopupMenu 相似,只是它提供了额外的功能 完 以下是几个关于菜单函数的类型定义 MENUITEMINFO 这个结构包含了菜单条目的信息 TPMPARAMS 这个结构用于 TrackPopupMenuEx 函数以支持额外的功能 4.绘图函数 AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何

49、路径的创建工作 AngleArc 用一个连接弧画一条线 Arc 画一个圆弧 BeginPath 启动一个路径分支 CancelDC 取消另一个线程里的长时间绘图操作 Chord 画一个弦 CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 CloseFigure 描绘到一个路径时,关闭当前打开的图形 CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)CopyMetaFile 制作指定(标准)图元文件的一个副本 CreateBrushInd

50、irect 在一个 LOGBRUSH 数据结构的基础上创建一个刷子 CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)CreateEnhMetaFile 创建一个增强型的图元文件设备场景 CreateHatchBrush 创建带有阴影图案的一个刷子 CreateMetaFile 创建一个图元文件设备场景 CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子 CreatePen 用指定的样式、宽度和颜色创建一个画笔 CreatePenIndirect 根据指定的 LOGPEN 结构创建一个画笔 CreateSolidB

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com