|
|
原文:http://www.cnblogs.com/cltsq/articles/api.html
0 d# E9 Q4 F- u$ h' B" s1. API之网络函数 ) X( \( b$ i( m. p
WNetAddConnection 创建同一个网络资源的永久性连接 ( E6 I1 H" k" E1 S# m4 S1 X
WNetAddConnection2 创建同一个网络资源的连接
4 E( U2 }$ s0 j2 tWNetAddConnection3 创建同一个网络资源的连接 2 }% a8 K; D$ s9 B: n3 r! O+ I/ V2 v+ |
WNetCancelConnection 结束一个网络连接
/ Y* k3 b' m9 \$ I0 ZWNetCancelConnection2 结束一个网络连接
0 _" D6 _/ h5 V9 {: z vWNetCloseEnum 结束一次枚举操作 . U! _; A" @: E2 Y# N" m1 c& f
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
4 `" a$ O8 X; h9 P' ~% g) IWNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
, ?; z' t# e3 h, b9 t$ `* oWNetEnumResource 枚举网络资源 2 Y( p3 H: w1 U1 f7 G; h4 [! M d
WNetGetConnection 获取本地或已连接的一个资源的网络名称
7 q3 `) m- i. Z+ _* C- x3 l/ R- gWNetGetLastError 获取网络错误的扩展错误信息
" `: a6 i* h6 V! M' S7 i3 h& \WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 6 u2 j, V) w6 C9 \1 n) H
WNetGetUser 获取一个网络资源用以连接的名字 / D6 E0 I$ e8 ~+ O6 F
WNetOpenEnum 启动对网络资源进行枚举的过程
( f6 \* r1 t( ?% i; ^3 r2. API之消息函数 1 F7 H6 X5 s2 H% m1 a6 c% U% i' i, I" h
BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口 0 X' X! I u3 c* E, z3 I
GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置
' n/ _% P" R: kGetMessageTime 取得消息队列中上一条消息处理完毕时的时间
5 I" h4 z/ ?: Z% H. I- C$ ^PostMessage 将一条消息投递到指定窗口的消息队列
5 ^9 l: Q' }( z1 S- [! B9 vPostThreadMessage 将一条消息投递给应用程序 / l" d, H$ B4 x3 Z7 U% t
RegisterWindowMessage 获取分配给一个字串标识符的消息编号 . C) z( d# n e! w4 m
ReplyMessage 答复一个消息 # K: u' L8 ^& k) x& B8 w: C! Z
SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口
$ A/ r$ f$ N0 X D9 LSendMessageCallback 将一条消息发给窗口
: ^) G6 K2 b2 C: [4 `SendMessageTimeout 向窗口发送一条消息 ' g) ^/ G/ G4 q7 v! h
SendNotifyMessage 向窗口发送一条消息 # i0 | t/ E& I8 Q9 t
3. API之文件处理函数 4 X5 v- D6 U7 x3 V
CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 % m$ F i, m0 c0 @+ q8 R L
CompareFileTime 对比两个文件的时间
: j0 n0 @- f eCopyFile 复制文件
6 S9 ^% F9 U' v! U7 mCreateDirectory 创建一个新目录
L) D& z0 J- o) }6 }1 A' W" m9 wCreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台
' ]2 X, ^ T- ?0 P$ U4 d% JCreateFileMapping 创建一个新的文件映射对象
- P5 E& p# I' K. O2 j1 EDeleteFile 删除指定文件
- V$ W* c4 V( c9 I5 f* q9 mDeviceIoControl 对设备执行指定的操作
- g% k `% b4 o3 j4 tDosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值 ' @2 ?! ^; Q* s) O
FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值 8 t$ s5 `2 o, C- s3 u3 m9 S4 F
FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间 # W# L: G, O. l6 i2 J* Q$ t6 z' W
FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构 3 t, f9 r" h# x$ z, w% v7 f7 h
FindClose 关闭由FindFirstFile函数创建的一个搜索句柄 ; B0 D9 Q% n: R8 A' ~
FindFirstFile 根据文件名查找文件
% q7 \& Z% k: [0 A% iFindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件
1 y! D# r' v6 t' C5 X6 J, m! ?2 cFlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 * c$ p, r' M+ I+ J
FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 9 u9 D# V. ~- M7 x7 O; ~
GetBinaryType 判断文件是否可以执行
) Z% o9 W) M! N4 ZGetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数
; X, c& G f' }! D! y: _GetCurrentDirectory 在一个缓冲区中装载当前目录 H% ^* ^" A% m. h- F
DWORD GetCurrentDirectory(6 }7 P- q: W% X% V: z! [0 x
DWORD nBufferLength, //缓冲区大小) `# u8 b' @: M$ P
LPSTR lpBuffer //缓冲区的首地址$ n+ w9 i$ b6 ^/ U0 v
);
$ d9 g$ y) l9 H- zGetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量
5 _0 v. R0 R, e# E- S& z, BGetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息
3 @ D' S: a! M; L8 U3 n4 ]* W7 TGetDriveType 判断一个磁盘驱动器的类型 1 t2 X* a6 h/ Y% v' T8 Q& n
GetExpandedName 取得一个压缩文件的全名
* a5 ~4 y7 a. ~GetFileAttributes 判断指定文件的属性
; u2 t9 X, P2 _2 y2 |GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制
: i8 i) o7 J/ E- M) `0 q1 lGetFileSize 判断文件长度
R& C* M% r- e/ z, t/ hGetFileTime 取得指定文件的时间信息 i; J$ g- n+ ]2 O$ Y
GetFileType 在给出文件句柄的前提下,判断文件类型 - I8 k' _2 n$ D+ c
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息
* w$ j- D) A% X' S bGetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区 ' r& l* T4 S1 F% u9 \
GetFullPathName 获取指定文件的完整路径名 3 A! ^ y8 i8 ^" s
GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母 6 b) ?! q6 }5 m7 M
GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径
0 T) G) G8 Y5 Q+ f p" QGetOverlappedResult 判断一个重叠操作当前的状态 & R# {* I7 Q$ z: ~4 Q' W
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 + k. y) l) @" U4 ?2 [1 w
GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 , G4 D# V0 n* s
GetPrivateProfileString 为初始化文件中指定的条目取得字串 ' U: I; _' v, k& k7 m
GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
( O. C7 R0 E# y! Y; n2 aGetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表 ' y2 x: i) J& S! g% m. c8 ]
GetProfileString 为win.ini初始化文件中指定的条目取得字串 3 ~; d1 I, r6 y
GetShortPathName 获取指定文件的短路径名
; D* B/ X! M1 J* f1 c. F( m# _GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 , E5 Q2 j; D0 t2 G6 G) B
GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 ) U/ M6 H. a \1 v
GetTempPath 获取为临时文件指定的路径
2 \ \/ r5 q7 m0 p6 R! u5 yGetVolumeInformation 获取与一个磁盘卷有关的信息 + _( U9 l: s8 n% w% }% }+ R
GetWindowsDirectory 获取Windows目录的完整路径名
8 n: i0 Z3 \3 v* _5 `$ Jhread 参考lread + [' q b1 l4 `
hwrite 参考lwrite函数
; T, @2 X' P* S: R9 T! u2 r3 O% s" ?lclose 关闭指定的文件
& |: {7 U# B4 _% m) c! nlcreat 创建一个文件
; s( W& A# M( O% F- Sllseek 设置文件中进行读写的当前位置
/ E1 i% n5 w5 V+ Z- [/ ULockFile 锁定文件的某一部分,使其不与其他应用程序共享
}& H2 C: Y6 }" s* k& ELockFileEx 与LockFile相似,只是它提供了更多的功能
" o4 k+ V# r+ T+ q& h* E; ~7 Vlopen 以二进制模式打开指定的文件
: h/ V' w( L5 p. f6 R, O) tlread 将文件中的数据读入内存缓冲区
+ G7 o- V0 P- d' u# c/ W0 dlwrite 将数据从内存缓冲区写入一个文件 9 G* E' a- J# }' o5 Y" i% \
LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件 7 U6 d: \4 q6 }
LZCopy 复制一个文件
( {4 A! T2 S- M' G d& B5 ALZInit 这个函数用于初始化内部缓冲区
" S' j; Z) r& ^4 P- o1 ?/ |LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件 * O2 d8 R' q# Y7 a' [7 T
LZRead 将数据从文件读入内存缓冲区
$ t- @; `# {5 J& O4 a( H/ ZLZSeek 设置一个文件中进行读写的当前位置 2 V* i' Z* I) q P( s2 D7 x9 B" t4 y5 Y
MapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间 4 v& e& f& U; U" l$ y, b. S
MoveFile 移动文件 / M8 M# {9 I& B6 d5 M
OpenFile 这个函数能执行大量不同的文件操作 # l' a" y4 _ c9 J5 J5 X" n
OpenFileMapping 打开一个现成的文件映射对象 9 ]2 v: y0 O7 B9 Z$ P) \5 |
QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况 4 d; \/ q, s4 C5 J n7 L
ReadFile 从文件中读出数据
@9 e! l9 P' U" _5 p; K5 ?$ OReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
X `1 W0 ]& ]0 ~ i9 e: JRegCloseKey 关闭系统注册表中的一个项(或键)
4 Z/ I& @0 `& M% ]: d2 G$ F( v/ ^RegConnectRegistry 访问远程系统的部分注册表 7 K* G0 a" G% ?. m4 F
RegCreateKey 在指定的项下创建或打开一个项
9 ?7 w5 w) B5 Z* ?5 {5 { Z2 U0 V$ C$ pRegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数
; r! F: r/ P0 S( e# lRegDeleteKey 删除现有项下方一个指定的子项
8 g( `! y" j% X: L, \RegDeleteValue 删除指定项下方的一个值 ! n$ T/ ~) A }# h/ T
RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx
9 S+ f- }! R3 o! [7 ?RegEnumKeyEx 枚举指定项下方的子项 7 b, _' t7 @. r2 ^, }& R
RegEnumValue 枚举指定项的值 4 x6 q* z# ?1 H& y& R" x
RegFlushKey 将对项和它的子项作出的改动实际写入磁盘
: q! I: d- x2 ?. h8 C9 kRegGetKeySecurity 获取与一个注册表项有关的安全信息
9 K7 n8 ] [/ s2 o- jRegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息 # T2 W2 @5 o _$ P* ~6 k# k+ S7 L
RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制
: g+ g. O7 u; {' ZRegOpenKey 打开一个现有的注册表项
9 O4 J+ y5 }2 ~ y7 P' TRegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数 3 h' z/ N% X+ b2 I
RegQueryInfoKey 获取与一个项有关的信息 - T' v2 t0 y$ G7 V7 a; u
RegQueryValue 取得指定项或子项的默认(未命名)值
1 _& P! I" [; l3 aRegQueryValueEx 获取一个项的设置值
5 ?* \$ |* d2 } uRegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息 / P/ ]: I7 ?4 D* [ A! n; i
RegRestoreKey 从一个磁盘文件恢复注册表信息 $ ?& n" o2 {6 ]
RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件 " V! N& ?; R/ C6 I; ~
RegSetKeySecurity 设置指定项的安全特性 ; J& ^9 i; o6 p& M
RegSetValue 设置指定项或子项的默认值 4 V/ ^" I! r: `7 H0 T
RegSetValueEx 设置指定项的值
* s% `+ ~9 E9 Z8 Y8 E( y% D- ~RegUnLoadKey 卸载指定的项以及它的所有子项 9 r% A0 g7 n! ?! u3 Y9 X
RemoveDirectory 删除指定目录 , {1 p" [) O4 e% a {8 ]
SearchPath 查找指定文件 , a5 N7 z* R! P+ b
SetCurrentDirectory 设置当前目录 & L- p1 y$ [; X( k8 O$ U8 B
SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾 # @7 {- V9 o& V+ S7 \3 n
SetFileAttributes 设置文件属性 2 T* O `' m2 n, D' m5 ~
SetFilePointer 在一个文件中设置当前的读写位置 3 E- p# ?- e9 S) _3 Z
SetFileTime 设置文件的创建、访问及上次修改时间 7 v; S# t9 A- h) v. \; e
SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果
5 V" s; B6 j3 Q7 DSetVolumeLabel 设置一个磁盘的卷标(Label)
5 w7 i; f' y9 X6 Y* OSystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构
6 N) Y `. v. R0 ~# I* PUnlockFile 解除对一个文件的锁定 0 A( q+ C( E; A3 E7 w
UnlockFileEx 解除对一个文件的锁定 0 H* g6 W6 f, \* O0 N/ O
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
/ k# V" u/ V7 N% R/ _! HVerFindFile 用这个函数决定一个文件应安装到哪里
/ V% I$ F1 f( O S3 g( WVerInstallFile 用这个函数安装一个文件
) S ^) ^% s+ uVerLanguageName 这个函数能根据16位语言代码获取一种语言的名称 / a7 Y" w& U5 {, |! O8 q9 C V& e
VerQueryValue 这个函数用于从版本资源中获取信息
& t6 R3 y; `7 [. R, f/ G$ Z6 s4 Q7 T3 XWriteFile 将数据写入一个文件 0 ^0 @5 O# [; g+ B7 T5 h
WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调
! F+ U- i& L' k" e" lWritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值 0 N% l2 r/ F3 t- q
WritePrivateProfileString 在初始化文件指定小节内设置一个字串
' Q+ `+ J8 o7 F/ C2 f3 C, zWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值
, Z* `9 n; ?) s9 ~; n3 \( VWriteProfileString 在Win.ini初始化文件指定小节内设置一个字串 " t4 p( t% E) ~. ], d7 ^5 J
4. API之打印函数
: `" G) Y- H/ W* dAbortDoc 取消一份文档的打印 1 T7 f: z! n/ v$ Z9 I
AbortPrinter 删除与一台打印机关联在一起的缓冲文件 7 l& q# q% ]& V8 D
AddForm 为打印机的表单列表添加一个新表单
3 F! \$ u: m& VAddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
* M Y& a: i* m6 R% _AddMonitor 为系统添加一个打印机监视器
D# L5 P+ }0 NAddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口
5 t. z6 k( K* E* n. M+ p# uAddPrinter 在系统中添加一台新打印机 " L9 c- E7 t9 q* j2 H, u; k
AddPrinterConnection 连接指定的打印机
& P/ |& V V' @ ]1 hAddPrinterDriver 为指定的系统添加一个打印驱动程序
; z3 Q# v* Y& U- Q9 t6 bAddPrintProcessor 为指定的系统添加一个打印处理器
8 G l% B& z" E1 P* \- bAddPrintProvidor 为系统添加一个打印供应商 $ x9 ~# y M' F: E) K2 r
AdvancedDocumentProperties 启动打印机文档设置对话框 & ?0 V; g5 y" k7 R; I* n
ClosePrinter 关闭一个打开的打印机对象 ; B7 c) J+ x) i* U( K
ConfigurePort 针对指定的端口,启动一个端口配置对话框
9 h% }+ G" D0 B* ?ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接 1 ?( y' u3 L# {% m1 t
DeleteForm 从打印机可用表单列表中删除一个表单 1 ]6 k- u+ Z" I/ Y: {0 [: m
DeleteMonitor 删除指定的打印监视器
' q/ S1 U+ ?" A- |# V4 t" c5 G0 mDeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口
1 [& e' M1 |! T" l& aDeletePrinter 将指定的打印机标志为从系统中删除 + t8 U+ B8 u' u; k
DeletePrinterConnection 删除与指定打印机的连接
/ i& E/ c8 S4 C! Q% dDeletePrinterDriver 从系统删除一个打印机驱动程序 # {- ]& v g4 J: G" k5 `- B
DeletePrintProcessor 从指定系统删除一个打印处理器 ( Z e3 x& C5 `
DeletePrintProvidor 从系统中删除一个打印供应商 1 b; s4 x" j9 T
DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 , K! _3 @3 e1 Y8 b
DocumentProperties 打印机配置控制函数 * V; u/ C+ B. D* d' ^
EndDocAPI 结束一个成功的打印作业
, k0 m3 k" @! M6 p; uEndDocPrinter 在后台打印程序的级别指定一个文档的结束
6 O# @7 X* q% J! IEndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页 & K" x/ l8 T3 H8 f# U
EndPagePrinter 指定一个页在打印作业中的结尾 0 i3 A$ h! m# Q, Q& o
EnumForms 枚举一台打印机可用的表单
5 _' C$ a4 S" j& v1 S8 p# X/ P$ xEnumJobs 枚举打印队列中的作业 & {- B" K; m9 \# {. l$ j
EnumMonitors 枚举可用的打印监视器 ; E( @( _# `3 i6 h0 t2 a6 E3 S0 ^
EnumPorts 枚举一个系统可用的端口
- a7 @8 u% i3 b% r9 K# zEnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序
. q, t2 l8 b# l" C2 NEnumPrinters 枚举系统中安装的打印机
, b# N4 G3 w) S/ Q1 YEnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型
0 h; a0 x( D# I0 j2 K4 XEnumPrintProcessors 枚举系统中可用的打印处理器 9 D, `& \1 S5 t/ J, _
Escape 设备控制函数 . o( H5 E* O* O2 x; q/ u2 ^
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 " V! D0 Y8 I) ^/ j* P1 d3 k L
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化
# ~* {9 u0 c$ A' RFindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因 . D) Z3 m! X$ m, D
FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区
1 B4 B0 `1 H, CGetForm 取得与指定表单有关的信息
1 v5 F) y- g8 l- [ j! y) ZGetJob 获取与指定作业有关的信息
6 D, z: ~" D7 n/ Y3 D+ fGetPrinter 取得与指定打印机有关的信息
' d3 b9 I0 k8 z: Y3 U [- O) rGetPrinterData 为打印机设置注册表配置信息
- X+ X; c3 A2 E- aGetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 ) f+ q! H. p6 p: B
GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
9 R" [8 S# B( q( n* ^7 o* EGetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录 2 Z, x& m1 w9 W
OpenPrinter 打开指定的打印机,并获取打印机的句柄 * ?! P! J! r# m4 o1 ?& }
PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框
* v* X6 ^2 E2 ]% w" PPrinterProperties 启动打印机属性对话框,以便对打印机进行配置 # C7 e. `, k4 ^+ \4 E7 B( |
ReadPrinter 从打印机读入数据
2 w( l) U. K: D$ |% W# fResetDC 重设一个设备场景
/ {9 u, ~$ X& g+ x6 yResetPrinter 改变指定打印机的默认数据类型及文档设置 + y$ T6 B4 i& V% n1 x- t
ScheduleJob 提交一个要打印的作业 ; i7 J) ?' A: N
SetAbortProc 为Windows指定取消函数的地址 " Y% j# T5 {0 W; Q( T4 [; j
SetForm 为指定的表单设置信息
& S# L+ ^- o/ Y& a. w( `SetJob 对一个打印作业的状态进行控制 ' c! F% _1 `* ~9 b
SetPrinter 对一台打印机的状态进行控制 - b: h6 H$ M5 {! M9 @
SetPrinterData 设置打印机的注册表配置信息
% o9 o/ C6 h* l6 tStartDoc 开始一个打印作业 ' T1 I; h$ R; l; ^8 N0 }
StartDocPrinter 在后台打印的级别启动一个新文档
9 Y; h& L5 d" k4 [# OStartPage 打印一个新页前要先调用这个函数
: x& R: {( J9 F! ], l( ^StartPagePrinter 在打印作业中指定一个新页的开始 ) J, g+ X3 g$ f# U* c
WritePrinter 将发送目录中的数据写入打印机
3 b$ M. C- g! h/ c3 h4 z' |5. API之文本和字体函数
7 i! e1 X& d+ ]% e% W* RAddFontResource 在Windows系统中添加一种字体资源
/ E0 h$ W" Q; N9 ?CreateFont 用指定的属性创建一种逻辑字体
5 U% W* Q% ?, S- a* _! ECreateFontIndirect 用指定的属性创建一种逻辑字体
. Y _, H/ |+ D4 E8 PCreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 , v& n' m. f% U3 _& g
DrawText 将文本描绘到指定的矩形中
1 K3 n$ L, R9 WDrawTextEx 与DrawText相似,只是加入了更多的功能
" Q. h3 E( J2 r5 ?6 u& t3 A7 G( dEnumFontFamilies 列举指定设备可用的字体
( p' z% R& ^# n1 ^, T2 Y4 I! oEnumFontFamiliesEx 列举指定设备可用的字体
2 `' H0 o7 T6 x: V8 L+ JEnumFonts 列举指定设备可用的字体
+ ?% y+ c1 T# y* X$ Z+ P. rExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
# ]( a" k b5 U: C. {, ~) BGetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小
& Q+ o ^0 Y; B7 \2 d) c" u3 ZGetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小
( L% A9 E3 \/ d/ f! P3 m" ]" L4 {GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸
- E. @) i! O/ J( s& }3 pGetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串
! t9 K# y$ {' [3 r9 k) {' [GetCharWidth 调查字体中一个或多个字符的宽度
& l8 T, W3 |/ F- YGetFontData 接收一种可缩放字体文件的数据 - l k! ?3 {9 m" t) P) x- Q8 n
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息 8 O$ l8 l% R/ R1 [2 ?( k3 O% q
GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 ; y+ R2 k0 O' k0 q5 y; B
GetKerningPairs 取得指定字体的字距信息 - u1 g7 t7 G+ ~. x, x8 u% R
GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息 " F' i- ^9 r, [$ p" y1 ?
GetRasterizerCaps 了解系统是否有能力支持可缩放的字体 3 z- z1 i( c3 c$ {# Z# [' U
GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 + W; U" M% m9 _$ L( h# @5 i \
GetTextAlign 接收一个设备场景当前的文本对齐标志 & O m2 O4 ^3 t% [
GetTextCharacterExtra 判断额外字符间距的当前值 4 t* ?6 l8 P/ h U* a$ f* J3 h
GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符 $ A" n4 [0 I: N5 Z- `( Y
GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息
8 b/ p( \0 [0 P3 M# y) uGetTextColor 判断当前字体颜色。通常也称为"前景色" 2 x' M4 {6 N& L4 m# k
GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息 l6 m) R" ? i0 I! V
GetTextExtentPoint 判断一个字串的大小(范围) 4 a; D% J: J ?% C
GetTextFace 获取一种字体的字样名
$ W9 p- a4 s3 Z! XGetTextMetrics 获取与选入一种设备场景的物理字体有关的信息
. S$ ^7 }1 g6 w: X, wGrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 n8 U: G O" k @4 I8 x
PolyTextOut 描绘一系列字串 4 g8 C/ \+ a9 N
RemoveFontResource 从Windows系统中删除一种字体资源
- p, i W) }' L( dSetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 / \2 r7 s/ w0 b, ]( Z
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置
8 d" x1 {. w* w3 D% L' ASetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距
) F% T- D! |* _+ {$ ASetTextColor 设置当前文本颜色。这种颜色也称为"前景色"
- `* @/ ?/ d) C) }" x# r* Y: {SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理 ' y- @3 ^& n0 ?( L$ N- J0 ]. j, k
TabbedTextOut 支持制表站的一个文本描绘函数 ! S1 p8 h& S4 o, {
TextOut 文本绘图函数
" X( l8 ]+ g5 ] PWINGDIAPI BOOL WINAPI TextOut(4 z( N* D, X/ U; F7 U0 d
HDC, //输出设备
( w, [" _8 T- k9 zint, //输出的横坐标
1 i; ?0 w; G/ U+ N/ D6 pint, //纵坐标: Y: @, H, R4 i
LPCSTR, //输出的文本str3 ]3 V! z+ T F; A, O! o" ?
int); //文本的长度:lstrlen(str) Y: j# [! Y7 `7 P: d) W# o
6. API之菜单函数
i2 A; X# I% d8 W' YAppendMenu 在指定的菜单里添加一个菜单项 R) e" f) L: B Q/ j$ `9 t! @4 `5 a
CheckMenuItem 复选或撤消复选指定的菜单条目 4 E/ i# e! j3 f5 @- T0 r/ b( F5 V! p
CheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目
3 t+ _3 N% z& J: |CreateMenu 创建新菜单
# }1 |3 @7 Q# g' I1 yCreatePopupMenu 创建一个空的弹出式菜单
2 C* i) @' ?6 i4 cDeleteMenu 删除指定的菜单条目
9 G: _- t( L" | oDestroyMenu 删除指定的菜单
: |- ^% m+ X4 }; SDrawMenuBar 为指定的窗口重画菜单
- t. Q6 _2 x# U: [EnableMenuItem 允许或禁止指定的菜单条目 + f! {$ v' b3 x0 K
GetMenu 取得窗口中一个菜单的句柄
& t X( K: | c* QGetMenuCheckMarkDimensions 返回一个菜单复选符的大小 ) I" w5 U8 k4 |) n
GetMenuContextHelpId 取得一个菜单的帮助场景ID
; p4 Z- R) Z& n, Q0 h% V& Z0 ]) iGetMenuDefaultItem 判断菜单中的哪个条目是默认条目 + z% K3 |" j" |
GetMenuItemCount 返回菜单中条目(菜单项)的数量 ; G7 K+ W9 p7 s ]; }* I( W
GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID Q( S% }0 m' `( C0 M, T- V. ~: j
GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 % \" x. {7 @) z X2 k) k: Q* S
GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 : B' ?3 N7 K r9 D$ T
GetMenuState 取得与指定菜单条目状态有关的信息 + P |1 i6 K2 g9 {! {: j |+ I
GetMenuString 取得指定菜单条目的字串
& y# [/ u* V9 ^. `5 v3 gGetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置
$ O# a/ |* f% q3 JGetSystemMenu 取得指定窗口的系统菜单的句柄
' f( j3 W' m& J" HHiliteMenuItem 控制顶级菜单条目的加亮显示状态
- v" o4 v. d n( D: WInsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动 ( s3 S# v3 ]7 q2 `
InsertMenuItem 插入一个新菜单条目 % h, @" V% M8 P" v
IsMenu 判断指定的句柄是否为一个菜单的句柄 5 O0 T5 K$ l: C* I( _/ M6 U
LoadMenu 从指定的模块或应用程序实例中载入一个菜单 + m* z7 K( [6 G, T1 C% T4 |1 l
LoadMenuIndirect 载入一个菜单 7 ~3 U+ K) j& y, b
MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 5 e5 w: F8 |4 e* V& s( j
ModifyMenu 改变菜单条目
( d/ y$ A: @, [, NRemoveMenu 删除指定的菜单条目 * U3 u4 r* U* O0 w: s4 Q4 B/ ^/ B
SetMenu 设置窗口菜单 ' A1 e0 n, P$ h5 `% F( i, | a6 B: w
SetMenuContextHelpId 设置一个菜单的帮助场景ID 6 t7 @) K+ n* s* [& j$ q* \
SetMenuDefaultItem 将一个菜单条目设为默认条目
7 E( f7 w: F, fSetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√) , Q; q* e. M, G N1 U4 V0 n ~
SetMenuItemInfo 为一个菜单条目设置指定的信息 " }& V3 a2 \+ ?9 {9 m
TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单 6 V% ?5 z7 {( X, l3 s9 K( @
TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 # F( E& F5 Q4 X* B0 n
7. API之位图、图标和光栅运算函数
: V8 r x x( G0 v( F* G3 bBitBlt 将一幅位图从一个设备场景复制到另一个; O- {8 \& N4 M5 N, t* f
WINGDIAPI BOOL WINAPI BitBlt(
0 j# P% V. V* f5 F0 A- k2 J4 n" O4 ZHDC, //目标HDC
6 ~$ V7 A1 V$ x W% vint, //X10 H3 M0 X0 ?- o7 O5 M
int, //Y1 H8 Z- t" m3 Q- Q8 v' c" U
int, //width
5 }% R; b* K, \! dint, //height8 K# ]+ q+ |* H9 h7 y
HDC, //源HDC
7 U4 M! D) z8 tint, //右边的距离
: T; x" i+ M% ?- rint, //??
8 O3 z% U: \7 wDWORD); //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
1 m1 o9 f: i5 n# q5 LPATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS7 N! v3 M& p$ A+ q6 e( p0 L
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
; G% n2 n3 E3 d& Q& c8 ACopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作 ) T) f' Y" x( H. z0 b- m) J
CreateBitmap 按照规定的格式创建一幅与设备有关位图 / M: N0 p- P, ^2 ?2 d0 p; f! R
CreateBitmapIndirect 创建一幅与设备有关位图
1 M# i" ^* I- I7 fCreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容 0 |$ i9 ?" D4 d+ N3 G
CreateCursor 创建一个鼠标指针 7 J" Y* V1 c( H. y! s
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图
, [. W1 { ?0 Z( gCreateDIBSection 创建一个DIBSection
. @$ y+ K1 u! v/ V' f4 y" F: hCreateIcon 创建一个图标
0 J/ ~; }0 F* g8 Z, i$ jCreateIconIndirect 创建一个图标 $ \# ^; G; w* K3 T
DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源
6 z! a0 x$ V' sDestroyIcon 清除图标
8 ~3 c/ `" P* C: W6 K! e. _) K3 BDrawIcon 在指定的位置画一个图标
/ n8 m6 E+ c/ x0 d4 i4 {& ^DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
/ @6 U3 ~ n( @$ nExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之 ( {$ r" }2 X+ \
ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来
% _6 `# S& t$ MGetBitmapBits 将来自位图的二进制位复制到一个缓冲区 / Q* M5 |' n! M) c" m& P* S
GetBitmapDimensionEx 取得一幅位图的宽度和高度 ! t+ ?' F! r5 F8 ~6 `7 n+ x
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息
$ A+ b/ u9 P/ t: \; r5 tGetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里 4 _9 p E. `' r* q9 a
GetIconInfo 取得与图标有关的信息 + L; ?. ^+ R$ K# S. d3 h+ Z
GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式
9 U6 U) F! C3 r8 l- j' q& P4 aLoadBitmap 从指定的模块或应用程序实例中载入一幅位图
# A* r' a: V! P& w, T4 TLoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针
! r$ a$ f; f% ]/ U3 a4 y* bLoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针
$ X( J7 G) U9 L4 k1 l* OLoadIcon 从指定的模块或应用程序实例中载入一个图标 * M9 c& o& b. l" Q! J2 H
LoadImage 载入一个位图、图标或指针
# i1 b/ A+ y- T6 bHANDLE LoadImageA(
: q/ Y& p$ o$ G8 S- ZHINSTANCE, //当前实例句柄:AfxGetInstanceHandle()
6 C$ J9 g4 F7 b: v3 Z( u9 V/ T( Y LPCSTR, //资源所在的目录:c:\help.bmp
) L, ^* e+ F# ?" o UINT, //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE
/ P) f1 a3 { ~8 R# X/ i int, //
( r' S8 j3 D. h$ v1 k; [ int, //
v& [' _% P$ F" g: p# p. X4 ^& q1 FUINT); //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|" W' e3 A& U$ u; R" e) S4 Q
R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|
: n1 E0 k/ C5 T7 j# X: ILR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
: t _7 E( K- S: r8 z7 y, `% V' I$ ]MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理
# m$ {* u; X5 x) |5 H1 sPatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景 / p6 e/ V. b% z1 _, S
PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
; T* r% }. ?5 G, ESetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 9 H7 W- g+ o' P; W, A9 M# i5 l2 k
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位
/ Q$ u; U) n y6 L: MSetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息
' O# b3 @! P# P, y$ o; H) r; T7 ^SetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里
1 ]3 V" ]3 I( h. s2 |6 @% SSetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备 ( b6 h: f) a& B: Q
SetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 4 K% z& K& a+ m# ?
StretchBlt 将一幅位图从一个设备场景复制到另一个
+ P1 q# M- D% e0 ^1 a! BStretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
# ^3 Q. w- \ t8 M) l, r! a8. API之绘图函数 % q; I, c# v+ |
AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
! J$ E& _* b" _. v! k" vAngleArc 用一个连接弧画一条线 1 ^) i4 ?! r8 S& @. d0 o. x' ^) H6 ^
Arc 画一个圆弧 ' B1 p7 |+ c4 i% y
BeginPath 启动一个路径分支 ' c1 s5 C. z8 Y; o( E$ Q$ ]% s% S. U
CancelDC 取消另一个线程里的长时间绘图操作
) Y- t7 H! M3 J! ^2 U% x$ dChord 画一个弦 ' ]- B9 b S) i# X
CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄
( u+ S& s8 m. @* a9 a5 kCloseFigure 描绘到一个路径时,关闭当前打开的图形 " @, M! [' i0 O+ a2 @) X. r4 C
CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄
; j, Q) O) O2 P- V# |9 KCopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝) + i$ \# W! R) X- e
CopyMetaFile 制作指定(标准)图元文件的一个副本
: t! T( b8 j4 q" zCreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子 / C, C) d; @& a3 ?( Q) I
CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)
& z" r) v- ~9 i+ a6 q8 R7 a: hCreateEnhMetaFile 创建一个增强型的图元文件设备场景
/ Z1 w7 L* Q+ ^/ |9 d2 i5 J; FCreateHatchBrush 创建带有阴影图案的一个刷子
6 @ {' Z$ f! M! c+ VCreateMetaFile 创建一个图元文件设备场景
7 l* ]! Z8 O) S4 gCreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
$ F% P" R" t: FCreatePen 用指定的样式、宽度和颜色创建一个画笔 + J! |, e% t4 P) f/ P# Z
CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
+ B: k1 T1 @% k& j I: {CreateSolidBrush 用纯色创建一个刷子 , o; C( m8 G. ?6 s0 ?* g
DeleteEnhMetaFile 删除指定的增强型图元文件 2 F0 \) N4 N4 P$ s! E! S1 X) g
DeleteMetaFile 删除指定的图元文件
8 c: U f. j6 _- c! O o' xWINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放6 R- o8 h% M# e) O3 W' o9 Z8 W
DrawEdge 用指定的样式描绘一个矩形的边框
5 G+ h) `7 @* x' i8 l2 q" O$ ]DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
. O- f' V' B: M3 F- g; Y, u: CDrawFocusRect 画一个焦点矩形
5 T ?2 n4 }# H6 a& T; aDrawFrameControl 描绘一个标准控件
. a+ x1 }2 k) H0 P5 ?DrawState 为一幅图象或绘图操作应用各式各样的效果 , w0 U5 o, t' O$ h( M& l
Ellipse 描绘一个椭圆,由指定的矩形围绕
# y* z" Q5 s. {1 k) z0 R) j9 zEndPath 停止定义一个路径
. r8 q/ m9 d& CEnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录
6 o& X/ [) x* I' i0 X" BEnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
9 b4 {* v7 I+ r0 G: fEnumObjects 枚举可随同指定设备场景使用的画笔和刷子
9 Y; K+ L) k4 c8 f& G3 k* WExtCreatePen 创建一个扩展画笔(装饰或几何)
* d3 E8 P m, Y- t: S8 QExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域 / P) ]$ m6 ^0 H4 C G4 q. ]' p
FillPath 关闭路径中任何打开的图形,并用当前刷子填充 : R7 n Q% `& Q, X2 x8 e
FillRect 用指定的刷子填充一个矩形
$ G) }1 z5 [! }/ N' rFlattenPath 将一个路径中的所有曲线都转换成线段 8 k6 m# Q0 N) J0 f
FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
4 }' l! M$ E; B- GFrameRect 用指定的刷子围绕一个矩形画一个边框
) W% e) D0 ]7 D+ W4 `5 iGdiComment 为指定的增强型图元文件设备场景添加一条注释信息 1 ?2 f- c1 N, F2 {, J# H8 l: v9 Q
GdiFlush 执行任何未决的绘图操作
' F8 d! O/ J! g8 E, q- Q% cGdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中
5 V9 A( q9 |2 M' d" p0 e3 M; dGdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列 " B, l9 F7 ^8 x# {/ H9 Y/ j
GetArcDirection 画圆弧的时候,判断当前采用的绘图方向 2 U" R5 d& J2 G6 K
GetBkColor 取得指定设备场景当前的背景颜色
* ~, X/ t, `" I. V3 Y% g# zGetBkMode 针对指定的设备场景,取得当前的背景填充模式 ; d, a4 l2 H0 q6 [) l: U. j6 r
GetBrushOrgEx 判断指定设备场景中当前选定刷子起点
- k f6 q. C6 i! n- t# vGetCurrentObject 获得指定类型的当前选定对象 7 ]. S" ]& Z0 z0 N9 f; H5 l
GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
& j$ K) t7 j; q3 p/ @GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
! Y& @, z3 M& m, \GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里
3 a! ~- l/ v* `' D0 HGetEnhMetaFileDescription 返回对一个增强型图元文件的说明
3 s* S, F- P- f9 K5 JGetEnhMetaFileHeader 取得增强型图元文件的图元文件头
! l6 O0 A: [! W5 pGetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 9 I; i h* W9 H0 ~9 C
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄
8 Q ?$ ?& r3 f5 `GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区
- {: j$ |0 }5 L+ c+ T+ RGetMiterLimit 取得设备场景的斜率限制(Miter)设置
2 B& L7 e) J$ E( y5 q( t% UGetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
/ Q4 z; |1 ^9 z8 X5 j! y) e8 WGetObjectAPI 取得对指定对象进行说明的一个结构 8 l$ o2 G: G- _) ]: E# B
GetObjectType 判断由指定句柄引用的GDI对象的类型 ! S2 a4 P S$ Z8 }/ H
GetPath 取得对当前路径进行定义的一系列数据
" D( @8 a* }8 {# P/ n. ^- _GetPixel 在指定的设备场景中取得一个像素的RGB值 ( N* T7 Z" }* u9 d G: a5 w
GetPolyFillMode 针对指定的设备场景,获得多边形填充模式 4 T( x4 o0 Q% P) u: _
GetROP2 针对指定的设备场景,取得当前的绘图模式
/ ~8 w7 T2 }7 t; v' B- D r |GetStockObject 取得一个固有对象(Stock) : g" i" g; _: `9 ]
GetSysColorBrush 为任何一种标准系统颜色取得一个刷子
5 h9 f: M4 A hGetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件 ( Y9 t* c! i1 k! }3 K! e
InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形 + U9 _, G; L5 w7 V: l3 G6 l0 j c
LineDDA 枚举指定线段中的所有点 2 r7 j2 \& T0 \# ?8 k5 x) `( Y- x
LineTo 用当前画笔画一条线,从当前位置连到一个指定的点
# D' A7 U$ S8 @. g1 yMoveToEx 为指定的设备场景指定一个新的当前画笔位置 ) C9 d8 y. E- J
PaintDesk 在指定的设备场景中描绘桌面墙纸图案
; _. j6 q$ m5 H. V" M. `, ZPathToRegion 将当前选定的路径转换到一个区域里
+ ^* N8 f, R6 CPie 画一个饼图
4 z! X5 `" d0 vPlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件
$ u* `4 o! P3 b$ y8 _5 c, HPlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 $ y. p3 r/ R! C. U; u9 m; ?
PlayMetaFile 在指定的设备场景中回放一个图元文件 2 @; b7 X+ a* G% N
PlayMetaFileRecord 回放来自图元文件的单条记录
- L( Y4 _. U: G1 X& r: R( V# z( YPolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
; `% p6 r7 f0 W2 D% X7 fPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
( w# p* b2 ~% j" _, a. U ePolygon 描绘一个多边形
0 P) d: }4 ~8 Z" u5 ~3 M @/ IPolyline 用当前画笔描绘一系列线段 2 Z3 B" L: Y# W4 d( N: V7 I" b
PolyPolygon 用当前选定画笔描绘两个或多个多边形 5 s8 w1 e& v4 C5 b* b- }- }' C A
PolyPolyline 用当前选定画笔描绘两个或多个多边形 3 N. Q, p1 T% {+ @: ]
Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充 - ?7 N1 x8 s2 G% m
RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充
* X! K4 i7 q! {9 ?SelectClipPath 将设备场景当前的路径合并到剪切区域里
( Y9 P R% k* MSelectObject 为当前设备场景选择图形对象 ; m y8 X; @# D6 G2 m8 _( ?4 o
WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);
9 t! m# }3 P+ b2 i' T& tSetArcDirection 设置圆弧的描绘方向 ^" o6 u0 g/ t. B1 }. h
SetBkColor 为指定的设备场景设置背景颜色 8 R) E; w/ r+ X
SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式 - }- d) h; ~( V/ S" ^1 K3 N+ J$ |
SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
7 k" @, [' K1 c- [! z9 v1 `" L: SSetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
3 V8 D0 J% ?# V( a$ A; ~9 xSetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件
2 ]" o0 _9 }/ O) j U% @' E9 bSetMiterLimit 设置设备场景当前的斜率限制
" Y' D t$ b# ?# ]" I' g- ~; o$ Q# z' xSetPixel 在指定的设备场景中设置一个像素的RGB值 1 u4 A5 {1 |" T: O% T$ L8 t% n" @- h$ |8 w
SetPixelV 在指定的设备场景中设置一个像素的RGB值
, c1 Z w- G7 }6 OSetPolyFillMode 设置多边形的填充模式 8 _$ g5 i/ E$ \4 {+ K" ~
SetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致
$ F6 c4 ]; z/ P. h0 YSetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 8 b$ |: f+ V; A4 ?
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域
; {1 l1 ^8 \2 d% t; K" o( w' d4 ?; s* _StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭
; ?6 E# s4 N! ]3 T! \4 t0 r4 ZUnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数
5 P, M* n5 F9 ~' c8 IWidenPath 根据选定画笔的宽度,重新定义当前选定的路径 - A! X2 |, v, @# |
9. API之设备场景函数
7 E" h- g' M- K+ C3 |CombineRgn 将两个区域组合为一个新区域
3 H+ M- e0 H, \4 q) fCombineTransform 驱动世界转换。它相当于依顺序进行两次转换 - f! c- h8 |) E+ Y- f; F8 D2 S
CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景 2 ]' t- \* y& D4 V( X3 ?
CreateDC 为专门设备创建设备场景
' w' l! q L. ?3 z i8 S" Q; w' yCreateEllipticRgn 创建一个椭圆
" u, s5 x: o0 L/ ]% aCreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域
& O' ~& }0 j' U$ x, |# y: tCreateIC 为专用设备创建一个信息场景 $ O7 y' G" T; Z5 o0 M& ^
CreatePolygonRgn 创建一个由一系列点围成的区域 2 t, \" M" W+ ?& z6 [7 C. `
CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的
. D/ j8 M, p6 n' _CreateRectRgn 创建一个矩形区域 / `, v" t, s% n0 ?' `( h. ~
CreateRectRgnIndirect 创建一个矩形区域
$ S2 P4 N( H) @4 h8 u2 e, K; k6 i" cCreateRoundRectRgn 创建一个圆角矩形 5 J x/ N6 q, a. l o9 I
DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源
8 E; Z0 P) A! _. A7 dDPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标
7 K @$ s1 q% L9 YEqualRgn 确定两个区域是否相等
: }$ L) X5 O/ ?! g! HExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图 7 x2 g3 R$ }! L- P* g
ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域
7 X- \! P6 O& D! k* IExtCreateRegion 根据世界转换修改区域 4 n1 b' b0 U0 {& X/ T) D# ^( x
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
) m6 K H7 p: f1 ~) C( [FillRgn 用指定刷子填充指定区域
3 T) F+ z y) |& B& uFrameRgn 用指定刷子围绕指定区域画一个外框 0 ?! T. ?% a2 N4 p/ a; E
GetBoundsRect 获取指定设备场景的边界矩形 9 b% g" T( P# @; T& Z# C V
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形
8 R/ s9 v; J3 IGetClipRgn 获取设备场景当前剪裁区
* U: N4 q3 c7 f! d3 m/ Q! L# jGetDC 获取指定窗口的设备场景
/ ^) ]: e5 O, j& V, X# FGetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 ! [( X- ?6 `/ k6 e) r
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示)
( ?! n/ a5 B( R* ?% EGetDeviceCaps 根据指定设备场景代表的设备的功能返回信息
0 b: v0 u+ L0 IGetGraphicsMode 确定是否允许增强图形模式(世界转换) % [, N- @$ o: @5 M P8 Y5 h9 ~ J7 A
GetMapMode 为特定设备场景调入映象模式
- s" b* n. h- j, M; X s; m4 `GetRegionData 装入描述一个区域信息的RgnData结构或缓冲区 9 n+ ] c# R+ d0 |0 J' S+ o
GetRgnBox 获取完全包含指定区域的最小矩形 * t& N6 {' p2 h! P+ m6 W- A
GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新
% ~6 Y$ u; {8 e8 Q$ K) JGetViewportExtEx 获取设备场景视口(viewport)范围
- e" B% B' f0 Q2 e, S* j2 `GetViewportOrgEx 获取设备场景视口起点
& P. w; Y6 m/ I5 E0 C+ bGetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景
* R+ g( p) z X- PGetWindowExtEx 获取指定设备场景的窗口范围 * S; h+ _, T3 ]4 _
GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点
8 e" {$ t. J+ w5 ^# [GetWindowRgn 获取窗口区域
* \0 B! M' |4 DGetWorldTransform 如果有世界转换,为设备场景获取当前世界转换 z1 n$ m9 ~* @; y; Y/ m$ t
IntersectClipRect 为指定设备定义一个新的剪裁区
, ]! d# d, m* g) S9 IInvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画 0 W$ K: Z7 q$ ^) ?
InvertRgn 通过颠倒每个像素值反转设备场景指定区域
' P X/ D- k% S V; H6 r6 c( q, zLPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标
" w: ?: l7 V( U4 X% e- }& KModifyWorldTransform 根据指定的模式修改世界转换
) Y E" \% Q& R4 _+ \OffsetClipRgn 按指定量平移设备场景剪裁区 ' X% [ n' n4 }$ I. q8 ?- _, S! V
OffsetRgn 按指定偏移量平移指定区域 7 `/ ~5 f7 O% N! k* n& r9 B
OffsetViewportOrgEx 平移设备场景视口区域 5 n* i- ]7 I/ t. v
OffsetWindowOrgEx 平移指定设备场景窗口起点 " [ f- J( V5 y( D, Y# r5 A! ~9 {
PaintRgn 用当前刷子背景色填充指定区域
( }9 n( l( Z" u+ a' E0 rPtInRegion 确定点是否在指定区域内 4 U5 k d* `0 ]! G
PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)
+ u: n1 A5 G0 l5 m5 F! ^5 `: ~, c" cRectInRegion 确定矩形是否有部分在指定区域内
" l- N/ y$ ~$ H# qRectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内)
! Y& o- S6 s8 \* L1 JReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景 7 Q' k3 }4 o& f& y
RestoreDC 从设备场景堆栈恢复一个原先保存的设备场景
6 V; `1 k" P3 ~! eSaveDC 将指定设备场景状态保存到Windows设备场景堆栈
0 U5 Z9 Y+ \" {9 j1 y, C# |ScaleViewportExtEx 缩放设备场景视口的范围
3 N: {0 A! {$ s" ~: p. L2 L. z1 CScaleWindowExtEx 缩放指定设备场景窗口范围
& G3 g6 W. I2 J/ aScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形 & d% h) e# ^ W d" @: }
SelectClipRgn 为指定设备场景选择新的剪裁区
/ A5 q, Q1 b, U0 m' Y0 CSetBoundsRect 设置指定设备场景的边界矩形 0 K; `; s7 p! [ H: w z8 n
SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换)
1 I* k$ E/ i% D( t0 g6 WSetMapMode 设置指定设备场景的映射模式 9 M; s7 ^ E2 a% W5 q
SetRectRgn 设置区域为指定的矩形 * |3 D, f4 H2 y. [* o" U& B
SetViewportExtEx 设置设备场景视口范围 + |' e) ^8 Y0 j0 }5 Q
SetViewportOrgEx 设置设备场景视口起点
, H% @5 l) H+ s% _SetWindowExtEx 设置指定设备场景窗口范围
4 Q' r6 h8 w4 [) {* w8 [& YSetWindowOrgEx 设置指定设备场景窗口起点
; T7 m1 t; ?/ ]* qSetWindowRgn 设置窗口区域
( \& A; y, L" Q @3 K' r3 QSetWorldTransform 设置世界转换 # s0 b" `. |* C" M; o* p
ValidateRgn 激活窗口中指定区域,把它从刷新区移走 8 ?/ m5 O8 P7 C# S/ P% S4 {( s4 b
WindowFromDC 取回与某一设备场景相关的窗口的句柄 9 ~& ~& I' k3 s3 |* ] I( E; l
10. API之硬件与系统函数
2 S+ y. H. H! w, l: @- iActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 ; W9 S1 h0 N3 V6 b: C M% H
Beep 用于生成简单的声音 $ z, P7 A3 L1 d; O
CharToOem 将一个字串从ANSI字符集转换到OEM字符集 ' |7 E6 T! M7 g8 x' s) W2 u
ClipCursor 将指针限制到指定区域
; V. ]9 q3 v/ k2 GConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
% ]+ t- T' i! u, c& v( wCreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 ) {* [. I# a0 u. Q8 f# c
DestroyCaret 清除(破坏)一个插入符
" h& `! P+ C; ~4 [# W: o9 VEnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息 # y" P$ C7 J1 v: u J9 l" k$ Z
EnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
1 L+ H, |% a! z$ |% u* U/ rEnumSystemCodePages 枚举系统中已安装或支持的代码页
: }3 q! n& z* \6 I$ I$ MEnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置 . u" c1 x8 J3 S/ j
EnumTimeFormats 枚举一个指定的地方适用的时间格式 , v2 y; z0 W$ \2 s
ExitWindowsEx 退出windows,并用特定的选项重新启动
. X6 F) i% G+ Z+ @ E( v9 P( R WINUSERAPI BOOL WINAPI ExitWindowsEx(
7 N A6 U# m. r5 d/ KUINT uFlags, //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG
% [' |# B: z0 p! h* s DWORD dwReserved); //06 Y( f! Q" ?# `+ y3 V
ExpandEnvironmentStrings 扩充环境字串 1 { H; S, w& | @
FreeEnvironmentStrings 翻译指定的环境字串块 $ g; C; z: ?4 B% z: m* @
GetACP 判断目前正在生效的ANSI代码页
$ l8 k6 [. ]2 T4 I& r/ CGetAsyncKeyState 判断函数调用时指定虚拟键的状态 $ C8 C7 @5 t" y. O/ N
GetCaretBlinkTime 判断插入符光标的闪烁频率 $ L# v# a; A6 B' O F
GetCaretPos 判断插入符的当前位置
: k' g' W$ S4 w8 hGetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域 # v* [1 |- G1 ~ T5 E4 f3 u/ l
GetCommandLine 获得指向当前命令行缓冲区的一个指针
3 X+ u* [9 K$ r; |" {( AGetComputerName 取得这台计算机的名称 O3 P1 H' J4 M5 `3 m: D4 J
GetCPInfo 取得与指定代码页有关的信息
$ `$ B$ T: o4 Q& V' {) OGetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字
4 `. J( Q8 `5 z' mGetCursor 获取目前选择的鼠标指针的句柄
$ \/ T% B( y8 d T1 OGetCursorPos 获取鼠标指针的当前位置 ' x' M! C8 Q4 c% E0 z: }, Q
GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化
7 o7 Z6 k% l. i6 N9 I0 j- c! \GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间
* K' ?5 v" ~/ d! R% _; m- ?GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄
5 Z; [' W2 F& z; t5 R; BGetEnvironmentVariable 取得一个环境变量的值 - Z: E8 z. ~% h* e7 T4 N
GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件
3 G' p+ D# [) ?GetKBCodePage 由GetOEMCP取代,两者功能完全相同
: j* Z! j- J5 N/ DGetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
; S8 p* k- @6 R* `% A' R C9 RGetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表 " d- Q% q( C. P U
GetKeyboardLayoutName 取得当前活动键盘布局的名称
$ i. z3 a1 ]( I/ p' tGetKeyboardState 取得键盘上每个虚拟键当前的状态
) o1 s2 U, P$ t0 o" U( VGetKeyboardType 了解与正在使用的键盘有关的信息
3 q( V) _* u/ F6 M. KGetKeyNameText 在给出扫描码的前提下,判断键名 5 `; }; l6 `* {# O; J
GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态
; j( R8 S9 A! O$ C& ^' [* R* R- nGetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息 - n4 }' D- a( J2 y9 J1 r
GetLocaleInfo 取得与指定"地方"有关的信息
. ?* o( z/ ^/ `4 ^. Z" ]GetLocalTime 取得本地日期和时间
; O8 I4 J, m$ W* D6 d& A8 w H/ KGetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字
! W. x; T4 ~1 }% u, }GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
2 i1 D7 n% L- v3 d7 U- NGetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
% N4 F2 @- ~) s W. I) k9 ?GetSysColor 判断指定windows显示对象的颜色 6 W8 a# R9 M+ f" N i7 [, k
GetSystemDefaultLangID 取得系统的默认语言ID
( M2 a, A% x+ Y) Z$ {GetSystemDefaultLCID 取得当前的默认系统"地方"
8 Z7 B3 g" \1 {5 M$ D: \0 L# uGetSystemInfo 取得与底层硬件平台有关的信息
4 D1 R4 @; W9 O0 MGetSystemMetrics 返回与windows环境有关的信息 ) i, d: Y9 y& `1 D g {7 p% Y
GetSystemPowerStatus 获得与当前系统电源状态有关的信息 " S# n3 V( K. g9 s9 I& @/ G
GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式 : B! x/ {) \8 d" z- i
GetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步 . Q- n" X4 h0 z; X
GetThreadLocale 取得当前线程的地方ID ) L7 d6 ~ E6 ?% r) x5 s+ v
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
( o, L G3 H( X# E, \GetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间 $ v! B! e' _. Z( G- \! P
GetTimeZoneInformation 取得与系统时区设置有关的信息 , J* J1 f) A! ]. p/ F: }
GetUserDefaultLangID 为当前用户取得默认语言ID
- G8 Q( |( o" _& i9 x2 [GetUserDefaultLCID 取得当前用户的默认"地方"设置
9 J. v4 H1 j" J. S+ N( P9 o6 kGetUserName 取得当前用户的名字 ; M! b+ N4 g/ I) [
GetVersion 判断当前运行的Windows和DOS版本
8 e, U3 R( V2 [GetVersionEx 取得与平台和操作系统有关的版本信息
8 b* o* o, b1 c# aHideCaret 在指定的窗口隐藏插入符(光标)
! e, | G v2 }9 OIsValidCodePage 判断一个代码页是否有效 1 \8 A4 I/ d9 h/ L5 q
IsValidLocale 判断地方标识符是否有效
2 `3 x: {$ E! Vkeybd_event 这个函数模拟了键盘行动
/ f( L7 {! Y4 Q" m& U# [9 r% mLoadKeyboardLayout 载入一个键盘布局 , \3 _" f# P: T" J7 p
MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换
+ d6 k- w1 F9 T+ `2 Q) ?+ H: [MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换 / U; s! [' S# H% g: l; [
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的
) W4 d# X) l" x8 n4 hmouse_event 模拟一次鼠标事件
" l! T+ E# G8 L! `8 W% O: t. LOemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
5 Q/ P% i1 D$ l; hOemToChar 将OEM字符集的一个字串转换到ANSI字符集 5 v. U% P7 T# [2 `& D
SetCaretBlinkTime 指定插入符(光标)的闪烁频率
& s; x3 C' [5 U% XSetCaretPos 指定插入符的位置
4 z/ m, q# f$ }2 Z0 oSetComputerName 设置新的计算机名 * x) {: F q5 _' ]/ B; q' E1 ?5 \
SetCursor 将指定的鼠标指针设为当前指针 ! O. o; \6 Q- _# N
SetCursorPos 设置指针的位置 ) l: y& ^# I' J
SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 3 L' i! Y2 F5 j$ h
SetEnvironmentVariable 将一个环境变量设为指定的值 2 i: M+ \) y4 Y' M/ Q+ M
SetKeyboardState 设置每个虚拟键当前在键盘上的状态
% I: H5 c( W0 s5 eSetLocaleInfo 改变用户"地方"设置信息
) y( t$ G9 q9 u- `6 G$ ?SetLocalTime 设置当前地方时间 ) g3 E" l4 f& T: n
SetSysColors 设置指定窗口显示对象的颜色
# Z i+ F, @- eSetSystemCursor 改变任何一个标准系统指针
1 `6 R6 Z* s& x' D' lSetSystemTime 设置当前系统时间
# J* E: s' n' KSetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 0 z6 c, ?! W- v+ H- {: I5 a
SetThreadLocale 为当前线程设置地方 " S2 _# [/ X0 A6 }& K' v& m) Z
SetTimeZoneInformation 设置系统时区信息 % M, [! b3 P7 Q, r/ }% @8 n
ShowCaret 在指定的窗口里显示插入符(光标) / L5 z l) J- E/ i9 E l
ShowCursor 控制鼠标指针的可视性 6 G9 p; C7 r5 x$ I
SwapMouseButton 决定是否互换鼠标左右键的功能 - ~' e$ R8 |, i4 s, D
SystemParametersInfo 获取和设置数量众多的windows系统参数 , K/ g' S& B* p4 S7 Z
SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
0 m. U8 t, e7 I2 f+ {# GToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符
1 m+ @ i. z) k" ^) q' WToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
- a2 ~/ K2 D LUnloadKeyboardLayout 卸载指定的键盘布局
- U" J/ N, s9 j) IVkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态 7 T* {( f1 b6 D( t, L) v
11. API之进程和线程函数 ~, C8 q& p5 E* F7 e
CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作 - a0 h C, w2 Y: ^
CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 8 r* E' p7 T. M ^9 H/ x$ _1 `
ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 0 u# R6 \$ N( g
CreateEvent 创建一个事件对象 ; O+ \# Z4 F0 J" S7 x( @; ]
CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)
/ ^# D1 u% b( w$ B" MCreateMutex 创建一个互斥体(MUTEX) % `" K& [ ^6 }1 A* v# a
CreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用
2 o5 S4 A- M! n! C# sCreatePipe 创建一个匿名管道
' R5 Q& V8 y& q; u9 K: V+ MCreateProcess 创建一个新进程(比如执行一个程序)
# a$ ]4 ?& `, t* T7 [CreateSemaphore 创建一个新的信号机
! ?5 K2 l9 B/ \5 j9 H2 [* vCreateWaitableTimer 创建一个可等待的计时器对象 # \1 i6 D: [0 |. S
DisconnectNamedPipe 断开一个客户与一个命名管道的连接 . o2 f7 G% N* M% | z
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄
* G. @7 _" ^4 V. H# r4 xExitProcess 中止一个进程
9 K/ e' L( s: qFindCloseChangeNotification 关闭一个改动通知对象 5 w: c, _! s0 f" \
FindExecutable 查找与一个指定文件关联在一起的程序的文件名 $ g" I- V0 a, m/ x: Y V
FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化
" |/ Y* r6 V" N3 HFindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 ) s" ^- @6 H. f {
FreeLibrary 释放指定的动态链接库 3 ]% B4 b2 q! ~9 G/ W! W( H
GetCurrentProcess 获取当前进程的一个伪句柄 * e9 r- V- D) |9 x
GetCurrentProcessId 获取当前进程一个唯一的标识符 3 u9 u+ b( u% G3 @) |
GetCurrentThread 获取当前线程的一个伪句柄
7 Z! i( _: j: {* yGetCurrentThreadId 获取当前线程一个唯一的线程标识符 2 Q1 y2 T$ E" o" l0 F
GetExitCodeProces 获取一个已中断进程的退出代码 : l8 u) C; y0 j5 {8 ], F; D B
GetExitCodeThread 获取一个已中止线程的退出代码
* n0 P) a6 n6 W+ GGetHandleInformation 获取与一个系统对象句柄有关的信息
( |' p, n1 L$ y: [: x, \& I8 ZGetMailslotInfo 获取与一个邮路有关的信息
) r5 Y0 C- X O+ V$ z% H; O; tGetModuleFileName 获取一个已装载模板的完整路径名称
" e) q+ m' v6 U! t+ ?( p! DGetModuleHandle 获取一个应用程序或动态链接库的模块句柄 + A2 `' I }% A) R
GetModuleHandleA(LPCSTR lpModuleName);2 n1 S( F. R' e1 |: W5 p5 v8 B
GetPriorityClass 获取特定进程的优先级别
+ k3 \! o( \3 J n3 J! {7 ?: _ ^; [GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况
4 ], H5 n6 ~0 K+ i* FGetProcessTimes 获取与一个进程的经过时间有关的信息 " M, ]: O# \: J/ f( P. ?1 c1 ]) l
GetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存
/ W' S& }7 W( X8 k) @! H0 M' jGetSartupInfo 获取一个进程的启动信息
( J8 _7 s; A8 K4 G/ V& oGetThreadPriority 获取特定线程的优先级别
( ~8 n7 ~6 q/ x1 EGetTheardTimes 获取与一个线程的经过时间有关的信息 6 J! u6 c$ p- k2 s1 x( O" W( E6 J/ F
GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符
/ v8 k' i5 Y$ j& T+ W- U: ZLoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
4 V1 B! x( {9 E+ {* u2 L ELoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间
H7 S7 W- }$ M* R1 b( ?& R: F$ fLoadModule 载入一个Windows应用程序,并在指定的环境中运行
; D% E& |$ ^1 h3 k7 zMsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回 $ J- Q* G% }# h6 z6 ~* S" o" c4 G
SetPriorityClass 设置一个进程的优先级别
2 x# p+ ^( a0 [5 m! ?SetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序 ; `- f3 P) @ B7 N1 f/ [2 h+ C# ]6 I6 r
SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量 1 p. c9 H: e( R$ d: ~# C
SetThreadPriority 设定线程的优先级别 - i: G' V; W O a/ K c! P
ShellExecute 查找与指定文件关联在一起的程序的文件名
3 V' c/ T0 Q1 I8 _# Y8 g/ sTerminateProcess 结束一个进程
" `8 a/ h2 h, a9 W* n& f! WWinExec 运行指定的程序 , Z. [4 g7 z6 W5 ^
12. API之控件与消息函数 ) C/ f i$ Z2 e; }5 T
AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 . Y4 h& ~$ S8 ?* y9 E( K# m7 S
AnyPopup 判断屏幕上是否存在任何弹出式窗口 $ l4 M: s/ ?! H; Y% J, \$ x9 |0 o: I
ArrangeIconicWindows 排列一个父窗口的最小化子窗口 0 {6 B# U& J, j. q0 H
AttachThreadInput 连接线程输入函数
# {) T* v8 ^. V( d1 ]; rBeginDeferWindowPos 启动构建一系列新窗口位置的过程
- g9 |: a9 D: g4 q) t5 o$ Y% vBringWindowToTop 将指定的窗口带至窗口列表顶部
" b7 H) a0 Z2 s4 oCascadeWindows 以层叠方式排列窗口
; `% g6 b0 }- ?3 z3 `+ i: vChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄
4 X; W8 u+ C) hClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标 . }9 j+ {5 R1 H/ u; m% ^7 m
CloseWindow 最小化指定的窗口
; p( Z9 y1 Z) a$ p9 z5 qCopyRect 矩形内容复制 3 h N d: s x1 _$ n9 p
DeferWindowPos 该函数为特定的窗口指定一个新窗口位置 " F) X% g0 J' I6 k p
DestroyWindow 清除指定的窗口以及它的所有子窗口 ; _3 W7 m ~, ]/ @8 B% ~
DrawAnimatedRects 描绘一系列动态矩形
; l4 P n" w5 C; BEnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入
; R- j5 r' A+ C1 h- ?3 DEndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
# P# `/ n8 d. O( S1 D# SEnumChildWindows 为指定的父窗口枚举子窗口
0 r# U0 X7 P" q3 ^- s: ~! YEnumThreadWindows 枚举与指定任务相关的窗口 9 h+ s) f; Y. u7 t4 F. B8 O, @
EnumWindows 枚举窗口列表中的所有父窗口
0 c; Q, P% T4 f3 U5 {EqualRect 判断两个矩形结构是否相同
* }, i d2 V3 J* H2 e4 s8 Z! f/ MFindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 2 ~( N4 P. N8 D6 K4 Y
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口 ) Y6 t, o" N0 r
FlashWindow 闪烁显示指定窗口 ) V% q: G( c# a7 c
GetActiveWindow 获得活动窗口的句柄 " L, A- f+ i; k, b0 Q; }4 r
GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收) , P; N1 F) v# B
GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息 ! r7 z4 T, Z# _$ l6 W* G
GetClassLong 取得窗口类的一个Long变量条目 9 s: u+ f& B' M3 E3 N+ n- ~6 I
GetClassName 为指定的窗口取得类名 % n. C8 A0 _9 A. S
GetClassWord 为窗口类取得一个整数变量 2 {; V; m0 P/ M3 ~0 R: k
GetClientRect 返回指定窗口客户区矩形的大小 : P; N% l5 ^- c+ k5 x7 o2 C; _1 G
GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
5 W" o- p* x0 S4 c2 T+ @$ RGetFocus 获得拥有输入焦点的窗口的句柄 2 v5 Y$ l3 }- E8 d
GetForegroundWindow 获得前台窗口的句柄 $ U6 d( C5 L: L/ C
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄
) v4 e7 c+ O- [% H* V, Q& BGetParent 判断指定窗口的父窗口 + W) `6 m+ y( {
GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 # X0 t& l8 l6 r) d- b4 b2 [
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 ) {8 ~* ~4 A% x1 I$ _
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 0 e0 q& M9 V" O# _
GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID 1 O# ^8 ^% f, w: q
GetWindowLong 从指定窗口的结构中取得信息
; a6 ^8 l( M2 A3 R/ y7 t6 tGetWindowPlacement 获得指定窗口的状态及位置信息 2 Y2 @: I& ]/ [' }' r* a) F* @
GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 8 E3 o8 V* O8 N3 o/ ~* ]: `
GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容 : B: T/ L0 w2 L. m) _3 \: g
GetWindowTextLength 调查窗口标题文字或控件内容的长短 9 {+ F4 ~$ {3 v( K5 D
GetWindowWord 获得指定窗口结构的信息
% B; @& A# h/ n$ @$ X- B1 c6 Q8 rInflateRect 增大或减小一个矩形的大小
* l$ Z5 t( k. p& Y; wIntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 # K* i3 f+ c- ]
InvalidateRect 屏蔽一个窗口客户区的全部或部分区域
: F0 z% d5 A# w3 {& u5 D: A+ | B2 VIsChild 判断一个窗口是否为另一窗口的子或隶属窗口 7 L: O" y0 ~ c3 H9 [7 Z8 M W; k( t1 D
IsIconic 判断窗口是否已最小化
' w- k7 ]9 b+ D5 ]& a8 W _IsRectEmpty 判断一个矩形是否为空 9 g0 A' G, s1 i: `. W
IsWindow 判断一个窗口句柄是否有效
9 c8 `. |/ {" _IsWindowEnabled 判断窗口是否处于活动状态 $ @$ n8 f9 J+ H F9 _7 T" h: V
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字
7 n5 j4 h! I e7 j- G3 z5 pIsWindowVisible 判断窗口是否可见 * D6 [/ m8 g5 c
IsZoomed 判断窗口是否最大化
) s/ p, E* [( Z2 tLockWindowUpdate 锁定指定窗口,禁止它更新 $ l. c2 S) c9 x
MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统 ; |8 n6 x$ M+ G) ^' H+ L' ?/ y" B
MoveWindow 改变指定窗口的位置和大小
6 ^0 ]9 u& T. |& V2 s" p D6 VOffsetRect 通过应用一个指定的偏移,从而让矩形移动起来 - \. m7 B `2 z; v
OpenIcon 恢复一个最小化的程序,并将其激活 + x: R2 o9 k3 m5 |- w
PtInRect 判断指定的点是否位于矩形内部
- O6 N$ U f ^6 J/ ZRedrawWindow 重画全部或部分窗口
# r( n7 B& @9 W; c3 [ReleaseCapture 为当前的应用程序释放鼠标捕获 % M8 W9 C2 i2 ]0 C3 O+ J
ScreenToClient 判断屏幕上一个指定点的客户区坐标
9 j3 |* J/ N) @6 ^* I9 EScrollWindow 滚动窗口客户区的全部或一部分
4 v' w; M! |" e/ @# n+ kScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分
: `4 L! R5 Z2 N$ z/ M( W4 z# `: \, JSetActiveWindow 激活指定的窗口 / }: O$ d- k8 ?# a/ j" J9 b# `2 H
SetCapture 将鼠标捕获设置到指定的窗口
4 X. t j5 }" f# _4 W8 ISetClassLong 为窗口类设置一个Long变量条目 4 L$ W6 A; k ~+ L
SetClassWord 为窗口类设置一个条目
$ k& S6 D9 V, o) `* }, s. ^! nSetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口
9 w9 O% m7 I& [$ u' g' RSetForegroundWindow 将窗口设为系统的前台窗口
5 m2 w. x# o6 ^6 O% S8 G) ]' M9 FSetParent 指定一个窗口的新父 " d2 m2 \. b7 n* X7 P* Q% X4 W. x/ T
SetRect 设置指定矩形的内容
0 K: |" i0 Z) O2 xSetRectEmpty 将矩形设为一个空矩形
+ T& S" V! Q; P2 u, i7 bSetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
; K6 |5 I! U: r3 gSetWindowLong 在窗口结构中为指定的窗口设置信息 ! c! p. `% d9 ]' r8 w( e, Y
SetWindowPlacement 设置窗口状态和位置信息
; V( @$ q+ _" \SetWindowPos 为窗口指定一个新位置和状态
) b" F: H& \6 O; _; z) _SetWindowText 设置窗口的标题文字或控件的内容
3 G- v8 U: ]8 p" R4 v3 J- {5 F) \SetWindowWord 在窗口结构中为指定的窗口设置信息
2 Q' J- ?4 J# A) O; \! D# c5 a: nShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口 , ]5 Y. U$ P) O% p
ShowWindow 控制窗口的可见性
. s7 L. }/ c R- M- W$ sShowWindowAsync 与ShowWindow相似 ( _% y7 T L- i/ r- T
SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果
# {. r" _' ~9 p# N8 ]TileWindows 以平铺顺序排列窗口 9 c8 {, V* g- @/ P9 K7 K, k
UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果
+ E8 l% A) V; u- m3 EUpdateWindow 强制立即更新窗口 / ?8 k% Q$ C* ~ ]# t
ValidateRect 校验窗口的全部或部分客户区 0 ]2 k) a2 Y0 W9 c
WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口" Q& j6 ]4 T) b9 x5 c* H
高级音频函数—参看《VC++ 编程指南.chm》11.6
' m. z) X9 v( E3 N- I7 a9 S Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。7 V5 w2 Y; g6 G3 X2 V P! R
BOOL MessageBeep(UINT uType);
7 x6 w! ]; [, n+ P, n! \2 ?# g. \该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。
1 [/ h8 {6 u; Z1 q参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。2 ^+ C- `) Z5 R0 e
级别
* r. B- j$ }! h- y | 描述
1 x' m) w/ u$ o, |& b | -1 4 T% H( U* S# n* a! q( J
| 从机器的扬声器中发出蜂鸣声。
/ Y# \' p2 O6 k! o: X | MB_ICONASTERISK ( c3 q0 {) `8 C3 O
| 播放由SystemAsterisk定义的声音。
8 e d, r. x. q3 {+ O: K | MB_ICONEXCLAMATION
; U+ ^! ~/ I; e9 i3 l* Z6 w# W | 播放由SystemExclamation定义的声音。 ; y4 r; A+ x4 c/ R$ B9 \) Q8 m7 m( c
| MB_ICONHAND
x5 z/ j9 S+ O3 I | 播放由SystemHand定义的声音。 2 h4 o9 Z: q& x W3 E: H5 \! e
| MB_ICONQUESTION
/ N4 N& m+ r) Z7 r9 d$ m | 播放由SystemQuestion定义的声音。 7 c/ F v" J% u7 U+ n& w ^
| MB_OK
" k5 _, f6 i/ o2 q& F0 h7 x | 播放由SystemDefault定义的声音 ( S% f% M) g% x% x# q
| BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);7 C6 c1 J# T, ^8 c$ G; i3 E# a
参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。: v4 A: K" p: U @3 `2 ?1 g' z
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。
I5 K4 w: J* }. G) _' r参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。+ `! n, P3 N* L! s2 c' k
标志 " R6 O6 z& [, Z/ ^" ?9 R
| 含义
1 ^$ B& }! o' l" y; U Y) D$ D' {9 N | SND_APPLICATION : J/ f, l, O. L! [1 Y
| 用应用程序指定的关联来播放声音。 " `' ^% L# @) s( ]2 N" p: |
| SND_ALIAS
- @# L) w& L: N. D9 d& N | pszSound参数指定了注册表或WIN.INI中的系统事件的别名。
5 c7 N* N2 L" T$ U3 M) _, P | SND_ALIAS_ID 3 |- f8 x8 i1 H
| pszSound参数指定了预定义的声音标识符。 + e; b/ i9 ]# L3 w8 Y% ^4 R
| SND_ASYNC 4 i( u+ X( d/ _- x" c3 P
| 用异步方式播放声音,PlaySound函数在开始播放后立即返回。 0 J# z/ L. k ]
| SND_FILENAME : a1 L0 p# Q5 A9 |5 c
| pszSound参数指定了WAVE文件名。 ' p1 T4 s* {# \$ v3 l
| SND_LOOP 9 D: r* d, O+ k5 Z1 R) w
| 重复播放声音,必须与SND_ASYNC标志一块使用。 ; p6 a! a8 w4 v1 c
| SND_MEMORY
. F/ W( m6 y# O' l* k" U | 播放载入到内存中的声音,此时pszSound是指向声音数据的指针。 ' B5 g1 G" I& a* I1 G- {
| SND_NODEFAULT
: n8 V! W- F: G! `6 o9 K | 不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。
& J" L- V4 H8 `' d: Q5 _2 {9 i- f | SND_NOSTOP
% p9 [8 b! J! ?0 U | PlaySound不打断原来的声音播出并立即返回FALSE。 4 V. U! }8 i5 X
| SND_NOWAIT 1 ^- l* L) L9 J% X
| 如果驱动程序正忙则函数就不播放声音并立即返回。 ' ]- P( f0 F. \: g, Z4 \
| SND_PURGE
* s/ t; _& `: B% D3 Z. P( V9 t | 停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。 8 k' f2 T2 i0 ~
| SND_RESOURCE
8 ^+ O8 \7 Y) \! f% [8 M2 h/ [ | pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
5 k7 x2 p$ n1 g- O5 t7 u9 F, F | SND_SYNC . t+ U4 v6 t8 E9 r8 ?+ N; p- u7 B
| 同步播放声音,在播放完后PlaySound函数才返回。 # S* M/ z5 K# o0 k
| BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);4 l9 O! R5 A$ F9 u
函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。
6 `8 L* @1 M, L3 @6 M% ZMCI播放
; E* ]' \$ S9 _4 a J所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:* Y% R/ L* G+ {% a8 z! P7 b
MCIERROR mciSendString(
3 G1 b! y1 d B% L4 V- jLPCTSTR lpszCommand, //MCI命令字符串( M5 b! }5 F) @# H( p, w6 q+ R% E
LPTSTR lpszReturnString, //存放反馈信息的缓冲区
, R S! s6 f& [% O9 c% Q0 c. hUINT cchReturn, //缓冲区的长度
3 c# I1 ` G6 {% e4 |HANDLE hwndCallback //回调窗口的句柄,一般为NULL% F4 j: Y7 g( n
); //若成功则返回0,否则返回错误码。
1 Q1 B0 u3 }8 t, a$ a" ]该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:) t5 N9 S2 C9 f2 O# U
BOOL mciGetErrorString(& d P: e r l8 h- [
DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码
7 i, S, y1 n& b7 U" n" d1 xLPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区
7 S0 ^! o# f* j0 L' sUINT cchErrorText //缓冲区的长度% I/ F0 M9 z S3 k: @0 V
);
- ~+ ^$ a5 x1 X' W$ D |
|