|
|
原文:http://www.cnblogs.com/cltsq/articles/api.html- {6 J9 C& ]- `5 `! C: ]& i
1. API之网络函数
4 B9 d$ \4 H9 o, h1 KWNetAddConnection 创建同一个网络资源的永久性连接
, s# a! }. z) [' lWNetAddConnection2 创建同一个网络资源的连接
6 |# U7 S7 y1 _) o$ p6 bWNetAddConnection3 创建同一个网络资源的连接 % \; G/ R3 z& q8 r5 S% k
WNetCancelConnection 结束一个网络连接 3 |" `. ?1 z4 ?5 D$ l! O
WNetCancelConnection2 结束一个网络连接
7 Q: z% Z0 p1 B) S) FWNetCloseEnum 结束一次枚举操作 5 }+ R8 c3 _( ]6 j3 p
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
( h$ M# g9 Y8 P Y% _+ |WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
0 c& P, g0 n8 Q* e# E- }WNetEnumResource 枚举网络资源 0 z" R" O! i7 K
WNetGetConnection 获取本地或已连接的一个资源的网络名称
4 W9 M( u- X1 e! i# {) q& l3 O1 AWNetGetLastError 获取网络错误的扩展错误信息 2 D6 R9 H1 c3 @7 o/ y+ F% R7 @
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称
_# @) Q4 N. J3 ]/ AWNetGetUser 获取一个网络资源用以连接的名字
. J, G# U1 T3 F( L2 I) v. _WNetOpenEnum 启动对网络资源进行枚举的过程 8 @& w4 P, d1 c! ^6 M u0 z: k2 O2 ]
2. API之消息函数 F/ \7 o6 v* @9 ?: i6 @2 b7 v2 _& b
BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口 - D" @! l# [* Y
GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 $ Y/ z" `, s# k
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 7 ]# x; v* U( G5 Z' Q4 d3 i
PostMessage 将一条消息投递到指定窗口的消息队列 2 B( g5 }0 t4 B3 [: M
PostThreadMessage 将一条消息投递给应用程序
1 K2 u* @& s% h. a. S& SRegisterWindowMessage 获取分配给一个字串标识符的消息编号
) F* A. U' A# {9 C1 C; K6 `* PReplyMessage 答复一个消息
5 F8 l Y- }* F y( [SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口
# j4 H1 x1 e8 Q5 g k) @SendMessageCallback 将一条消息发给窗口 ; u/ u4 ^. H! y
SendMessageTimeout 向窗口发送一条消息
8 h2 x4 {( c9 ^" S' ~1 s1 tSendNotifyMessage 向窗口发送一条消息 7 I4 w9 D4 _' k" j& C; J! c
3. API之文件处理函数
& F; X) `4 k2 |CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等
9 V4 I8 w/ `' ~% V7 YCompareFileTime 对比两个文件的时间
* e" v; G3 ^9 a: `CopyFile 复制文件
, a$ ?$ W% ?/ bCreateDirectory 创建一个新目录
: q& o7 ]$ l: O: }7 N9 S( ~CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 i$ s- N% P, h5 e% R" w" m$ J
CreateFileMapping 创建一个新的文件映射对象
: D- g+ L" Y7 p( ~ p) M7 mDeleteFile 删除指定文件
6 Z6 j, G7 p% p& Z& @DeviceIoControl 对设备执行指定的操作
, A8 x% x3 |* }* q) ^" SDosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值 & {/ W! f0 g, g! k, F" S
FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值 ; `$ V6 U7 ]2 c# G0 R2 H" u3 _$ R
FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
: U, d: a# `9 R2 g1 ~, W9 EFileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构
( v. y9 p4 ?& x0 A+ I6 g% r8 q% cFindClose 关闭由FindFirstFile函数创建的一个搜索句柄 ! _4 ?8 A3 i9 q1 E1 A. W& o
FindFirstFile 根据文件名查找文件 1 c, b" {! Z1 E- G
FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 6 ~' K6 h& A7 J0 T' r; k
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区
9 v* `& j5 h$ [0 l3 D* hFlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘
: c- E& P- m2 q% i3 V9 ^+ ^9 f* `- l1 VGetBinaryType 判断文件是否可以执行
; R' p% b$ k" S- {! JGetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 ' \2 H$ b7 A3 Z' s7 M5 R: b/ q
GetCurrentDirectory 在一个缓冲区中装载当前目录
& Q9 R% e4 k& h( vDWORD GetCurrentDirectory(4 [$ s) i7 |+ `- M2 a' F4 m
DWORD nBufferLength, //缓冲区大小
6 {- z' x5 N( O1 F5 ~# D1 k: B LPSTR lpBuffer //缓冲区的首地址 C9 z6 v- D2 L4 `6 \0 z5 t0 p
);5 F4 ]/ j1 }( u+ ^' A7 {* V) b
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量
& m& z$ D" S1 iGetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息
z# g8 x, k8 Y, ]2 u0 c; h' fGetDriveType 判断一个磁盘驱动器的类型 ! `' t; g" p+ R, X. I
GetExpandedName 取得一个压缩文件的全名
/ V4 d' B# P- i: ?8 a) lGetFileAttributes 判断指定文件的属性 ; ~# J u4 `4 R9 E
GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制 8 \( O* j: x: d, ?( N( h7 ]
GetFileSize 判断文件长度
' K6 A) Y& }+ s4 lGetFileTime 取得指定文件的时间信息
; Z4 z. E# ~6 Z" W$ }GetFileType 在给出文件句柄的前提下,判断文件类型 ) v8 ~5 M) C; w
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息 5 U4 x: q8 b& K: m2 T; P
GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区
6 C. j, K* r6 q6 P& S3 H8 a0 W- lGetFullPathName 获取指定文件的完整路径名
, T5 [( n# H/ ~( h7 mGetLogicalDrives 判断系统中存在哪些逻辑驱动器字母
. j' O/ x: r2 [& W! ~GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 0 M+ `; X. T) T0 T9 L% [
GetOverlappedResult 判断一个重叠操作当前的状态
( q4 u$ c1 O/ q/ H0 R$ D% }0 bGetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 % Y" [- I6 F2 Y6 Z ~
GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 $ U. L- o O1 S% Y; V
GetPrivateProfileString 为初始化文件中指定的条目取得字串 7 j3 ]9 h; \, H3 x8 P% `; l
GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
5 }% l( `9 @ y7 o8 CGetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表 , n8 Q$ H3 l5 e) Y* U) M2 N* o; v
GetProfileString 为win.ini初始化文件中指定的条目取得字串 ) n l( K. b% d& P* p0 D4 K9 _
GetShortPathName 获取指定文件的短路径名
% T5 @2 G3 u) ZGetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名
2 j: B7 ~0 y" K% t* MGetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用
2 H/ A, j6 k8 c( `& UGetTempPath 获取为临时文件指定的路径
6 j: e* A% @; |, q# B3 z( s4 vGetVolumeInformation 获取与一个磁盘卷有关的信息 " H2 }4 |& m7 J, y/ M% z# C
GetWindowsDirectory 获取Windows目录的完整路径名
; Q' \0 ?* `9 U3 m& V+ fhread 参考lread
; F& ~' m( `+ ~, q9 S1 l' b: o5 Chwrite 参考lwrite函数
0 l3 ~' m( ?) J" ilclose 关闭指定的文件
* f; G# [5 r0 B/ w5 Mlcreat 创建一个文件 0 \3 O; L/ e( h4 p! m
llseek 设置文件中进行读写的当前位置 ' `) G( k L6 U; O+ ?$ T. m
LockFile 锁定文件的某一部分,使其不与其他应用程序共享 ' G9 Q0 z" Y: V6 E
LockFileEx 与LockFile相似,只是它提供了更多的功能 " `0 {/ y- b5 b+ ?: w
lopen 以二进制模式打开指定的文件
0 {( a6 Q, q; D1 [* Glread 将文件中的数据读入内存缓冲区 4 g7 O5 N v" Z
lwrite 将数据从内存缓冲区写入一个文件 . v/ V! ~( M' N8 w0 P$ r) p
LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
' R1 o# m! Y2 t g" h2 Z/ w$ ]LZCopy 复制一个文件
. O8 C( |7 f$ |LZInit 这个函数用于初始化内部缓冲区
% A, N/ n! C! P- ~4 A/ W0 R# E2 sLZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
6 I; e" H8 \# F% ^: [& x7 w' ELZRead 将数据从文件读入内存缓冲区 0 @) r8 T9 l! `: `
LZSeek 设置一个文件中进行读写的当前位置
# k3 i3 A6 {) a1 U; y8 [MapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间
- g- S( K# W# D& }. G% K; cMoveFile 移动文件 5 n9 i; @- p+ @, k
OpenFile 这个函数能执行大量不同的文件操作
, _: ?/ ]; C: B4 S# V9 sOpenFileMapping 打开一个现成的文件映射对象
0 @# d! {$ n! ^& EQueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况 6 N- Z( A3 h. s+ h+ _
ReadFile 从文件中读出数据 3 j9 D% [5 w- x6 h9 ?4 X
ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
# n* _ @) i$ Y: }8 z# r$ N2 ^RegCloseKey 关闭系统注册表中的一个项(或键) . q7 P6 z$ [& {3 x% f
RegConnectRegistry 访问远程系统的部分注册表 ! ?0 m- r3 V3 G
RegCreateKey 在指定的项下创建或打开一个项
7 L- U% L1 r# a6 Z9 wRegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数
% g6 S8 n6 P: f. DRegDeleteKey 删除现有项下方一个指定的子项 ! o$ l2 x' I5 `: F" a& z# Q# N
RegDeleteValue 删除指定项下方的一个值 % ?3 \0 m1 \9 p! t+ ^! k9 J0 {* W
RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx
# F: G" D2 U9 A/ t! X# tRegEnumKeyEx 枚举指定项下方的子项
4 G# ?. ^3 A% K1 z' XRegEnumValue 枚举指定项的值 4 P( g. _% K5 H' }& s
RegFlushKey 将对项和它的子项作出的改动实际写入磁盘 3 ?' f& q" z2 x
RegGetKeySecurity 获取与一个注册表项有关的安全信息 2 e; i8 a( n% Q( q. g8 O
RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息
$ F9 J% W: K! R7 vRegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制
) }; Y" }* `+ P/ dRegOpenKey 打开一个现有的注册表项
7 y9 H$ y4 g4 z) |0 P* eRegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数 2 D+ A. R7 y$ T
RegQueryInfoKey 获取与一个项有关的信息 " o7 x( J% d+ ~# n: e
RegQueryValue 取得指定项或子项的默认(未命名)值 & ^% C6 [& X. T( V" h$ ^
RegQueryValueEx 获取一个项的设置值
0 `' n+ F5 v5 E# t: cRegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
9 k- ?+ G# _. w" m; hRegRestoreKey 从一个磁盘文件恢复注册表信息 1 p) Z1 [8 J( o
RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件 1 Z& l7 _7 y7 @
RegSetKeySecurity 设置指定项的安全特性 7 l6 C/ u) x0 |' t$ I: K: v
RegSetValue 设置指定项或子项的默认值
) o! h( N# L& x" R1 Y0 b2 PRegSetValueEx 设置指定项的值 2 g' r: ?% l( n
RegUnLoadKey 卸载指定的项以及它的所有子项
0 e4 G7 I. I& }- }RemoveDirectory 删除指定目录 & h4 A( K" w; ~9 f
SearchPath 查找指定文件
3 G, _! q4 w( [/ H# B4 P/ v& eSetCurrentDirectory 设置当前目录
}. l1 E: S$ q1 \' OSetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾
0 @" W, ^2 J& S- s+ h1 mSetFileAttributes 设置文件属性
! D2 D! N' s% v( M- f3 ZSetFilePointer 在一个文件中设置当前的读写位置 - n: r. g: N0 y' o6 ^% A& o
SetFileTime 设置文件的创建、访问及上次修改时间 + ^0 a$ l8 ~" f2 \2 C! `) g
SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果 * G" O/ L* r5 [0 j: Z. y
SetVolumeLabel 设置一个磁盘的卷标(Label)
9 {, r$ t% G( F! @& R0 \7 v1 GSystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构 / E8 r; e/ h9 i3 C# b
UnlockFile 解除对一个文件的锁定 & W* b8 @5 h/ o& y1 B
UnlockFileEx 解除对一个文件的锁定 8 o$ P- m k, p; V+ O0 e+ x) x$ B
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
8 \* O; }" v* K% aVerFindFile 用这个函数决定一个文件应安装到哪里
( _$ h! d% S% q; \, GVerInstallFile 用这个函数安装一个文件 : y& W% |% X! I! Q ]) y
VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称 5 h! ^5 Y3 \( A* w7 N/ Q! f3 I8 W5 y
VerQueryValue 这个函数用于从版本资源中获取信息
# F, r$ p/ O+ n' u& I- X. lWriteFile 将数据写入一个文件 $ k @. K$ d5 y( _: [
WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调 7 I N/ ^7 Y, l. u9 a4 y
WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值 1 x w8 Z* [0 [2 z M8 f
WritePrivateProfileString 在初始化文件指定小节内设置一个字串
) v0 t% I* V* J0 Z, sWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值
1 A5 X3 H: \+ _2 u: a3 c3 M2 AWriteProfileString 在Win.ini初始化文件指定小节内设置一个字串
8 m9 n- [/ h9 w4. API之打印函数
$ f+ B& H$ g4 Q( f: eAbortDoc 取消一份文档的打印
* A$ D6 M& r% G. [AbortPrinter 删除与一台打印机关联在一起的缓冲文件 ' ~* n0 v5 {* X/ }
AddForm 为打印机的表单列表添加一个新表单
; ?8 ]; a0 |: G7 DAddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号 2 o8 ]* k% ~7 O4 {7 {2 [
AddMonitor 为系统添加一个打印机监视器 5 j8 _$ h" Y5 o! f ?
AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口 0 d% c) g% C, c2 g q4 t$ y2 f
AddPrinter 在系统中添加一台新打印机 8 k+ N8 Z5 ]" j/ B" I
AddPrinterConnection 连接指定的打印机 $ p; k: d3 Z9 ]
AddPrinterDriver 为指定的系统添加一个打印驱动程序 : G& ~2 s9 v. c, C( Q$ N! Q1 v2 F4 H; r
AddPrintProcessor 为指定的系统添加一个打印处理器
+ s, @+ r' C! M. [5 m) ]AddPrintProvidor 为系统添加一个打印供应商
& G8 g/ e4 C0 w7 x9 EAdvancedDocumentProperties 启动打印机文档设置对话框 & x( ~8 ^6 {, I" j
ClosePrinter 关闭一个打开的打印机对象 ( v' X1 B% }6 h' @ M3 V0 {
ConfigurePort 针对指定的端口,启动一个端口配置对话框 - a/ [. X9 T9 f3 a7 D$ M u T8 g E
ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
9 X) e/ n8 v$ P$ f) EDeleteForm 从打印机可用表单列表中删除一个表单 9 S" c; Z2 U$ l7 k4 Y' B' {* A
DeleteMonitor 删除指定的打印监视器 * O7 E* C/ E) Z" Y& y" E
DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口 , t4 c- T9 G% P0 [3 k! w# t3 \( }
DeletePrinter 将指定的打印机标志为从系统中删除 : Z/ T$ O* W3 p4 I7 \! O
DeletePrinterConnection 删除与指定打印机的连接
5 { e: ~3 l! @1 T6 L, Y' nDeletePrinterDriver 从系统删除一个打印机驱动程序 " U' z2 {3 z7 Y
DeletePrintProcessor 从指定系统删除一个打印处理器 ! E% ^( R. y8 f* Z" V
DeletePrintProvidor 从系统中删除一个打印供应商 ; v: q7 F* ]8 Y {2 F+ Q9 x- V
DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息
) v% J/ z# I- B1 G& e# FDocumentProperties 打印机配置控制函数 - u# ^* F9 t4 {* l8 |5 d
EndDocAPI 结束一个成功的打印作业 / I3 Z8 i! m( ~' f8 [
EndDocPrinter 在后台打印程序的级别指定一个文档的结束 0 ^/ B' ?+ h; n% e
EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页
/ S m/ \4 D5 c% r- t4 E3 xEndPagePrinter 指定一个页在打印作业中的结尾
$ e8 @0 o% o) ~EnumForms 枚举一台打印机可用的表单
8 Y' E' k+ s; ]! m3 V0 QEnumJobs 枚举打印队列中的作业 3 y, G3 b* E, O/ ~5 B, `, p" W7 o
EnumMonitors 枚举可用的打印监视器 & K* q2 Y7 a4 [4 M
EnumPorts 枚举一个系统可用的端口 - ]2 e2 B7 \+ o8 C. [! Q, N
EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序 # {7 ?* w0 t! x" Q
EnumPrinters 枚举系统中安装的打印机
W5 c: t7 z, A; {EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型 # b# K6 g4 ]% m! y
EnumPrintProcessors 枚举系统中可用的打印处理器 $ p ]5 S1 D5 h
Escape 设备控制函数 . M: N$ i' C7 A j1 ^/ J! @+ X
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象
( p5 O& {. h) ^* tFindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化 1 s0 ?6 D: h( d* D) ]. s
FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
; n" R/ I& v9 D. v, r2 zFreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 / n% {* _& ?9 l# N9 M/ r9 j$ {$ l7 g
GetForm 取得与指定表单有关的信息 " ]) Y* ?$ g7 Z
GetJob 获取与指定作业有关的信息 % e( K- a# e' v8 N, \4 t- ?0 u2 p
GetPrinter 取得与指定打印机有关的信息 @% b L! @, }/ u" o0 E9 M
GetPrinterData 为打印机设置注册表配置信息
3 C7 }- w$ i: f# jGetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息
& x) _) s+ \! f" S* e: T- ^GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么 ( Z8 v5 D0 m6 }# s6 }, C
GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录
( e& ~8 h8 r8 k8 sOpenPrinter 打开指定的打印机,并获取打印机的句柄
" r1 V8 ^* B: R/ B$ s1 v! y8 MPrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框 2 Z) |9 Z1 _0 O7 _
PrinterProperties 启动打印机属性对话框,以便对打印机进行配置 $ E, Q; A" a1 g l( D7 {
ReadPrinter 从打印机读入数据 . x0 N5 T; l& b, E
ResetDC 重设一个设备场景
& I5 m3 ^7 Z2 f1 s8 tResetPrinter 改变指定打印机的默认数据类型及文档设置 7 J+ X: A, a; a6 G- b
ScheduleJob 提交一个要打印的作业 / m# b/ Y( u; [
SetAbortProc 为Windows指定取消函数的地址 0 k# X) q: b! e+ Q: A
SetForm 为指定的表单设置信息
$ }* n- b9 T2 Y" U9 E2 I" W: dSetJob 对一个打印作业的状态进行控制
4 p7 \+ {/ F0 t, A4 bSetPrinter 对一台打印机的状态进行控制
. K$ P$ ], Y" ]- ~+ W7 GSetPrinterData 设置打印机的注册表配置信息 # k G9 |- Q [7 `3 P
StartDoc 开始一个打印作业
7 U5 x9 Q3 t' p2 H. BStartDocPrinter 在后台打印的级别启动一个新文档
; x; F+ N* P* j$ UStartPage 打印一个新页前要先调用这个函数 4 \# i. m, @: S
StartPagePrinter 在打印作业中指定一个新页的开始
1 e! m2 V0 z7 V: `# tWritePrinter 将发送目录中的数据写入打印机 ) C, E- P; o3 X) Z
5. API之文本和字体函数
. L1 x) o4 h) w# IAddFontResource 在Windows系统中添加一种字体资源
1 I+ ^: ^& z* M$ Z4 ^CreateFont 用指定的属性创建一种逻辑字体 ; `' [" C: Y3 k8 g
CreateFontIndirect 用指定的属性创建一种逻辑字体
) ~2 u7 i0 w: f% `4 cCreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 3 U' i ], V( r* H. d9 x- Z; W% D
DrawText 将文本描绘到指定的矩形中
# x' \ {0 K: ]# b. HDrawTextEx 与DrawText相似,只是加入了更多的功能 ( N9 N U! i+ k: f* v
EnumFontFamilies 列举指定设备可用的字体
+ R4 M6 L: @* U+ K) |EnumFontFamiliesEx 列举指定设备可用的字体 0 n, w" {& R/ g$ g
EnumFonts 列举指定设备可用的字体 ! @+ |' i& F. H, v- Q6 k+ s1 B
ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
7 Z3 e1 V# A7 e! z( @4 rGetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 & C$ Z( x8 ]+ P( q( Y- J9 p0 D
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小
; S6 W$ _$ p6 s. `+ e6 \, rGetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸
3 K0 ^$ J* I! D1 o7 n* R" YGetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串 . X6 Y2 p- L4 R. p- W* `
GetCharWidth 调查字体中一个或多个字符的宽度
, C' |. \1 o* q. o) x8 KGetFontData 接收一种可缩放字体文件的数据
% }+ ] L8 B/ c( p3 L/ X; uGetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
0 S+ [& I8 c! H6 x; g, g1 XGetGlyphOutline 取得TureType字体中构成一个字符的曲线信息
' O! I+ U7 H) r- j9 G; fGetKerningPairs 取得指定字体的字距信息 - A0 r/ W" {5 L6 n% Q( L& ~
GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息
" A( b% X+ W' t8 @( j* lGetRasterizerCaps 了解系统是否有能力支持可缩放的字体 ) U0 L1 X2 N" p: j; Q+ c
GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素
9 q# o6 r q0 E; T. f) H5 ^GetTextAlign 接收一个设备场景当前的文本对齐标志 ! x# t: Z& e* B8 H
GetTextCharacterExtra 判断额外字符间距的当前值
, R4 H9 u. Q) l8 s/ O8 BGetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
" \8 I Y) n4 ^/ D$ F2 YGetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息
+ P8 ^2 s1 d* `7 M y1 X4 YGetTextColor 判断当前字体颜色。通常也称为"前景色"
* r& ^6 K/ Q+ `7 hGetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
. e, ]9 I) k, p+ ?( g; k* X$ IGetTextExtentPoint 判断一个字串的大小(范围)
+ K& o. |8 i9 i* J' Y) f+ AGetTextFace 获取一种字体的字样名
& f! @$ V- A4 {$ N2 Y1 A& x6 \# IGetTextMetrics 获取与选入一种设备场景的物理字体有关的信息
; u8 H3 W+ A$ w2 l- YGrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 2 P, L T5 f# j* e( T/ G0 z6 h
PolyTextOut 描绘一系列字串 % z" c2 [6 z E
RemoveFontResource 从Windows系统中删除一种字体资源 6 `# H1 R$ k" V( H) r4 } w' w
SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体
/ u( Z' k' E* Y/ J5 DSetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置
+ g1 W% a- V. S1 L7 c t4 ?3 L. u+ GSetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 9 @4 G& Y6 o2 |+ d2 Q, j
SetTextColor 设置当前文本颜色。这种颜色也称为"前景色" - T& Z0 R+ O, V$ _( ^4 K" e m
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理 ( X6 J6 ^" T7 `5 y6 W6 W `3 E
TabbedTextOut 支持制表站的一个文本描绘函数
9 h( Q4 x& _! q/ e) p6 VTextOut 文本绘图函数 0 b0 Y3 J/ N+ m; `8 Q
WINGDIAPI BOOL WINAPI TextOut(. I( P# E! K4 @6 J+ m( {
HDC, //输出设备
: s& v" N- c" _. H& _! Oint, //输出的横坐标! m9 c2 u, t7 v4 i
int, //纵坐标
1 D1 e y2 k$ j/ ]7 XLPCSTR, //输出的文本str
1 b- X2 I# Z5 I3 @int); //文本的长度:lstrlen(str)1 T% [5 w5 r" J' W8 W: j% J
6. API之菜单函数 5 M4 J5 s P* M9 @( U; v
AppendMenu 在指定的菜单里添加一个菜单项
; q. g! X* Z1 vCheckMenuItem 复选或撤消复选指定的菜单条目
, a% H" t6 f4 yCheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 ; d6 R5 y$ E3 O+ k
CreateMenu 创建新菜单
+ T9 |: B2 H- BCreatePopupMenu 创建一个空的弹出式菜单
8 u4 h9 D' z) j+ O) Z- iDeleteMenu 删除指定的菜单条目 # a" ]9 p4 `6 M3 h
DestroyMenu 删除指定的菜单
- L/ o- R5 I8 L6 P$ {# i# rDrawMenuBar 为指定的窗口重画菜单 ( _" Q: M' L4 w' ^/ l+ A* R& R
EnableMenuItem 允许或禁止指定的菜单条目 & n3 S) e) v$ V" i
GetMenu 取得窗口中一个菜单的句柄 9 [% F F' N) L0 g6 C! t1 ~
GetMenuCheckMarkDimensions 返回一个菜单复选符的大小
% @/ S3 n4 b% v0 n qGetMenuContextHelpId 取得一个菜单的帮助场景ID ' B+ W# a# i. \: u3 {. f$ g
GetMenuDefaultItem 判断菜单中的哪个条目是默认条目
5 i( e+ V! y/ T( y1 [4 d3 T( i& ?GetMenuItemCount 返回菜单中条目(菜单项)的数量 5 B3 |0 M/ p1 E/ L4 w
GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID
# ?1 p, i; t* t. }: i$ FGetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 / n8 k$ ]- h3 s
GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 % c0 o; q! G$ [2 `+ o4 D
GetMenuState 取得与指定菜单条目状态有关的信息
9 X7 k; X0 u, p+ l( M. u- bGetMenuString 取得指定菜单条目的字串 ' ~% n2 E5 b; m. r+ h) C
GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置
% Y7 |+ ?; e/ v- IGetSystemMenu 取得指定窗口的系统菜单的句柄 8 C9 T" H2 n! a* U' C
HiliteMenuItem 控制顶级菜单条目的加亮显示状态
3 J4 u5 Y7 V( N" H" b$ [$ Y+ ~InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
0 b7 k0 Z% ]1 ?7 w) ~- JInsertMenuItem 插入一个新菜单条目 0 e$ g+ q1 M8 J, r" U& {
IsMenu 判断指定的句柄是否为一个菜单的句柄
$ }0 |$ a: m! h6 n- fLoadMenu 从指定的模块或应用程序实例中载入一个菜单 $ g; i8 l& t- [5 y* B- k( H
LoadMenuIndirect 载入一个菜单 & X) R! j- @8 |/ J3 d: q' _* c. \
MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点
4 e2 Z# @) V2 C( OModifyMenu 改变菜单条目
1 [* A' }$ Q/ `( H7 y& V7 ARemoveMenu 删除指定的菜单条目
6 {0 b9 l; z0 j0 c) {. eSetMenu 设置窗口菜单
8 |: n! L* Z/ m2 CSetMenuContextHelpId 设置一个菜单的帮助场景ID # Y+ ^% t) g3 _' o: G. r% _5 r& _
SetMenuDefaultItem 将一个菜单条目设为默认条目
Q. v" W+ ?6 j% NSetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)
' k: u8 [2 |* J) Z/ E- u9 LSetMenuItemInfo 为一个菜单条目设置指定的信息
1 j! h2 w. k: p) P" _6 P* [TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单
! F( R2 f# I9 ?) W% u+ e3 u) tTrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能
& `, z0 N( l' M: B$ Q7. API之位图、图标和光栅运算函数 + E" W: g/ t5 _4 k
BitBlt 将一幅位图从一个设备场景复制到另一个
L& N( b( h [: k: B) h5 `" W) j WINGDIAPI BOOL WINAPI BitBlt(1 ^& I0 ]3 @5 @- i* C7 Z
HDC, //目标HDC
# |5 I* R( a/ U! {/ q. G& eint, //X1* c1 P. j& H/ {* v$ o7 r0 P
int, //Y1
9 T5 p; W: } b+ a o4 _% T+ [int, //width; j! o5 \' p G7 ]* R/ J; z
int, //height. O& ~5 ]. ?# H; Y2 ]0 I
HDC, //源HDC* g7 I7 G! I [- Q9 q/ n
int, //右边的距离6 g g0 k& I2 t# O. v& Q
int, //??% ]! K5 u4 }1 e0 f
DWORD); //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
$ h) t" z0 T0 R( V2 E6 ~PATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS
4 x5 @4 u2 m; r- t E- t6 @CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
+ l l$ [. f/ H1 qCopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作
# s: {9 e: @ [. W2 M4 H, {CreateBitmap 按照规定的格式创建一幅与设备有关位图 + G* Y; k8 ~4 D
CreateBitmapIndirect 创建一幅与设备有关位图
. e' b( S; M' F; `) n w6 a& C h( WCreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容 + ~4 j/ N& Y: `' r+ _2 e: d6 V% d
CreateCursor 创建一个鼠标指针
t( Z4 h7 o& t! m5 QCreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图
2 C* s9 N; Z. j) m: a$ X1 ?8 cCreateDIBSection 创建一个DIBSection q9 l8 H' z6 H9 X
CreateIcon 创建一个图标
: n. d+ z: n( X. |CreateIconIndirect 创建一个图标 ( S- k$ s" O5 i- a
DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 ) E7 @- I- s7 W. i
DestroyIcon 清除图标 " z5 v: J. F. X. b$ s
DrawIcon 在指定的位置画一个图标
& E$ t+ M, m4 ~- \+ E8 D8 lDrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能 ; P" b7 H D. E, Z1 D
ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之 ) `" T' u& M8 A. v& F% x4 T
ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来
) y) J( K$ V; R- U% I& m7 [1 Z$ [& r/ eGetBitmapBits 将来自位图的二进制位复制到一个缓冲区 # _$ g( Y5 L- |) S+ {
GetBitmapDimensionEx 取得一幅位图的宽度和高度 ( X! G: D6 }8 N8 `* [: S
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息 ' _7 j3 H& |6 A W% c+ j7 Z: s( L7 T: K
GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里
& \' |6 d) D8 C2 AGetIconInfo 取得与图标有关的信息 4 e7 x4 B& \% _" X; i2 L
GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式
( U/ ^! k: F& ZLoadBitmap 从指定的模块或应用程序实例中载入一幅位图
% ]' v7 R4 ]) c' h4 c- k2 gLoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针
: N* j7 x$ I/ t3 T( pLoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 ) ^) ^' p) c7 C9 k3 _
LoadIcon 从指定的模块或应用程序实例中载入一个图标
6 k9 M$ i! `$ dLoadImage 载入一个位图、图标或指针 4 I+ W8 Y' P- p) Q _$ g& d
HANDLE LoadImageA(
$ B$ ^% v+ ]; n5 lHINSTANCE, //当前实例句柄:AfxGetInstanceHandle()1 C. A, B% s- E* x
LPCSTR, //资源所在的目录:c:\help.bmp
/ g' ~/ [& d. q2 _3 k( g+ p UINT, //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE
" N* _0 {' P& z int, //4 d8 _3 S: h3 L
int, //
3 s- Z$ e" [( |& ~ D, O; G' P/ DUINT); //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|
1 d7 h* a1 g' i. Z: P' UR_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|
, H a, L# a. s8 {6 |- ULR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED! j5 s% W# l$ n* i/ C, _; O2 q
MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理 # b( L U, u6 m$ ^. l* @: N# H/ ]
PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景 4 p4 E; {1 y) {* F, O3 f& `
PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理 + Z% ?4 e; Y g
SetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 + Y- V7 s+ H" T0 X
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 ; M: r- c W+ l
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息 ' m0 | l- P5 @4 ?' E. T
SetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里
; L* j' v$ R" Z" [$ H2 O+ W/ rSetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
a8 T1 f$ A' M% p5 l! Q: W( ySetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 & t$ |4 x, B1 }9 o( R$ l0 J# i
StretchBlt 将一幅位图从一个设备场景复制到另一个
& d+ J2 h4 |7 E* a& O) h$ r6 V. PStretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
9 B+ ^/ ^8 x3 K7 g2 R3 a6 B8. API之绘图函数 $ V" D7 K+ _& K) U
AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
& y/ ?% v* O0 i: q- `, zAngleArc 用一个连接弧画一条线
* @9 R) o$ C- i; ?; lArc 画一个圆弧 8 m- @4 M4 s5 o
BeginPath 启动一个路径分支
- F' p2 O0 p8 q& R- y- x& y9 ZCancelDC 取消另一个线程里的长时间绘图操作 # X3 s! Y: X; m. \
Chord 画一个弦
2 d5 z3 s* k9 h* E( r& {1 L8 uCloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 6 C9 @+ P1 y3 A2 j3 B) k( B# t
CloseFigure 描绘到一个路径时,关闭当前打开的图形 3 D1 F) w& @' y( Q) Z
CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 1 D4 A& u V1 u1 o# P! r) {* b
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
: A, O+ V% ~, [CopyMetaFile 制作指定(标准)图元文件的一个副本
! B0 ^1 b' X3 ]CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
" N- t( a* v# BCreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)
& m5 T9 G* w& {7 WCreateEnhMetaFile 创建一个增强型的图元文件设备场景 ; d' W' v0 L, `6 E4 V/ w
CreateHatchBrush 创建带有阴影图案的一个刷子 8 A9 H9 G# L2 ^3 B: G7 [9 z$ L D4 I
CreateMetaFile 创建一个图元文件设备场景 F& t$ H! c- u8 F* ~" q$ J: v
CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
|: u6 W5 }; ?( j/ PCreatePen 用指定的样式、宽度和颜色创建一个画笔
% L& q- d M6 X0 W7 vCreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
1 Z! v: F5 `! j! ?1 v( XCreateSolidBrush 用纯色创建一个刷子 7 p# F$ s2 L' y' Z: m$ _! o7 f ?
DeleteEnhMetaFile 删除指定的增强型图元文件 . v q+ I: E# \# x; N3 e. o9 s& c7 o
DeleteMetaFile 删除指定的图元文件
# ?: R: g4 ]. WWINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放$ B2 e, K8 O; s. H6 n) r P6 O+ f
DrawEdge 用指定的样式描绘一个矩形的边框
; K j( v3 D4 V B4 \4 HDrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序 4 b6 r; y2 k: w. p! k. G
DrawFocusRect 画一个焦点矩形
. s9 e8 Q2 v/ t' l# H0 k1 E, `% xDrawFrameControl 描绘一个标准控件 % y% X; Q+ Z0 p4 d) u
DrawState 为一幅图象或绘图操作应用各式各样的效果 $ J5 Q8 I# W/ L" t, b
Ellipse 描绘一个椭圆,由指定的矩形围绕 8 i& E4 G8 C- B# [# H
EndPath 停止定义一个路径 5 B$ N% \/ h2 h: g: J" S7 j
EnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录
- ~- a+ \2 k6 I: }) G# GEnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录 4 e7 o2 w/ [5 `, a' K
EnumObjects 枚举可随同指定设备场景使用的画笔和刷子 ' y0 P. _5 U9 q
ExtCreatePen 创建一个扩展画笔(装饰或几何)
; e2 D3 a4 z9 jExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
! J; s1 K- M0 v, lFillPath 关闭路径中任何打开的图形,并用当前刷子填充 & R ?$ r( @" r7 m5 N
FillRect 用指定的刷子填充一个矩形 * [% c+ P, o2 p, v' D" R# p7 ^
FlattenPath 将一个路径中的所有曲线都转换成线段 # s) _7 X; C1 L; r. T
FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
3 n' `6 V- Y! \9 k7 T4 KFrameRect 用指定的刷子围绕一个矩形画一个边框
5 {+ U7 L1 P& F0 WGdiComment 为指定的增强型图元文件设备场景添加一条注释信息 1 x0 S0 ]& p* C# d
GdiFlush 执行任何未决的绘图操作
9 Z6 k* S% S( X9 ~9 G/ S; aGdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 0 M# B7 \- O. T- ]- q
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列 1 o+ r! K; i+ G' C3 @
GetArcDirection 画圆弧的时候,判断当前采用的绘图方向
7 E5 T& l- D+ Q/ s1 c2 _GetBkColor 取得指定设备场景当前的背景颜色
+ B5 q3 Q4 _0 N) D1 J0 V: A- bGetBkMode 针对指定的设备场景,取得当前的背景填充模式
6 d* ?# a2 k% c6 q; h; ?) tGetBrushOrgEx 判断指定设备场景中当前选定刷子起点
1 n* u4 {% \: i3 z4 o, AGetCurrentObject 获得指定类型的当前选定对象 5 F/ O4 v! _1 @! D! m4 @9 x
GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
$ q4 t1 E+ s ^6 Z/ e. y. jGetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄 3 f2 g! T& _3 `3 k3 {/ P5 u
GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里 " s* R# C' r- ?0 l) V- ]! H
GetEnhMetaFileDescription 返回对一个增强型图元文件的说明 8 m% R# O- M* M0 ]9 D0 s
GetEnhMetaFileHeader 取得增强型图元文件的图元文件头
9 C6 h1 a& s5 b2 rGetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板
: g$ T( | J. t) p% ^7 [GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 , R& \6 A) x6 L, N$ J4 Z% I- U( j
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区 9 v6 i7 T. O( a$ n4 }! o: i
GetMiterLimit 取得设备场景的斜率限制(Miter)设置
, `+ F) G# `- `- _GetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
: z4 [" ~1 c" f' s4 K; kGetObjectAPI 取得对指定对象进行说明的一个结构 : l7 m5 Z4 V9 A. E7 k
GetObjectType 判断由指定句柄引用的GDI对象的类型
6 s1 E3 a2 ?" ^6 q$ U" cGetPath 取得对当前路径进行定义的一系列数据 - g E8 l8 \# ]9 y
GetPixel 在指定的设备场景中取得一个像素的RGB值
" p3 x' n- _" x# Z$ ^& U5 k) IGetPolyFillMode 针对指定的设备场景,获得多边形填充模式
0 F7 a0 v# m; K2 A. MGetROP2 针对指定的设备场景,取得当前的绘图模式 " _$ Z2 u! A2 g. Y$ W5 n
GetStockObject 取得一个固有对象(Stock) ' b# T: {+ q6 j! c7 _
GetSysColorBrush 为任何一种标准系统颜色取得一个刷子
# E4 a& J- G/ r7 E0 ZGetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件 2 i; L# ], Z, q! p F8 _
InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形
; k' H; [+ X! ~) G+ CLineDDA 枚举指定线段中的所有点
2 F* R' C' A7 ~/ M% v+ j% ?( J; aLineTo 用当前画笔画一条线,从当前位置连到一个指定的点 0 I: D2 I' k8 Q
MoveToEx 为指定的设备场景指定一个新的当前画笔位置
4 p& j( a/ S4 IPaintDesk 在指定的设备场景中描绘桌面墙纸图案
7 u+ x* Q {2 Y( t$ l& B# a( Z8 N. dPathToRegion 将当前选定的路径转换到一个区域里
) H2 N( k" d) b$ {! m1 H4 e( FPie 画一个饼图 . ]0 `: _7 ~: a5 L
PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件
, r1 G+ H6 y i8 O9 @! c- bPlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 * P+ p$ F& h. x* S
PlayMetaFile 在指定的设备场景中回放一个图元文件
+ r9 V: s& w: Y ]' ^PlayMetaFileRecord 回放来自图元文件的单条记录 $ a' w W7 k* q4 }
PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
+ F+ k, e- M) T$ r% uPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
$ h6 e! U6 T8 u% l) _6 Q* C IPolygon 描绘一个多边形
% Q7 l1 J6 u- R1 U0 |5 N$ s5 P3 yPolyline 用当前画笔描绘一系列线段 & b J1 [4 u0 `, X2 H
PolyPolygon 用当前选定画笔描绘两个或多个多边形 ( c5 L- J5 u- s
PolyPolyline 用当前选定画笔描绘两个或多个多边形 : d: w. y: R+ ~0 x
Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充
: h" I" W% e2 t' b& {4 e2 XRoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充 0 z; o3 g; ], \5 z- H- C
SelectClipPath 将设备场景当前的路径合并到剪切区域里 - w; \; \4 t+ I* B" |+ a
SelectObject 为当前设备场景选择图形对象
* a8 O$ x5 U0 d0 i8 R1 B/ U' } WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);
I: Y8 v; b% P8 q& nSetArcDirection 设置圆弧的描绘方向 2 N9 T5 P" I) O) z
SetBkColor 为指定的设备场景设置背景颜色
" G, g6 K0 [& p1 n i8 N; n+ oSetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
; f& d8 d& _- L0 c( a4 KSetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
+ h! `( @9 A0 I- USetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
6 o' A; {' r4 q) S5 ZSetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 $ W/ L, o" `9 q8 E+ I8 x9 Q
SetMiterLimit 设置设备场景当前的斜率限制 - l9 J5 T: A( B/ T% S- n8 J7 r
SetPixel 在指定的设备场景中设置一个像素的RGB值 i. }# ~% O: i3 ~
SetPixelV 在指定的设备场景中设置一个像素的RGB值 , d. L0 Z% J4 \; m) e
SetPolyFillMode 设置多边形的填充模式
" y! ~) E9 E) t* OSetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致 . A2 B" l& u5 P6 k9 }
SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件
; E5 D {$ X D+ W" _* x0 s& sStrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域
! l5 s$ u- y( Z) ]5 o! |StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭
+ d6 M: b4 {/ W5 fUnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数
( |. b" u: K u* DWidenPath 根据选定画笔的宽度,重新定义当前选定的路径
9 H& g9 x+ d6 z' v9. API之设备场景函数
2 Q$ S1 I" X4 `# p5 ?' XCombineRgn 将两个区域组合为一个新区域
; Z8 O* X7 W. ^7 r3 z* eCombineTransform 驱动世界转换。它相当于依顺序进行两次转换
2 s2 c. Z: H, ^5 D/ y+ o' vCreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景
# l0 f' b3 P) l0 \) G- v; \CreateDC 为专门设备创建设备场景
1 e2 L V3 @7 s+ O% K4 MCreateEllipticRgn 创建一个椭圆
8 i7 y% A' u- U8 YCreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域
0 ], ]7 ]' X2 u K7 Q& e$ _4 A- g4 qCreateIC 为专用设备创建一个信息场景 $ v5 R6 ]$ W: `! @9 L
CreatePolygonRgn 创建一个由一系列点围成的区域
0 ]/ Q, x; g4 H/ I$ p$ ~CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的 8 A9 D5 Z5 u7 G) a; X( A3 e! g0 w+ o
CreateRectRgn 创建一个矩形区域
O0 Z; I+ B! g9 w( BCreateRectRgnIndirect 创建一个矩形区域 8 Z6 c4 M5 N0 ] u
CreateRoundRectRgn 创建一个圆角矩形
: Y/ c% w, D2 P0 J6 FDeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源 . k, P5 w8 [3 k
DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标
/ Q8 D2 V" q. c. r0 G8 q" N% Q DEqualRgn 确定两个区域是否相等
, {- _7 C8 o$ PExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图
* \5 ^0 V1 q( g& T- AExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域 , S) h: p$ z$ A- I
ExtCreateRegion 根据世界转换修改区域 % X5 q, r4 K, N+ p2 K& v8 ]
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
6 @# K) R2 g1 \7 S) U2 jFillRgn 用指定刷子填充指定区域
2 \# b' ^- M1 c! i; G& UFrameRgn 用指定刷子围绕指定区域画一个外框
7 u! m( |. t9 e0 \GetBoundsRect 获取指定设备场景的边界矩形
# s8 y! m2 Z2 L3 s2 S. QGetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 ) o8 h2 _8 v. L( ?. X& h* @
GetClipRgn 获取设备场景当前剪裁区
) y2 i4 v. }/ rGetDC 获取指定窗口的设备场景 ! x/ @/ L8 a) @+ b5 V: s
GetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 ; D$ R* a1 s, y( Y9 |. v
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示) ! w3 n0 g- r" r( z0 X i( r
GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息 : x0 t$ V F7 _& ?
GetGraphicsMode 确定是否允许增强图形模式(世界转换) % G3 T4 S$ `4 I$ u# [! [( i' E' v7 h
GetMapMode 为特定设备场景调入映象模式 7 o' `( q' n( k0 @8 C4 f8 p
GetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
8 |- f# R5 f+ J z! UGetRgnBox 获取完全包含指定区域的最小矩形 8 F, I! o2 q b
GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新 9 d+ B6 @# d5 @. c/ b
GetViewportExtEx 获取设备场景视口(viewport)范围 # o9 m- {, N9 `2 G4 Y* d j
GetViewportOrgEx 获取设备场景视口起点 $ }1 v' I' j- \+ \% }; I, T
GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景 1 C9 y6 |7 U, n, i
GetWindowExtEx 获取指定设备场景的窗口范围 Z5 K0 F# Y: J3 K* d3 b
GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 7 Y3 p: J4 y$ d: X9 |2 u
GetWindowRgn 获取窗口区域 & c; d$ }, V0 E; @6 \
GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换
. r1 k% |/ A2 m- c3 ]3 oIntersectClipRect 为指定设备定义一个新的剪裁区 5 l+ R4 z0 |$ h8 X8 A/ {
InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画 8 K& k7 f; v l! o! m4 v
InvertRgn 通过颠倒每个像素值反转设备场景指定区域
! P, W* @2 d9 ~4 f. kLPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标
4 o! I+ k4 w9 d$ X$ m/ ?( lModifyWorldTransform 根据指定的模式修改世界转换 % M. A; T( c0 [. z
OffsetClipRgn 按指定量平移设备场景剪裁区 4 `4 F% J2 y. i T5 G* e4 S
OffsetRgn 按指定偏移量平移指定区域
0 w/ ]4 B A7 O1 J3 a/ }OffsetViewportOrgEx 平移设备场景视口区域
; B# f. `' r0 B* a% m/ M1 ZOffsetWindowOrgEx 平移指定设备场景窗口起点 ! N( x& t$ [) u% x
PaintRgn 用当前刷子背景色填充指定区域 , ?2 T( |3 T; H1 Q9 [
PtInRegion 确定点是否在指定区域内
& ^' A) S) [$ U P/ [9 V2 G; ^PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内) ; Z7 v. [# e ]$ V6 H6 S- S
RectInRegion 确定矩形是否有部分在指定区域内
# Q* K7 w2 n' U, W6 z: z( qRectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内)
! h+ a9 Y3 O$ r5 }* yReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景 5 v; c4 U# R& ^
RestoreDC 从设备场景堆栈恢复一个原先保存的设备场景
9 i1 U( e) R' O }SaveDC 将指定设备场景状态保存到Windows设备场景堆栈 3 v3 |7 u L3 @$ v3 O" N
ScaleViewportExtEx 缩放设备场景视口的范围 / S7 ]6 k* B* s6 g
ScaleWindowExtEx 缩放指定设备场景窗口范围
$ y; q' Q" ]- p& f6 S+ DScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形 6 k8 u$ n; R) ~8 j' v6 |6 v+ m c
SelectClipRgn 为指定设备场景选择新的剪裁区 9 s. I* s9 K# ?7 o6 {
SetBoundsRect 设置指定设备场景的边界矩形 8 c- `- B2 T5 Q; P1 _' C. w, W" F1 C
SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换)
2 s0 f0 V' }7 Z' w$ VSetMapMode 设置指定设备场景的映射模式 ) h. Q, P/ G! J; h( l* l
SetRectRgn 设置区域为指定的矩形
( D- h+ L+ k7 e1 D A- mSetViewportExtEx 设置设备场景视口范围
1 i- ?+ P d s- u. ZSetViewportOrgEx 设置设备场景视口起点 " h& \ L b+ c9 _# ^! v
SetWindowExtEx 设置指定设备场景窗口范围 b$ c8 V! i% z# h
SetWindowOrgEx 设置指定设备场景窗口起点
8 n* V( A3 X% T9 z# QSetWindowRgn 设置窗口区域 # R8 P$ f! p2 h
SetWorldTransform 设置世界转换
; y1 t. B7 A9 `0 j9 u( eValidateRgn 激活窗口中指定区域,把它从刷新区移走 ( p! R, r2 _0 [2 H' S1 j& h, c
WindowFromDC 取回与某一设备场景相关的窗口的句柄
7 ^, D" e" S) O7 p4 X' B10. API之硬件与系统函数
/ P+ Q" ~- G. hActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 ! u$ }) }$ A4 j1 d: ?1 s
Beep 用于生成简单的声音 $ s# ^& E" c( z% O9 x
CharToOem 将一个字串从ANSI字符集转换到OEM字符集
& s, c g' V _. B2 uClipCursor 将指针限制到指定区域
' O+ h. J! F8 c$ F0 F2 G& [% dConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
* l' k( ^% ~' c; T. z" VCreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 ( |' T! Z! W+ f- b# @
DestroyCaret 清除(破坏)一个插入符 - z; P$ P* a% C+ e
EnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息 ) T: f: q& N9 \
EnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
4 f2 b* [1 n( C t7 uEnumSystemCodePages 枚举系统中已安装或支持的代码页 2 j. }: ]$ K; I( ?" z
EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置
; l4 I% {* z& [ ]0 u: `$ u. {EnumTimeFormats 枚举一个指定的地方适用的时间格式
( |# `0 j* E9 c2 ]- U e+ _( `ExitWindowsEx 退出windows,并用特定的选项重新启动 0 |1 B* J6 f5 ]5 `1 @: c
WINUSERAPI BOOL WINAPI ExitWindowsEx(
7 q# `: w" }& c# h$ L+ J6 [UINT uFlags, //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG
8 O. b5 L8 }) f7 _" M. ] DWORD dwReserved); //0
$ }' Z0 W; {, LExpandEnvironmentStrings 扩充环境字串 6 K) C: A% d: \2 J- u$ k
FreeEnvironmentStrings 翻译指定的环境字串块
; m2 Q" ]/ v8 i: W. [7 ^7 F+ tGetACP 判断目前正在生效的ANSI代码页
5 \4 @) e' K, x3 wGetAsyncKeyState 判断函数调用时指定虚拟键的状态 # ]$ P& N8 q4 `# j3 K
GetCaretBlinkTime 判断插入符光标的闪烁频率 5 X- M8 ]5 u6 R1 b$ N
GetCaretPos 判断插入符的当前位置 2 B" A) c. H* X% O9 q- K- r
GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域 . Y$ s: [: j2 y% V5 e: U$ o: G
GetCommandLine 获得指向当前命令行缓冲区的一个指针 * }* e# b+ b" N( l- J& q
GetComputerName 取得这台计算机的名称 u& Y+ r! V7 D. q9 `1 Q2 ^
GetCPInfo 取得与指定代码页有关的信息 3 a# k; P/ s4 M* `$ S: U7 x+ T
GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字 ( L3 r/ q3 f- X5 i9 _, D1 I6 T: w
GetCursor 获取目前选择的鼠标指针的句柄
$ T* t n$ m8 R/ lGetCursorPos 获取鼠标指针的当前位置 + H8 e& a/ j; z
GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化 % {, |: X1 B8 p1 S. }5 Y
GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 1 ~; a& z) H( v5 r5 `9 q
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄
4 C; d4 Q: s# w2 x( j. @GetEnvironmentVariable 取得一个环境变量的值 ' j; G& d/ [9 p! S: n
GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件
8 a2 K% c# u) P8 cGetKBCodePage 由GetOEMCP取代,两者功能完全相同 8 Q7 j: X* a% f0 g2 h" T
GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
, I1 S3 o! _3 }GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
' j6 _; H s N# kGetKeyboardLayoutName 取得当前活动键盘布局的名称
8 U- g8 }5 [; s7 lGetKeyboardState 取得键盘上每个虚拟键当前的状态 + B# S/ C6 X# d& }2 R9 |9 E
GetKeyboardType 了解与正在使用的键盘有关的信息 6 i# S, u Q& v' T3 k- w+ q a
GetKeyNameText 在给出扫描码的前提下,判断键名 - i/ u; K9 L V+ G3 E
GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态
' A l# [) m1 D- w( }3 w6 v- iGetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
6 s5 }" M# U8 Y* J6 dGetLocaleInfo 取得与指定"地方"有关的信息 : {% L# D2 W4 u) g' y( I* S3 B
GetLocalTime 取得本地日期和时间
8 D' P+ z3 a3 a6 v8 K- jGetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字
Q% C: i+ s* v dGetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
E* B+ F; x8 i( u; N- \GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
! o4 o+ s% @" t# ?GetSysColor 判断指定windows显示对象的颜色 9 x" D: ~6 ^) u
GetSystemDefaultLangID 取得系统的默认语言ID
" h$ r* J' ]! H C7 |+ I& tGetSystemDefaultLCID 取得当前的默认系统"地方"
. S0 b7 o& Q9 i! }. H j+ o0 C6 XGetSystemInfo 取得与底层硬件平台有关的信息 & k1 O8 l3 s' A0 @& ~9 v
GetSystemMetrics 返回与windows环境有关的信息
" [2 D) |7 G! q: R* y$ l6 c. E% DGetSystemPowerStatus 获得与当前系统电源状态有关的信息
4 {2 ]* |+ y: l: F" D4 M& ]GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式
6 V4 R# s, g' a& D7 CGetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步 ( S, t- K2 X) V
GetThreadLocale 取得当前线程的地方ID 5 }1 R: \, F. Y: |. g/ F0 y( M
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒) 8 K7 {* t& C* r8 n; J1 j4 T3 O% o
GetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间
# i& P# {3 l WGetTimeZoneInformation 取得与系统时区设置有关的信息
) x( P6 L7 ]2 w0 T' `! UGetUserDefaultLangID 为当前用户取得默认语言ID & g) Z, @$ N5 I, O/ j: u" R
GetUserDefaultLCID 取得当前用户的默认"地方"设置 % @. c: _( F+ Q, _: o# i9 p
GetUserName 取得当前用户的名字 ( I" F3 e9 U+ P2 M! Z
GetVersion 判断当前运行的Windows和DOS版本 5 J; N( p) A% `. `/ C
GetVersionEx 取得与平台和操作系统有关的版本信息
8 y% z3 G7 l$ e( ?# `* jHideCaret 在指定的窗口隐藏插入符(光标) * J4 l- N) z# I3 o/ b7 u# X/ n. D+ a
IsValidCodePage 判断一个代码页是否有效
" H/ i# k' U1 b/ i, v1 \IsValidLocale 判断地方标识符是否有效 ' F, O3 c3 r" R0 j; Q1 n! V) D
keybd_event 这个函数模拟了键盘行动 , m/ X" x/ t' s" h
LoadKeyboardLayout 载入一个键盘布局 ) r$ N4 g' Q6 o1 q7 a5 R
MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换
% H/ K2 {# x" ~1 y* K4 R" eMapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换 , C' s! r' j+ G$ g" W; r+ h' c( n# J
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的
5 k p$ R# C4 q3 g- Omouse_event 模拟一次鼠标事件 ) i0 ]; {3 t' r
OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态 % s7 {" x: e- G1 O' U
OemToChar 将OEM字符集的一个字串转换到ANSI字符集 3 ?1 a0 W2 W9 p
SetCaretBlinkTime 指定插入符(光标)的闪烁频率 : Y9 k! s M" b* ?% U8 s: B3 L3 [
SetCaretPos 指定插入符的位置 9 x! ~; V, H' Q/ ?& n
SetComputerName 设置新的计算机名 0 L) i* p# y# C' f. t1 Z
SetCursor 将指定的鼠标指针设为当前指针 2 H" g' o8 _- n8 u$ I* N! K6 ^
SetCursorPos 设置指针的位置
: Q R/ f! x: o! vSetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 $ E' m7 n9 c. }( W3 J; U' G1 |
SetEnvironmentVariable 将一个环境变量设为指定的值 # s. J7 G2 ^0 d( C7 e) Y) G( B) x
SetKeyboardState 设置每个虚拟键当前在键盘上的状态 8 j6 l: v; k1 h5 Y" ^7 m
SetLocaleInfo 改变用户"地方"设置信息
2 ] E4 g: A1 m' _SetLocalTime 设置当前地方时间 4 }, A1 K( L# _
SetSysColors 设置指定窗口显示对象的颜色 ( o9 l5 k0 c6 W5 I
SetSystemCursor 改变任何一个标准系统指针
( T3 k( `5 N: F0 u, x4 y7 Z" GSetSystemTime 设置当前系统时间 . A/ u* i8 X# _3 O% ^3 d( d
SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步
, [ ^- x* N" M8 h5 NSetThreadLocale 为当前线程设置地方 3 U) ` Z) c( o: a( S$ {2 @2 i
SetTimeZoneInformation 设置系统时区信息
9 B& c/ S" z* r- XShowCaret 在指定的窗口里显示插入符(光标)
: G* L9 Q. O3 f2 M, u) `! Q# WShowCursor 控制鼠标指针的可视性
. B" k4 j8 o5 y8 {. T* C, m6 xSwapMouseButton 决定是否互换鼠标左右键的功能
1 @" ~; I6 p9 a8 T5 I8 }* USystemParametersInfo 获取和设置数量众多的windows系统参数
: X6 _# Y4 Y a- r' NSystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
$ a& h5 z- r; R6 {; `ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符 / A" l6 k6 |, T8 v* ]/ ~
ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
5 G0 ?5 Q' R* X* ~UnloadKeyboardLayout 卸载指定的键盘布局 ! A/ `9 Z4 C( a% t$ s
VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态
# n4 _" q) J! Q6 y/ n1 l9 B1 q% v11. API之进程和线程函数 : e$ U$ g+ K, N( F/ U* A& c
CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作
+ W9 J9 q4 ~; V% {) Y! tCallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用
+ Q* e) C1 Z; Q/ ~- T# E( D X$ CConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 / B% x# Q- y7 o s
CreateEvent 创建一个事件对象
+ W7 |2 E! I: }+ s1 F; OCreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人) * z1 X. s H. d8 C9 A% N! j
CreateMutex 创建一个互斥体(MUTEX)
% A% q. G0 y1 p1 H+ ]CreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用
3 F3 c+ b$ [! dCreatePipe 创建一个匿名管道 - _' A1 s' Z8 I+ y" N( d6 g1 _ b4 @% |
CreateProcess 创建一个新进程(比如执行一个程序)
! o; @: G5 `+ o& D4 c! a! XCreateSemaphore 创建一个新的信号机 ; K" a" O1 \/ B+ E" _$ s
CreateWaitableTimer 创建一个可等待的计时器对象
" |' V6 z# L. N2 {DisconnectNamedPipe 断开一个客户与一个命名管道的连接
, o$ A" f% }/ b4 m0 y3 r" R7 UDuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄 + r7 }; ~# I/ _, y; m
ExitProcess 中止一个进程
0 _4 y' V. T, n' TFindCloseChangeNotification 关闭一个改动通知对象 * G& h: }! c0 i( L& n" i
FindExecutable 查找与一个指定文件关联在一起的程序的文件名
; J1 \5 g7 N2 E5 R z1 P) v# CFindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化 6 P5 I/ O, F4 f
FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 8 m3 e, \$ M- I
FreeLibrary 释放指定的动态链接库 ; m# N; k/ n2 X1 s; L# W7 F
GetCurrentProcess 获取当前进程的一个伪句柄 % [( o: Q( T. R$ M: b! i' |% U
GetCurrentProcessId 获取当前进程一个唯一的标识符
7 H% _4 Z) v8 ^% |+ q5 \GetCurrentThread 获取当前线程的一个伪句柄
% |: g. n& [- r* [: A0 {, TGetCurrentThreadId 获取当前线程一个唯一的线程标识符
/ ?6 R2 R- T2 ^/ g0 L1 o; q2 tGetExitCodeProces 获取一个已中断进程的退出代码 / p0 B9 t/ G) e- x" d0 g( d
GetExitCodeThread 获取一个已中止线程的退出代码 ! V- a4 k9 H& p6 i6 _4 D, z
GetHandleInformation 获取与一个系统对象句柄有关的信息 % X: |. f) g$ S: y
GetMailslotInfo 获取与一个邮路有关的信息
9 N% w% v- Z4 `: i/ I4 w1 }GetModuleFileName 获取一个已装载模板的完整路径名称
& ]% w% I3 C. q5 d3 E/ pGetModuleHandle 获取一个应用程序或动态链接库的模块句柄 . a* \0 U1 H8 f4 w4 L8 I0 j
GetModuleHandleA(LPCSTR lpModuleName);
# F3 ]& [# m5 o# n8 m/ pGetPriorityClass 获取特定进程的优先级别 9 O4 y2 |, Z ^& V7 N- g1 D
GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 $ [* A) v9 c, d/ z3 ~% J; p
GetProcessTimes 获取与一个进程的经过时间有关的信息
% ~1 `. e8 r: _. p/ c8 EGetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存
: j+ f) x" C# [5 E' UGetSartupInfo 获取一个进程的启动信息
. \/ ]3 r( s/ b$ LGetThreadPriority 获取特定线程的优先级别
( B& ^) ]) ~$ r% j* _GetTheardTimes 获取与一个线程的经过时间有关的信息
2 }+ F1 V0 @6 a0 w3 [2 hGetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符 ; p6 u: Y3 c/ H$ b5 m, }5 I* u
LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
6 u3 v' a% V& i8 M$ B, ~LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间 & \0 d% H' ^9 t5 z
LoadModule 载入一个Windows应用程序,并在指定的环境中运行 , w! T4 x# E, F5 K! b. k9 X
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回 0 _: N" ?: T: h$ z4 X
SetPriorityClass 设置一个进程的优先级别
" ]* \, S, w1 l/ U/ t2 i: s( K0 pSetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
. D0 v% W% n7 L7 o" R+ }SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量 ; |" N7 v% J. Z4 e& P
SetThreadPriority 设定线程的优先级别
( r% W0 P! F7 `* q' h$ kShellExecute 查找与指定文件关联在一起的程序的文件名
, X; Z2 d% W, z9 p: K _- oTerminateProcess 结束一个进程
% k1 ~* b9 y7 S4 I) J9 PWinExec 运行指定的程序 0 w- X7 G4 v" y" s/ o! L7 ?6 ~9 W
12. API之控件与消息函数 + G1 @1 Z5 q, a3 W8 R: _* J
AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 . `8 z' \ a. V7 ~" v1 R! n" ^
AnyPopup 判断屏幕上是否存在任何弹出式窗口
0 Z; a6 b, l% B* F c# bArrangeIconicWindows 排列一个父窗口的最小化子窗口
6 p+ o, y6 o' I" F; TAttachThreadInput 连接线程输入函数 ) b. D: r/ K1 E) I& Q
BeginDeferWindowPos 启动构建一系列新窗口位置的过程 8 n& r/ q! r8 H& A% O! }9 _
BringWindowToTop 将指定的窗口带至窗口列表顶部
# @( D. c/ ^# n3 WCascadeWindows 以层叠方式排列窗口 5 d; ~, q6 ^9 j4 p1 r# U, A8 n- p
ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄
9 l; v- B& a" zClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标
3 q/ e* t6 H6 a6 q) c0 O8 hCloseWindow 最小化指定的窗口
3 f3 j L- A1 H2 A9 C& dCopyRect 矩形内容复制 ! S, L* b: U! b% |9 n. ]- |. `
DeferWindowPos 该函数为特定的窗口指定一个新窗口位置 3 T' Z) y/ ], e5 j: `& L6 Z2 v
DestroyWindow 清除指定的窗口以及它的所有子窗口 % |; z; ?6 ?# i w
DrawAnimatedRects 描绘一系列动态矩形
3 ~0 N) n% M F( W1 oEnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入 ; C( W$ ^! l+ R7 G6 d
EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
) N* }: M; N$ m* `! _6 I- g {7 NEnumChildWindows 为指定的父窗口枚举子窗口 - u8 H. p- Q7 B! r5 o& ?! I
EnumThreadWindows 枚举与指定任务相关的窗口 6 _8 s3 X" t$ N2 n. Q2 Q) Q
EnumWindows 枚举窗口列表中的所有父窗口 ! \; Y8 e1 v6 m
EqualRect 判断两个矩形结构是否相同
5 k' `6 \6 x) V. r* }9 H3 h* ZFindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 9 u4 Q* W1 X# ^* |. t5 M6 h6 [
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
) o G) S4 l+ E7 rFlashWindow 闪烁显示指定窗口 ; U f7 Z) f \) w/ G
GetActiveWindow 获得活动窗口的句柄 ; y( ?8 b e: G1 |2 F6 ^! X
GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收) ! o3 F {! H1 m+ q, o
GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息 W8 j; B% X7 V0 b( R. E4 Z$ A% @
GetClassLong 取得窗口类的一个Long变量条目
# v4 d1 H7 S$ y+ w# ?GetClassName 为指定的窗口取得类名
/ u M! w- H" t; j/ n: @% }GetClassWord 为窗口类取得一个整数变量
9 P% q, }- w4 ]5 Q: I( XGetClientRect 返回指定窗口客户区矩形的大小 $ f! u$ N/ @& v" P( A/ b
GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄 1 G) \; s& h' b8 N6 A3 h9 t
GetFocus 获得拥有输入焦点的窗口的句柄
4 d7 @6 @/ |1 N I- pGetForegroundWindow 获得前台窗口的句柄 " I, k5 Y% s" o: E
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄 3 n* l) H# Z0 C
GetParent 判断指定窗口的父窗口 ; G3 [3 D2 V+ |- k3 J4 \
GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄
7 E+ }" T* M- B) }* f8 D; xGetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分
% D0 T& j. l) U7 {0 F& u. HGetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系
* F8 v0 [; e6 EGetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID 4 L4 D7 L: N) c6 c! G& Z
GetWindowLong 从指定窗口的结构中取得信息 - o6 ~8 S. ?+ G* q
GetWindowPlacement 获得指定窗口的状态及位置信息 # N( {1 d! T. W+ p u* S* Z2 P
GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
: @: u7 |: z J8 B5 MGetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容
& s( B% s. C! TGetWindowTextLength 调查窗口标题文字或控件内容的长短
L, ]3 T0 j! l9 Y8 PGetWindowWord 获得指定窗口结构的信息 2 T6 T& [$ G; G; q8 H% u
InflateRect 增大或减小一个矩形的大小 3 N8 b9 ^6 Q% m8 H. Q. a/ o
IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集
9 P& k3 K8 o* T8 o2 ]( `8 @8 H$ mInvalidateRect 屏蔽一个窗口客户区的全部或部分区域
; c: l; s y, a7 W7 `% e+ H0 QIsChild 判断一个窗口是否为另一窗口的子或隶属窗口 ! }2 o8 a* x+ D7 c+ t; w6 r
IsIconic 判断窗口是否已最小化
5 x8 B+ ]; o9 V1 d, @0 c; GIsRectEmpty 判断一个矩形是否为空
" b! ~9 I1 R- F- D* ZIsWindow 判断一个窗口句柄是否有效 # D" K' |" C5 D0 \ c- G; j
IsWindowEnabled 判断窗口是否处于活动状态 ; |$ t5 P( R: @; e x1 Q& g+ B2 p1 n
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 * d" {& {! S" Q9 J- d2 c
IsWindowVisible 判断窗口是否可见
v3 u, q) R5 D7 V, b* u' ZIsZoomed 判断窗口是否最大化 c5 Z$ v$ ~' f0 C1 W0 |6 w
LockWindowUpdate 锁定指定窗口,禁止它更新
% D% r& G. @8 i3 s9 xMapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统 ( V8 P0 U7 L+ |4 F
MoveWindow 改变指定窗口的位置和大小 : U: H1 e& }' p2 D
OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来 7 t% q9 S* R( f* E( c( I4 Z
OpenIcon 恢复一个最小化的程序,并将其激活 4 }/ {- z$ k; Z+ N8 c
PtInRect 判断指定的点是否位于矩形内部
$ ~" c/ c4 o0 eRedrawWindow 重画全部或部分窗口 4 M( W7 d' l! \1 d+ _6 q
ReleaseCapture 为当前的应用程序释放鼠标捕获
# y+ ?8 J4 o4 G- R2 D+ cScreenToClient 判断屏幕上一个指定点的客户区坐标 * u$ y3 O; h3 x" @4 V$ S
ScrollWindow 滚动窗口客户区的全部或一部分 " V O8 F0 Y( q# o1 s) i2 j4 P6 T
ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分 / S7 }; ^8 V1 K- T8 M0 ]7 f
SetActiveWindow 激活指定的窗口
8 S5 _2 X( H/ F6 ?5 }SetCapture 将鼠标捕获设置到指定的窗口 & v3 i6 }, |0 [; D
SetClassLong 为窗口类设置一个Long变量条目
1 K+ C" r7 Z2 M0 o I. TSetClassWord 为窗口类设置一个条目
( Q1 k4 u$ ~. R# ZSetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口
! F' w$ B5 L; s" sSetForegroundWindow 将窗口设为系统的前台窗口 $ O$ L" g8 G9 e# m# v: ^
SetParent 指定一个窗口的新父 , a6 G$ j( f+ t' f; s
SetRect 设置指定矩形的内容 4 P# D+ k; `5 A* P! M7 w
SetRectEmpty 将矩形设为一个空矩形
) Q1 c) L5 |4 x! ]- m* C! KSetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID , D- u$ ?; n+ V! A! L5 d v, v
SetWindowLong 在窗口结构中为指定的窗口设置信息
9 S2 M4 z, Y& c' C0 a" M7 `; }SetWindowPlacement 设置窗口状态和位置信息 ; u! z0 u# u& D/ l
SetWindowPos 为窗口指定一个新位置和状态
/ ]6 V; E4 j& ^& ASetWindowText 设置窗口的标题文字或控件的内容
2 |, K$ z& P4 L5 T1 \" {2 i9 J$ ?! SSetWindowWord 在窗口结构中为指定的窗口设置信息
' j% S7 B+ f6 ^5 S% r0 y) m2 P6 CShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口
. _ F' i f7 h9 p; BShowWindow 控制窗口的可见性
" P1 T$ }% \2 R' B' S) P- GShowWindowAsync 与ShowWindow相似
5 S* P+ W4 R5 SSubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果
& Y! }: n5 c; _! }0 } T- U, YTileWindows 以平铺顺序排列窗口
: q- M3 t( S4 | HUnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果 " l% v( v( Z( C; ~, D: ~' _
UpdateWindow 强制立即更新窗口 : E( [$ h8 @' R }
ValidateRect 校验窗口的全部或部分客户区 ( B, R ` J8 I9 F: X# M( h
WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口
. q" ]% _$ m/ ?" B! a高级音频函数—参看《VC++ 编程指南.chm》11.6
" ~0 E' w7 \" V9 H H4 y Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。
& T; H9 G% Z& E" S" u BOOL MessageBeep(UINT uType);# q9 M4 Q3 H- h, B4 K5 M+ k8 \
该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。. o; r, y% L* d6 L
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。
) L# i+ j1 J- n. d! b5 n级别 % N' w+ O2 Q+ u$ p Q" x$ s
| 描述 ; j, d# c3 v$ p) q9 R: {
| -1 2 }* I( ^% N5 X+ w8 k- R* G
| 从机器的扬声器中发出蜂鸣声。 " W- t0 Z' ?* L# e: @5 j0 ]
| MB_ICONASTERISK
- ^" D9 m4 `2 K) P7 i | 播放由SystemAsterisk定义的声音。 0 t0 m; T) x# X3 [
| MB_ICONEXCLAMATION : G7 Z) |& m: L7 [% [
| 播放由SystemExclamation定义的声音。
3 W. X# S: h) {, B3 q o9 Q" e0 z W | MB_ICONHAND + ?! S) v! W5 U/ {
| 播放由SystemHand定义的声音。 0 w' ?8 y8 [$ v8 ~
| MB_ICONQUESTION
9 c% ~5 @' ?2 ?, R8 K+ Q; y | 播放由SystemQuestion定义的声音。 3 V) c, o$ n0 x$ A
| MB_OK
- H. Z. v8 _/ J0 }9 |+ h8 L2 s0 \ Q" v | 播放由SystemDefault定义的声音 / K+ l: p1 x' C4 B( C
| BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);
! j2 r/ K+ _+ y6 A o `: b& `参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。2 b1 D# L5 n# w! V! x# p
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。2 m( q& c; k/ X/ u# A$ Y5 V
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。2 I% z; \/ I9 y2 \3 Q, P
标志
/ ~0 ]' y0 @- l: T, o6 d | 含义 / Q) _/ G; A# l! f' A% Y0 `" p
| SND_APPLICATION , M+ m& g$ R9 p: [/ E1 ^& k4 R3 i
| 用应用程序指定的关联来播放声音。 $ Q) S" w7 U2 d1 Z3 J
| SND_ALIAS " q. ^, W9 i: P8 j# n( X' ?7 c
| pszSound参数指定了注册表或WIN.INI中的系统事件的别名。
% f& \6 F3 E% d6 \ | SND_ALIAS_ID
/ B$ W; U; k+ m* z, S; D | pszSound参数指定了预定义的声音标识符。
/ Q* r* O: a$ ^) H+ ^ | SND_ASYNC
0 Y6 c- X. s' X x | 用异步方式播放声音,PlaySound函数在开始播放后立即返回。 ; M t( m& e# a' w" h/ _
| SND_FILENAME
! a( }8 o8 _0 B* J$ E, c7 P | pszSound参数指定了WAVE文件名。
9 H r+ y/ C' B9 ]1 q | SND_LOOP
) a/ v4 P- P1 G) Q5 L3 N' d | 重复播放声音,必须与SND_ASYNC标志一块使用。 1 }9 d' C u. Y4 @8 w
| SND_MEMORY
, T- a9 P5 Q8 V6 h. R | 播放载入到内存中的声音,此时pszSound是指向声音数据的指针。
/ O6 ^3 n1 e2 ^ w | SND_NODEFAULT
9 r. w- {; f$ H: X6 s1 W | 不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。 J# X) p( f) N8 l8 K; T- I1 G
| SND_NOSTOP
" O1 }6 T5 v, e! I | PlaySound不打断原来的声音播出并立即返回FALSE。
$ i8 H0 b; I9 Y! B | SND_NOWAIT
( ^- l* L+ P" T, S: t; v | 如果驱动程序正忙则函数就不播放声音并立即返回。 & j9 `. p% I& l" \; y
| SND_PURGE
" R6 n9 ?+ ~5 w9 Q9 Q* }. a | 停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。
. R1 H; @5 a( N* w5 |0 y | SND_RESOURCE
9 H X$ |) \" x | pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
$ m: m; l$ k2 W/ V) R% t' q0 @! D | SND_SYNC % }. X Q, W) t! T$ Y+ c" \
| 同步播放声音,在播放完后PlaySound函数才返回。
3 w" a5 h) ? w$ K8 `0 x | BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);3 x0 m/ c% V8 R) ^' O7 |) A+ C
函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。2 X6 U: F% t* F1 l0 H6 o
MCI播放- o! T- M# w8 H( b
所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
# x6 e, m. @8 f7 V# IMCIERROR mciSendString(
5 [9 C) l0 j# z6 {8 Q1 O# uLPCTSTR lpszCommand, //MCI命令字符串
* S: Z0 v( @7 T& N2 b- O- HLPTSTR lpszReturnString, //存放反馈信息的缓冲区
& ]; Y; P `4 A; H* ~( ^4 v: UUINT cchReturn, //缓冲区的长度
2 Z6 `( R# I3 y: S$ rHANDLE hwndCallback //回调窗口的句柄,一般为NULL
- v9 L" a. w1 f; p: j); //若成功则返回0,否则返回错误码。
% q: ]+ ~, n/ M该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:
2 ?9 I6 s4 n% W0 {# nBOOL mciGetErrorString(
3 p: @( b- y/ b/ }" b @8 ADWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码
# l# g/ {- {$ M4 P1 GLPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区) c8 E7 q/ L4 u$ j8 M, i. U/ U
UINT cchErrorText //缓冲区的长度! D, u- \: X0 G8 A2 U. S
);
: J4 {0 m) u) ]+ s6 i! u" _ |
|