|
|
原文:http://www.cnblogs.com/cltsq/articles/api.html0 M# L: p9 v/ M; ^$ e3 ~7 s( t, \
1. API之网络函数 * A) l4 }' E" \0 r$ u3 b, L. Q
WNetAddConnection 创建同一个网络资源的永久性连接
% r9 h6 f$ g5 d8 FWNetAddConnection2 创建同一个网络资源的连接 8 B( |. M! m' v1 _+ w% _9 Z
WNetAddConnection3 创建同一个网络资源的连接
+ j" p f z( e2 a8 E* I% L! Z0 R( hWNetCancelConnection 结束一个网络连接 5 `1 E$ D! B5 w# |1 p/ }+ Y. z
WNetCancelConnection2 结束一个网络连接 * W4 C: J4 n/ C3 f# E
WNetCloseEnum 结束一次枚举操作
) w7 K) l0 v) @* G7 UWNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
. f! w! o7 K E: p( Y3 ZWNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
, m0 Q( q( @7 n6 P! ]- xWNetEnumResource 枚举网络资源
% ?! c9 J. V" I9 o4 | ]WNetGetConnection 获取本地或已连接的一个资源的网络名称
; d/ `3 M) m2 V5 T. b. QWNetGetLastError 获取网络错误的扩展错误信息
9 P/ {5 x3 @$ S4 P0 e" {WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 . C5 s) u$ l; d0 S9 L% r* l) q
WNetGetUser 获取一个网络资源用以连接的名字 % ?' }; b8 v: J0 i
WNetOpenEnum 启动对网络资源进行枚举的过程 $ h/ |( M7 a/ [% Y, t: u( O
2. API之消息函数
( s% G: F: s; ?BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口 4 m2 |7 g9 Y! P( {! n" K0 m, ~( o( l
GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 ! p) ^! Y+ c' [6 N9 {
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间
7 t, E) `7 K4 O# z2 E; F0 ?& HPostMessage 将一条消息投递到指定窗口的消息队列 + {. Y3 t) K5 v4 r2 k
PostThreadMessage 将一条消息投递给应用程序
1 \) f" p! r% |+ q; g4 I6 L5 v O& G2 ZRegisterWindowMessage 获取分配给一个字串标识符的消息编号
/ S( |9 a5 ~. s/ j) d" k9 ^ReplyMessage 答复一个消息
: X8 |2 F* g- D7 bSendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口
8 @) V" K- d/ O3 F, iSendMessageCallback 将一条消息发给窗口 3 @/ j6 t( Z/ `) q
SendMessageTimeout 向窗口发送一条消息 * J% D# w5 g d6 ^$ k. t
SendNotifyMessage 向窗口发送一条消息
: i* y( N9 j! U! |7 @3. API之文件处理函数 8 [! a4 e9 q0 U
CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等
; w2 q" w" }7 G/ [CompareFileTime 对比两个文件的时间 0 A F7 E; k6 t' `
CopyFile 复制文件 , m' u$ o. Z' B6 F! b) s" r
CreateDirectory 创建一个新目录
/ k( B- K1 l. O. r- }# G" ]CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 . G7 r- y0 k) w, _/ r3 Z# \, Y
CreateFileMapping 创建一个新的文件映射对象 8 [: m' [" c9 f2 H- W+ O _ J
DeleteFile 删除指定文件 , R4 C- U8 X8 O( f6 U3 n
DeviceIoControl 对设备执行指定的操作 5 T9 _8 G" b3 a
DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值
) o- q! W' t. p% i! RFileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值 % u; v' B5 }( G; R
FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间 ( S: |5 q( ^0 X1 g
FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构
0 ^' k# E# W% B7 Q1 g. s, J7 [FindClose 关闭由FindFirstFile函数创建的一个搜索句柄 " k p$ W. `& |& g; w
FindFirstFile 根据文件名查找文件 , u C h' w/ @" t! A8 Z0 W& X( u
FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 ) ]0 k- P0 H. F& Z q
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 # E$ I2 k# k0 o0 }; v7 X
FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘
4 L# S+ y4 W7 a. S2 P9 v) k9 h! NGetBinaryType 判断文件是否可以执行 $ }) S. f7 e# @5 \# I; K
GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 1 h9 y0 H6 z+ d- {% ?
GetCurrentDirectory 在一个缓冲区中装载当前目录
: r+ G: N) d2 X2 ]' H' i& bDWORD GetCurrentDirectory($ q2 w: Z% z' V
DWORD nBufferLength, //缓冲区大小
% Y2 e3 j6 l, [6 K5 K3 a LPSTR lpBuffer //缓冲区的首地址) P, F- u w; |! C( j, B! F
);7 D+ p; `' P$ z) g
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 9 L) i M7 V& e" D+ n8 v
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息 _: B; T6 {% O" h q) O
GetDriveType 判断一个磁盘驱动器的类型
6 w5 b3 T8 ^ Q% bGetExpandedName 取得一个压缩文件的全名
, V! A; t6 r$ f: X: HGetFileAttributes 判断指定文件的属性 ( X+ I6 X% s5 f! i, [
GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制
1 S6 P u6 [4 L0 TGetFileSize 判断文件长度 ' K0 S& S; S; _* |! V; b
GetFileTime 取得指定文件的时间信息
2 Z9 u; H( I/ X' U# U8 JGetFileType 在给出文件句柄的前提下,判断文件类型
1 a7 T0 f0 T- U! G( GGetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息 $ p& ?- Y1 Y' C H+ }
GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区 + o6 c/ \" G+ R" d3 L+ i
GetFullPathName 获取指定文件的完整路径名
9 ]2 c* w& N% D+ ^* N0 KGetLogicalDrives 判断系统中存在哪些逻辑驱动器字母 4 ]/ L. ]9 D0 Y( f0 ^2 j
GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 " i! ]1 o/ K h( I
GetOverlappedResult 判断一个重叠操作当前的状态 . ]- ~3 k& P( p' D/ o. {* X& @9 p5 T
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 4 c% v: y6 R- \7 p
GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表
" K4 \$ j6 w0 x7 U% d( l% vGetPrivateProfileString 为初始化文件中指定的条目取得字串
9 y8 `3 H8 M6 U" T: KGetProfileInt 取得win.ini初始化文件中指定条目的一个整数值 * S+ F4 H/ \2 {# X9 w2 b, P6 b' X
GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
5 b( ^8 s, T! Y1 P* S3 gGetProfileString 为win.ini初始化文件中指定的条目取得字串
( K9 V8 i- `+ P- ^GetShortPathName 获取指定文件的短路径名 $ P! _" Y: }. L
GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名
, b: S7 \" A! q, O' E& ^6 `GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 3 m* M- r4 e8 _9 m( f3 x* G; \- ~
GetTempPath 获取为临时文件指定的路径 1 F3 m6 i7 k4 R: L8 Z& s2 n- N
GetVolumeInformation 获取与一个磁盘卷有关的信息
: r% s" F4 Y+ m- Y) E- w: X, p/ BGetWindowsDirectory 获取Windows目录的完整路径名
# W* {* _* I& W* D. E8 ohread 参考lread
9 d- D. l- `. W, h, zhwrite 参考lwrite函数 2 w ~4 s! J, d1 l
lclose 关闭指定的文件 : f+ C& i5 y2 F+ D5 F8 d; i9 }
lcreat 创建一个文件
4 |( x$ h" r3 B, N, ]llseek 设置文件中进行读写的当前位置
$ s+ M$ i; b7 e5 F2 RLockFile 锁定文件的某一部分,使其不与其他应用程序共享
0 J/ \3 d- Q) j) x2 U% }5 Z' Z* |LockFileEx 与LockFile相似,只是它提供了更多的功能 # V1 V6 [" A( y/ S9 V* g1 c
lopen 以二进制模式打开指定的文件 ; P/ c' V( N2 f/ {! H: E. G
lread 将文件中的数据读入内存缓冲区 0 [% K% E9 a) c8 k: \3 `5 a. v [
lwrite 将数据从内存缓冲区写入一个文件 6 v2 ]. w! ~5 i7 _% F5 [
LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件 ) G$ {7 m4 K3 S( C* L- x
LZCopy 复制一个文件
2 X v5 j% x; G+ H) _LZInit 这个函数用于初始化内部缓冲区
0 q4 }/ \: `7 }( I5 @+ {LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件 ( c/ @' W$ n/ O% L3 L2 _
LZRead 将数据从文件读入内存缓冲区
% v% W7 `; u- j6 |8 H' J5 uLZSeek 设置一个文件中进行读写的当前位置 ' O4 T. {, c8 {% H: _0 ?0 V3 [
MapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间
5 B% x9 e1 g) d6 R# u+ V: I) H2 XMoveFile 移动文件 0 D8 f. W0 z5 _7 y3 I9 W- [
OpenFile 这个函数能执行大量不同的文件操作 - G( V3 z) A. i' {
OpenFileMapping 打开一个现成的文件映射对象
* l" M6 T5 t; U H4 l8 HQueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况 & t; A2 k1 y; w
ReadFile 从文件中读出数据 : C$ u3 T$ O; E- q% v+ s
ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
% u0 H2 ~2 \ }4 a U$ RRegCloseKey 关闭系统注册表中的一个项(或键) 7 C; u- @# G+ p3 k. O. z/ g
RegConnectRegistry 访问远程系统的部分注册表
! e! I( h: m* b7 @RegCreateKey 在指定的项下创建或打开一个项
" Y2 [, d( {; a3 z. yRegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数 7 v* c9 s, |9 ]+ P% t
RegDeleteKey 删除现有项下方一个指定的子项
6 h8 [, T. b$ @/ [6 L8 N( \' qRegDeleteValue 删除指定项下方的一个值
- K, m3 w! V( R2 ]! N+ H/ S9 bRegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx 5 n! E) B A3 \9 q2 I6 F
RegEnumKeyEx 枚举指定项下方的子项
4 Z2 ]$ e7 A$ c* q) i2 zRegEnumValue 枚举指定项的值
b S7 g' C* k# j5 O1 C; GRegFlushKey 将对项和它的子项作出的改动实际写入磁盘 " ~3 @) Z$ s1 T5 } z1 k
RegGetKeySecurity 获取与一个注册表项有关的安全信息
; X$ l, M& u1 L+ J' KRegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息 / l) h3 f5 Q5 N V2 N1 ?. A# h
RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制 2 Z. ] k& h, b" V6 X8 C' C# W
RegOpenKey 打开一个现有的注册表项 / Y; N5 r+ u n
RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
/ ^' a7 u/ l# [RegQueryInfoKey 获取与一个项有关的信息 ) d: T+ {% b! D% ~; X( d- P
RegQueryValue 取得指定项或子项的默认(未命名)值 1 k& v$ F- V4 r, o. R
RegQueryValueEx 获取一个项的设置值
# P0 R# a" u+ n# ~: H# K& x" gRegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
/ K( j4 t7 B6 {$ cRegRestoreKey 从一个磁盘文件恢复注册表信息
2 A0 k, S8 q( Y: VRegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件
. @& U6 C) f. [2 v" Y* RRegSetKeySecurity 设置指定项的安全特性
* Y( Z3 s+ X+ z) qRegSetValue 设置指定项或子项的默认值
, n0 B! Z# z1 e2 e( x3 v4 y. u+ eRegSetValueEx 设置指定项的值
, l5 @5 D$ n2 R0 |RegUnLoadKey 卸载指定的项以及它的所有子项 " Z* K: M X5 u" |$ P
RemoveDirectory 删除指定目录 4 {2 j- R2 C/ Z3 }7 Q- o
SearchPath 查找指定文件
& T) p+ B+ J. y' F' `: HSetCurrentDirectory 设置当前目录
3 @/ C* T8 S4 rSetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾 % l# w: _3 t( M1 A1 Q& K1 }" g# X
SetFileAttributes 设置文件属性 # S- k, |( C2 b1 P$ i& t* J
SetFilePointer 在一个文件中设置当前的读写位置
% b% R$ H& R2 eSetFileTime 设置文件的创建、访问及上次修改时间 3 }$ r* o: _' D. y7 L& q3 F
SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果
/ o% G7 i; x) S6 K* WSetVolumeLabel 设置一个磁盘的卷标(Label) - G( K5 _% G/ v( b r4 P8 R+ N
SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构
( C6 K% o0 h* |UnlockFile 解除对一个文件的锁定
* k% j1 |% R# L- j+ }6 s+ oUnlockFileEx 解除对一个文件的锁定 & X U% k$ T# i, R. Q2 {
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射 & u# T2 v8 E: H5 G4 C
VerFindFile 用这个函数决定一个文件应安装到哪里
( ~7 u7 L9 d4 p/ h) CVerInstallFile 用这个函数安装一个文件
( [# b' N7 E8 r- G$ M8 D( n7 TVerLanguageName 这个函数能根据16位语言代码获取一种语言的名称 e( e2 e2 d/ K2 F$ D# x
VerQueryValue 这个函数用于从版本资源中获取信息
! n( n. K' O- ^6 L" r2 fWriteFile 将数据写入一个文件 ! Y+ B# W1 m9 V* |
WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调 ) z3 d& l8 v! W; j1 k
WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值 1 v* d# T* u+ y
WritePrivateProfileString 在初始化文件指定小节内设置一个字串
( U8 p0 i( U! L& ]6 s5 ZWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值 . Y( F D9 A( h5 Y& R- @8 a
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串
( Z, \% T( _& i4 p4. API之打印函数 : n6 Q1 ^) x. |- J
AbortDoc 取消一份文档的打印
8 q" ~1 K) k* W$ gAbortPrinter 删除与一台打印机关联在一起的缓冲文件 " ^) v7 W& v7 [) k
AddForm 为打印机的表单列表添加一个新表单 8 i3 b# R5 s: R
AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
; Q/ ?9 U" `! TAddMonitor 为系统添加一个打印机监视器 & } }% d; O# ~$ z
AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口
b" B; _$ ?! h: B: w% \! V% fAddPrinter 在系统中添加一台新打印机 ( C! ]0 o7 a# k8 S: }( H
AddPrinterConnection 连接指定的打印机 ; X6 |6 Z: N! O* Y- v
AddPrinterDriver 为指定的系统添加一个打印驱动程序 7 i1 n2 d7 W3 s, C
AddPrintProcessor 为指定的系统添加一个打印处理器 ; B9 k3 C( ~9 f" H% u* K
AddPrintProvidor 为系统添加一个打印供应商
& u7 [$ k6 ~/ @' D; K# r! ^, X: gAdvancedDocumentProperties 启动打印机文档设置对话框
# Q! P T/ K5 I; X8 z" SClosePrinter 关闭一个打开的打印机对象
4 ^: c7 b( U# U: y- @, r( T8 dConfigurePort 针对指定的端口,启动一个端口配置对话框
9 j* \& a- G1 ?9 C8 ^* L) _ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
& D" I& V' t2 W; P. G) b6 UDeleteForm 从打印机可用表单列表中删除一个表单 : x* Y2 o% E( |
DeleteMonitor 删除指定的打印监视器 7 m9 o9 ^+ n) m( ]2 k$ i
DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口 1 \ ~* D$ q2 A
DeletePrinter 将指定的打印机标志为从系统中删除
" q. P9 O3 W: |$ D$ DDeletePrinterConnection 删除与指定打印机的连接
' m5 a! s4 u( GDeletePrinterDriver 从系统删除一个打印机驱动程序
9 ^7 a! d/ ]; ?, F) Z8 ~1 v% |6 E& ?DeletePrintProcessor 从指定系统删除一个打印处理器
/ t( _0 t% p4 i5 N" t: s3 PDeletePrintProvidor 从系统中删除一个打印供应商 8 Q. J# \7 a+ D+ ^2 u, F, [$ A
DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息
$ o' q7 `$ i; B2 PDocumentProperties 打印机配置控制函数 ) f8 Q) U, T& J- z5 q+ u4 c9 R8 ~
EndDocAPI 结束一个成功的打印作业 9 Z7 _( \; z6 r* w# J! @/ I0 q& s
EndDocPrinter 在后台打印程序的级别指定一个文档的结束 6 z* {6 ?: v7 V2 G
EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页 0 A' `( X9 [; W5 B( V% @! X, G
EndPagePrinter 指定一个页在打印作业中的结尾 6 `* [# W; h9 t9 A( x% G% N
EnumForms 枚举一台打印机可用的表单 & f# O5 [) ?- ?- i- t3 Z& [
EnumJobs 枚举打印队列中的作业 / _& K, E4 [- E
EnumMonitors 枚举可用的打印监视器 " T7 E5 M- y2 L+ u: p
EnumPorts 枚举一个系统可用的端口
0 X6 E2 @3 ^2 ~# T fEnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序
# s5 y5 z7 M) AEnumPrinters 枚举系统中安装的打印机
. }& G- N, R1 |, OEnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型
+ `3 z% |: q; j# F' G, y- |EnumPrintProcessors 枚举系统中可用的打印处理器
( R! y6 {. o% K5 r l0 e0 J1 d& eEscape 设备控制函数
E( O! r0 ~9 C( K' l7 aFindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 ' k8 C1 S- Q0 |$ L" Y0 J9 w
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化
+ m3 M" a0 Z7 P. L4 F. |FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
( T7 s! n d8 @, [3 |: M9 n! s4 V, CFreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区
( [/ f4 ]% ^2 X- _! I! u iGetForm 取得与指定表单有关的信息 3 l0 R# d2 y. P9 y5 M
GetJob 获取与指定作业有关的信息 ) U& V. T" J) Y5 u5 M+ j" R* c
GetPrinter 取得与指定打印机有关的信息
: ~6 c, z N: G* o6 L h& M2 ~GetPrinterData 为打印机设置注册表配置信息 ( o `* k% F8 {1 P! _/ n3 m/ {% X
GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息
q, t0 y+ n/ W5 e) `# t& gGetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么 + c" T. ]' X- C7 E
GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录
2 K9 ~8 ^, z& l4 x; kOpenPrinter 打开指定的打印机,并获取打印机的句柄 , ]1 t, a. h# g2 H! l# D
PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框
! o: |/ O7 r+ F; W) BPrinterProperties 启动打印机属性对话框,以便对打印机进行配置 $ _7 V* C- G7 l/ v! k
ReadPrinter 从打印机读入数据 - g; P' S u- H5 o! k
ResetDC 重设一个设备场景
. e9 D. |/ J2 [% |ResetPrinter 改变指定打印机的默认数据类型及文档设置
2 I; s6 T0 ~9 _, j, C$ fScheduleJob 提交一个要打印的作业
1 m8 ~" j: p: \SetAbortProc 为Windows指定取消函数的地址 4 N* A9 V4 a' \& g5 Q1 I
SetForm 为指定的表单设置信息
6 r0 O: t8 G$ e+ O h* {- h6 nSetJob 对一个打印作业的状态进行控制
9 {, N1 { ^# d6 K7 sSetPrinter 对一台打印机的状态进行控制
! m/ p( ^$ E% x3 k- Q- ?7 RSetPrinterData 设置打印机的注册表配置信息
Z$ }4 f" h) l8 t- y6 JStartDoc 开始一个打印作业
9 I( Q1 S( ?4 @+ z; n( H! DStartDocPrinter 在后台打印的级别启动一个新文档
0 y8 U4 g4 j }1 M* r5 A) |4 rStartPage 打印一个新页前要先调用这个函数 - q" z' e8 a) p3 o- Y
StartPagePrinter 在打印作业中指定一个新页的开始
1 Q! \( Q. F5 ^ k6 Y9 S6 A' U8 QWritePrinter 将发送目录中的数据写入打印机
8 q0 k8 D! u8 L# V/ T" c4 P! w5. API之文本和字体函数 . L1 M) v- E8 ]9 i$ A! d
AddFontResource 在Windows系统中添加一种字体资源
! Z3 R8 E4 L8 z- `" \: ECreateFont 用指定的属性创建一种逻辑字体
% [* P$ q, M" H0 X7 q# @CreateFontIndirect 用指定的属性创建一种逻辑字体 / Z( `+ c1 d3 D$ a* h5 O
CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统
$ m3 {( E1 D, T1 m8 s# DDrawText 将文本描绘到指定的矩形中 9 z1 z( i; v+ N5 z+ ]; Y
DrawTextEx 与DrawText相似,只是加入了更多的功能
9 s' @8 }+ @4 g, H2 TEnumFontFamilies 列举指定设备可用的字体
! A4 a" p! W" N p3 NEnumFontFamiliesEx 列举指定设备可用的字体 ( E! z; [2 G4 p% s S/ J2 B
EnumFonts 列举指定设备可用的字体
" _# p! ?- O5 Q+ E7 W$ aExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
6 A; H2 O6 k: |$ y6 OGetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小
# f5 c, x+ b$ e9 o2 BGetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 + C/ ^: m- P( E: A) h1 Z% l
GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸
' q+ y. a8 K Z& mGetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串
* \* u: { e, ]GetCharWidth 调查字体中一个或多个字符的宽度
1 |% L6 W, {# y; F2 }GetFontData 接收一种可缩放字体文件的数据 " y# G5 \0 h* p# m8 K5 Z' h) e3 P
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
' {$ @' `: K( D+ W+ F6 VGetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 1 c! i, \1 v- D- {: l8 A* J
GetKerningPairs 取得指定字体的字距信息 6 |5 c7 {. k; S ~ q$ O/ V
GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息
5 H4 q- ?- y6 L1 T' |" _) WGetRasterizerCaps 了解系统是否有能力支持可缩放的字体
; D8 w6 r3 U) p4 k d3 ~GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 ! M0 s B9 o0 r3 P# g: l4 s
GetTextAlign 接收一个设备场景当前的文本对齐标志 6 p1 \* X1 @* M& b' a
GetTextCharacterExtra 判断额外字符间距的当前值
, E# ]; ~5 b, O: u4 S' L( Y0 h7 TGetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
/ ?+ J1 p0 y- G0 o P& I3 HGetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息
T2 y( Q$ @5 y5 k! _GetTextColor 判断当前字体颜色。通常也称为"前景色"
) \9 D( g3 { k0 c% W# y8 l5 |GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息 & y7 c7 V- q: [: K# n3 l0 v
GetTextExtentPoint 判断一个字串的大小(范围) \" A# } c5 ~4 [4 h
GetTextFace 获取一种字体的字样名
# o i0 g5 i8 Z$ k% W0 IGetTextMetrics 获取与选入一种设备场景的物理字体有关的信息
9 j6 f! C. s9 j1 e% ~- F( X' B& [GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 5 W7 J, d4 S' ]- J2 O9 a/ [: |5 m/ x
PolyTextOut 描绘一系列字串
8 r, K2 m, e4 v5 k: RRemoveFontResource 从Windows系统中删除一种字体资源 ! S( q' u, l" v7 `/ m3 v1 |! @
SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 4 j; K G) P! L2 n. ~/ D# R
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置
* N" R3 ]& K1 h0 [! YSetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距
* s, j% J) d' y9 A1 ZSetTextColor 设置当前文本颜色。这种颜色也称为"前景色" * L; h" k# R" U- ^( Y. [# \
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理 ( B. ?5 R8 |5 I+ K6 m" E
TabbedTextOut 支持制表站的一个文本描绘函数 ' s; u& ?8 j' [) L* B
TextOut 文本绘图函数 + C0 [; C0 |8 U* y" P
WINGDIAPI BOOL WINAPI TextOut(
* R6 E9 K" T' X# rHDC, //输出设备
1 _+ ]# W' w1 \int, //输出的横坐标
6 u {" z2 U: S3 f. I/ M+ xint, //纵坐标
& X$ s/ {1 m7 H/ x- P, {LPCSTR, //输出的文本str
$ c2 ]+ [* p1 Iint); //文本的长度:lstrlen(str)
* O- t: P6 l2 {3 I/ Q; u6. API之菜单函数 8 L/ I2 q. t9 V" r0 t
AppendMenu 在指定的菜单里添加一个菜单项
& _& s1 o* B {! u- `6 g+ XCheckMenuItem 复选或撤消复选指定的菜单条目 # A+ | D! o# E S1 R
CheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 3 n" s }/ t% E T) A D
CreateMenu 创建新菜单 C0 C1 p# k+ E9 m$ n" D+ {3 J' x
CreatePopupMenu 创建一个空的弹出式菜单 ( v, I9 B/ z. ^! [6 [) T' u" w0 U* e
DeleteMenu 删除指定的菜单条目 4 ?0 e2 t' Q7 b* p) R
DestroyMenu 删除指定的菜单
, S7 ?/ t* U9 \( N) e) U8 X: ADrawMenuBar 为指定的窗口重画菜单
. K0 F8 S7 _, CEnableMenuItem 允许或禁止指定的菜单条目
4 d0 g5 G% l' y$ j% `GetMenu 取得窗口中一个菜单的句柄
" T2 C5 b5 {) |( QGetMenuCheckMarkDimensions 返回一个菜单复选符的大小
7 {: `9 U ] k8 k" {GetMenuContextHelpId 取得一个菜单的帮助场景ID
8 V& Y+ F/ `+ Q0 o3 `! bGetMenuDefaultItem 判断菜单中的哪个条目是默认条目 - w4 Y. g: l1 t
GetMenuItemCount 返回菜单中条目(菜单项)的数量 0 x% ]! B" v& Z9 P- j( b
GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID
3 h' U0 n7 k; d+ zGetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息
) I1 V. R0 }. m, x% EGetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息
( K4 R/ m1 x- G% SGetMenuState 取得与指定菜单条目状态有关的信息
. s. @' c6 D3 U# R' ~& H6 i0 YGetMenuString 取得指定菜单条目的字串
7 S2 `4 Q4 f' g3 K. B: nGetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置
% G! ^0 M1 ~" u* o& w! _" O4 Q" UGetSystemMenu 取得指定窗口的系统菜单的句柄
+ c$ t+ `) |% ?1 B6 n) K4 SHiliteMenuItem 控制顶级菜单条目的加亮显示状态 / d4 |) k2 T" x/ m y7 H
InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动 * L: D- T5 q. G& G6 A; {/ U
InsertMenuItem 插入一个新菜单条目
3 X' }0 n) v9 F2 n' d, p5 FIsMenu 判断指定的句柄是否为一个菜单的句柄 ! t" c3 F% R6 i) M6 r+ S! ~* h
LoadMenu 从指定的模块或应用程序实例中载入一个菜单 " E) F9 C/ ~" x/ l! ?- {
LoadMenuIndirect 载入一个菜单 % _3 j9 j, d2 L+ f$ d
MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 2 t" [8 \1 x4 Z6 N
ModifyMenu 改变菜单条目 - Q3 {" z8 K8 ^* N- T, `- D/ b
RemoveMenu 删除指定的菜单条目
" D) o, [7 x/ V5 G! z' p! |SetMenu 设置窗口菜单 - W! ~0 f- T6 J& M
SetMenuContextHelpId 设置一个菜单的帮助场景ID
+ g" Z3 c/ d. p! KSetMenuDefaultItem 将一个菜单条目设为默认条目
2 q3 k3 K. u% O2 O; NSetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√) 2 ]* F0 _% Z4 D! |0 _8 z4 [, X! l
SetMenuItemInfo 为一个菜单条目设置指定的信息 ( n' h% D1 A; f9 f) h$ f
TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单 / }$ P X# A6 J# U8 e. ?
TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能
. ^2 t2 \ s, R+ x9 {7. API之位图、图标和光栅运算函数 7 h: H+ T" V. n* S
BitBlt 将一幅位图从一个设备场景复制到另一个. _% [4 i; t5 x* L; |6 n. p
WINGDIAPI BOOL WINAPI BitBlt(
9 \6 B/ S* K" q! uHDC, //目标HDC# x+ y7 U8 ^; x9 K. S
int, //X1
- V+ K# e1 \& m D. L0 P! c4 Cint, //Y1
1 z" K1 X8 E Iint, //width
2 @5 Z+ N; X1 L, C5 J0 qint, //height
' _! U3 K: Q. m3 a1 x' bHDC, //源HDC6 K1 d" C; J: A; e* ^
int, //右边的距离# p3 [5 ~+ P$ R* E( G) Q
int, //??0 m1 n( e. d. F+ K/ Q' r" w
DWORD); //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
# R) O& n( U6 ~4 K: W4 L* BPATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS; a% S3 V; {7 B
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
. K$ v" u( W1 r! g8 rCopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作
4 }# ?/ M k! ?0 \) l' kCreateBitmap 按照规定的格式创建一幅与设备有关位图
$ F( }. R) \% W8 ], }CreateBitmapIndirect 创建一幅与设备有关位图 8 s2 ~0 \) i! J+ ]! c, N q
CreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容 & `3 e, a6 N0 t, M8 t% _$ C! u
CreateCursor 创建一个鼠标指针 / W" B; V2 Y' g; |! P3 l
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图
9 e6 d K' ? YCreateDIBSection 创建一个DIBSection - X% R$ \9 ]$ D' C/ Q0 e
CreateIcon 创建一个图标
+ l) x" g% b z: ]CreateIconIndirect 创建一个图标 * k9 q% b% J* Y. ]* D
DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源
$ o$ E0 r( Y$ [7 ^DestroyIcon 清除图标
$ Z1 `) J0 A) k5 P, iDrawIcon 在指定的位置画一个图标 " K% z, M6 I4 \) T/ s
DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
8 E4 v& o6 O1 E1 A5 T8 _ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
; I6 J8 r7 W2 ^. V' ~ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来
* @" @7 c. p" o4 @: xGetBitmapBits 将来自位图的二进制位复制到一个缓冲区 $ @+ ^ K0 A6 L* O( Z' R
GetBitmapDimensionEx 取得一幅位图的宽度和高度 % u. W6 n, V& R7 ~% \
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息
( u1 z! T5 W* g2 s, bGetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里 - r, }& m6 J+ w; z
GetIconInfo 取得与图标有关的信息
1 N9 U+ Q+ w" G7 \6 n7 lGetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式 ) b: k6 a+ `. i+ t0 b, Q
LoadBitmap 从指定的模块或应用程序实例中载入一幅位图
) E9 ]1 v/ z+ D2 @) x$ MLoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针
. [! I# S( e$ r2 |& j: GLoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 7 Y3 c$ |) A$ S1 e) J' M) X0 n
LoadIcon 从指定的模块或应用程序实例中载入一个图标 5 Z+ a0 e& _: M5 }- G' m' M
LoadImage 载入一个位图、图标或指针 ( m: M& z s+ n8 T9 }. i
HANDLE LoadImageA(. s e" ?5 G0 _1 w6 w2 S
HINSTANCE, //当前实例句柄:AfxGetInstanceHandle()1 H+ F! p5 n8 E2 I5 b# s
LPCSTR, //资源所在的目录:c:\help.bmp0 Z% Y0 @& x. n# J, u
UINT, //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE. l7 y" |( S4 z
int, //& X3 z' t- o4 f
int, //
, l" m4 Q3 s4 d7 L( d% qUINT); //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|4 e% w' Z8 @$ Z# D9 {) R4 F* x
R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|" Q3 N0 c" O y2 C! c9 l! S; B4 F
LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED9 i" O5 b1 I; p1 B! `
MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理
, r# t- y d3 P# ~& yPatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景 8 U8 w+ M4 d" \" t
PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
5 _3 Y+ r2 w3 g3 M6 q4 m/ q% wSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 * {( P$ r; n2 U
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位
/ z8 B; q5 p" p( h, g. ^! E# F# Y6 ^7 M" TSetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息
8 |& q1 b% @+ s! d8 P- x2 D5 ]3 U4 SSetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里 $ C2 m$ q) x$ A! M6 K. q# ~" F
SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备 - |/ q) n. k; k- @7 j; g" @# p
SetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 8 A, ?. @4 L" h: ~
StretchBlt 将一幅位图从一个设备场景复制到另一个
6 W6 I+ U5 @7 v. G; BStretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景 ' v7 ~/ h% D. v
8. API之绘图函数
+ k2 }1 g# t/ _8 R% K: u" A6 y' |AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
$ ^3 N- E/ t5 `. N* A& KAngleArc 用一个连接弧画一条线
9 d& [4 O( D+ F I8 q d% C/ lArc 画一个圆弧
0 U4 n) H% U# n6 c) m3 H' XBeginPath 启动一个路径分支 ; Q1 [4 k; Y9 f9 B2 ~) t
CancelDC 取消另一个线程里的长时间绘图操作 / ^! m$ O7 L. ~/ {, x, k
Chord 画一个弦 8 w# e: ?2 m3 Q, E; D
CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 6 S) y3 i1 ]5 K4 v6 [+ a
CloseFigure 描绘到一个路径时,关闭当前打开的图形
; J( h" s O, Q6 ]. _CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 % f) x; Y0 J# F7 H9 X2 Y; X# V3 U
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
/ k. Q" L7 t. P1 V% N5 W+ _4 KCopyMetaFile 制作指定(标准)图元文件的一个副本 - U) D# W8 a6 w: ~8 g& ]) q" X3 x# i- f
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子 9 X5 i8 ^, x+ G/ w1 A, W6 H& g
CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)
! [$ S. d$ W ~/ L# z# q" u# oCreateEnhMetaFile 创建一个增强型的图元文件设备场景 " n& f( ^5 b) i9 I' Q
CreateHatchBrush 创建带有阴影图案的一个刷子 4 _8 F3 I( B$ w
CreateMetaFile 创建一个图元文件设备场景
' I8 g4 X0 g" q% ~3 V$ X5 KCreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
" k- s {+ [3 _" Z7 GCreatePen 用指定的样式、宽度和颜色创建一个画笔 3 V) ^, p# U% x& h5 B
CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔 9 W2 V: ?& U; F/ `
CreateSolidBrush 用纯色创建一个刷子 " w4 z/ d+ z8 w1 \( Z
DeleteEnhMetaFile 删除指定的增强型图元文件 2 i7 [' o4 S3 r- z
DeleteMetaFile 删除指定的图元文件 ! z5 Y) u, s5 W% V w: X
WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放9 h( Z# E1 S: O
DrawEdge 用指定的样式描绘一个矩形的边框 / |2 J; A8 ?. x2 M) u5 T
DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
4 z W, U2 N% X6 A! lDrawFocusRect 画一个焦点矩形 ) H) O) ?, g& F/ w3 S# f
DrawFrameControl 描绘一个标准控件
& k; A& H& R2 ^1 X, U" M1 LDrawState 为一幅图象或绘图操作应用各式各样的效果 % g) R8 G m1 q3 e! x( M1 {+ Q
Ellipse 描绘一个椭圆,由指定的矩形围绕
: W9 [" f" d0 d/ e! `% P: m& V5 k3 Q yEndPath 停止定义一个路径
4 T q6 X' U7 a0 EEnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录
! j3 o7 Q. i5 S. r7 LEnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
7 \8 }2 ~; u' P3 c1 B8 s0 Y6 J# [EnumObjects 枚举可随同指定设备场景使用的画笔和刷子 : _* U" O/ ]& @$ Y1 l
ExtCreatePen 创建一个扩展画笔(装饰或几何)
1 [1 f' u/ h0 sExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
; h4 p$ D2 g/ B$ d3 u# pFillPath 关闭路径中任何打开的图形,并用当前刷子填充 : E0 r9 M* n8 P, N$ C. E: i) i* ^9 ?
FillRect 用指定的刷子填充一个矩形 5 w. `% H @& s0 }
FlattenPath 将一个路径中的所有曲线都转换成线段 8 S8 D' j- A7 I$ v ]5 B* A
FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域 2 z# W; j q: l5 P, w
FrameRect 用指定的刷子围绕一个矩形画一个边框
( D% ]; R$ U# Y4 k6 Y& R1 FGdiComment 为指定的增强型图元文件设备场景添加一条注释信息
# G% L; w/ p1 `; t' ]GdiFlush 执行任何未决的绘图操作
$ C) |& T% ^9 E7 c- J0 gGdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 9 N! V$ A( [7 Y: E6 K
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列
) ~3 |; S6 B6 S0 [GetArcDirection 画圆弧的时候,判断当前采用的绘图方向
8 H- b7 l- @6 C0 bGetBkColor 取得指定设备场景当前的背景颜色 ( Y% T4 Y. T% Y5 S# e
GetBkMode 针对指定的设备场景,取得当前的背景填充模式
* A# b+ a; a; s2 F3 ^2 d1 e" R; xGetBrushOrgEx 判断指定设备场景中当前选定刷子起点 & x: }9 M( @9 h5 p
GetCurrentObject 获得指定类型的当前选定对象
& O9 I, Q" o/ D8 TGetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置 + X' O' W7 z' n
GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
; o, `, p# S: X0 ?! K6 XGetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里
) a% _2 m2 E* h7 X$ l) a9 T' wGetEnhMetaFileDescription 返回对一个增强型图元文件的说明 [7 B+ `8 B9 {( P
GetEnhMetaFileHeader 取得增强型图元文件的图元文件头 ! j" @( B( ?6 x! R6 Y5 K' v
GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板
5 I& x3 n( l! oGetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄
5 y5 _% p7 j) X, rGetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区
+ F; i2 W! k \! e, V, [ F$ jGetMiterLimit 取得设备场景的斜率限制(Miter)设置
% l. o+ _+ K8 }GetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
" v# b' s1 K+ R* ^3 MGetObjectAPI 取得对指定对象进行说明的一个结构 & U$ ^2 j8 }% l% i2 U3 w y
GetObjectType 判断由指定句柄引用的GDI对象的类型
0 R) W5 W# ]4 j2 G4 nGetPath 取得对当前路径进行定义的一系列数据 4 c4 [. j4 X3 y3 r, r5 W$ _
GetPixel 在指定的设备场景中取得一个像素的RGB值
5 k' A% w' A: K2 s, U bGetPolyFillMode 针对指定的设备场景,获得多边形填充模式
! M k: `- Q$ m( w+ rGetROP2 针对指定的设备场景,取得当前的绘图模式
4 o$ o5 ?! q' c# C% @) Y3 dGetStockObject 取得一个固有对象(Stock)
. {1 M' ?' b' _5 n& DGetSysColorBrush 为任何一种标准系统颜色取得一个刷子
: b# X6 N$ `' A5 ^3 t) OGetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件 - O6 ?9 f9 D* N$ r# j5 @( G" p
InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形
0 J. M6 Z+ G$ b; A7 Y, eLineDDA 枚举指定线段中的所有点
; U# h3 O( h+ fLineTo 用当前画笔画一条线,从当前位置连到一个指定的点 0 t6 Q2 O- M& q
MoveToEx 为指定的设备场景指定一个新的当前画笔位置 - E& Z, W" K6 @
PaintDesk 在指定的设备场景中描绘桌面墙纸图案
$ K: K9 S. {8 r$ \PathToRegion 将当前选定的路径转换到一个区域里 5 m8 ?& S- J; G
Pie 画一个饼图
& f, K7 Y8 q. [$ W# {2 k8 [# ^) lPlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件 % z5 q6 k; L' f! k3 b. ?2 O
PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录
$ }0 v5 H5 K' s, ?) ZPlayMetaFile 在指定的设备场景中回放一个图元文件
; l f- d6 b) d7 [3 cPlayMetaFileRecord 回放来自图元文件的单条记录 ! T7 g3 U5 Y; _2 @: E! n
PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
6 r4 U9 t9 | MPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成 8 d7 r, ^$ {- X5 d; x, \
Polygon 描绘一个多边形
1 l2 e' g) _& k3 ] e9 c3 c$ dPolyline 用当前画笔描绘一系列线段 3 p L) E. J" v* h! N4 o1 E
PolyPolygon 用当前选定画笔描绘两个或多个多边形
6 W( _. [* d( @. ^PolyPolyline 用当前选定画笔描绘两个或多个多边形
( U0 A5 w0 t; y* {! Y( V4 ORectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充 - r+ | v2 F& D
RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充
6 D; H9 x7 w. uSelectClipPath 将设备场景当前的路径合并到剪切区域里 # m! ^6 X: A0 ~; V0 `. f% S: d
SelectObject 为当前设备场景选择图形对象
( y% Y3 `; z5 a1 ~ B WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);5 t' i7 O* b9 Z
SetArcDirection 设置圆弧的描绘方向 # u0 h, ~1 q$ ~
SetBkColor 为指定的设备场景设置背景颜色 5 @6 f/ E8 x! {
SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
0 N% U' U: u1 }$ w& Q7 ^1 ~SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
9 i; W+ l8 K! W! oSetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件 7 ^6 L4 O G2 u! M* ]8 \
SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 4 }: p! z; b7 l* ~( j2 U
SetMiterLimit 设置设备场景当前的斜率限制
9 ~& ~6 e' G- T1 ^SetPixel 在指定的设备场景中设置一个像素的RGB值
L0 r6 T; y L! {; M; ESetPixelV 在指定的设备场景中设置一个像素的RGB值
8 Z6 h+ L$ C( j$ n+ Q; NSetPolyFillMode 设置多边形的填充模式
1 g+ E" I* @% Y" a1 a0 Z( rSetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致 ' `5 S a6 Z2 N. f& z7 `
SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件
. S8 L8 q* C1 T( yStrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域
( c# ]( n6 G/ t! N6 V9 ~+ W+ t; Z8 vStrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭 ( e5 _6 e0 L6 R0 T; @2 T
UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数
' |. u/ t+ x2 R0 F# F& [8 iWidenPath 根据选定画笔的宽度,重新定义当前选定的路径 / z, ?8 X6 k" j9 I: k! A# l/ o/ B
9. API之设备场景函数
& M9 g. ^6 L/ m) N0 D5 U3 U1 g- ZCombineRgn 将两个区域组合为一个新区域 : ^, {, e$ a7 G& b( I
CombineTransform 驱动世界转换。它相当于依顺序进行两次转换
* j6 D4 t( j9 d$ u5 r' y% XCreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景 ( ~) t' i3 g: P% n. e
CreateDC 为专门设备创建设备场景
% W. X5 a" f0 @" OCreateEllipticRgn 创建一个椭圆
~! c5 r ~) u! v, sCreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域 0 [: n# t& `0 @6 L) ~
CreateIC 为专用设备创建一个信息场景
- h: u' B, J& p: a ?CreatePolygonRgn 创建一个由一系列点围成的区域
4 C6 @; r8 c/ w; V/ HCreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的 ( `: i6 T: e8 ~ P- n: c! J: q) L& {
CreateRectRgn 创建一个矩形区域
u w4 G9 y; g( k% ^2 j7 q2 {CreateRectRgnIndirect 创建一个矩形区域
0 H( t; J0 s; x% B7 I5 E! ]CreateRoundRectRgn 创建一个圆角矩形 `7 o( k4 |( @% |6 }; n4 y
DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源
8 k9 _) s; `5 G1 E/ I5 YDPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 - E* U! [: ~3 _9 M
EqualRgn 确定两个区域是否相等
" Q, N* ~5 f7 s0 S% z2 t/ L# C0 NExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图
1 K1 ]4 _& W+ N2 L* w4 j0 u4 PExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域 % E/ _7 d2 i7 X2 |/ T9 T7 M+ \
ExtCreateRegion 根据世界转换修改区域 , ]$ d9 l5 r* V6 L1 N( e
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
" Z. P4 [% R) `$ ?9 q5 e/ m, D' B8 v9 oFillRgn 用指定刷子填充指定区域 9 U( F. l& \" q+ p3 B0 T
FrameRgn 用指定刷子围绕指定区域画一个外框 / f8 [! X$ t+ z
GetBoundsRect 获取指定设备场景的边界矩形
/ ]+ b% W* r+ U$ \3 U4 XGetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 . {' p7 t+ V3 m6 H& v
GetClipRgn 获取设备场景当前剪裁区 % @8 o6 a. ~" C0 h# K+ O* n
GetDC 获取指定窗口的设备场景
: s5 ]: E& X" yGetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 h+ N( I) b' p: U. x
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示) ; w/ X; @3 e( N/ @
GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息 6 w$ P/ [9 n- Y. B, V
GetGraphicsMode 确定是否允许增强图形模式(世界转换) ) n' e& t1 U, m. N& {, a4 W: ?( [
GetMapMode 为特定设备场景调入映象模式 & F# D! g) S$ l8 Y& J
GetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
( \9 t. l# ^4 k$ mGetRgnBox 获取完全包含指定区域的最小矩形
) L, Q, ]! g2 kGetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新
0 ~& H: u: u" ?7 @1 E1 ? R& m: uGetViewportExtEx 获取设备场景视口(viewport)范围
! D. H3 ~7 \5 m1 U7 l+ F# P* TGetViewportOrgEx 获取设备场景视口起点 % a' X- i0 J8 {0 z8 W! d3 T
GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景 $ d6 R0 Y" Y) C
GetWindowExtEx 获取指定设备场景的窗口范围 2 ~9 j0 I, M4 m
GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点
' L v( ^9 n- U) N$ y) z) @GetWindowRgn 获取窗口区域 5 n8 A' s+ B# ~5 ^
GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换
( r4 p) f5 E- oIntersectClipRect 为指定设备定义一个新的剪裁区
- {5 u- W( K& b( Q" bInvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画 p* o! C- F5 @0 E+ Y& a
InvertRgn 通过颠倒每个像素值反转设备场景指定区域 & p0 D* }& }6 Q3 L2 t% F
LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标
7 v" q C' N& g- b- Y9 F$ I' oModifyWorldTransform 根据指定的模式修改世界转换
0 _4 U! X4 r( ~8 G: C7 N' COffsetClipRgn 按指定量平移设备场景剪裁区 ) l7 ?5 C7 I+ b
OffsetRgn 按指定偏移量平移指定区域
" E3 A, i' S( W$ P& J N% m3 `OffsetViewportOrgEx 平移设备场景视口区域 ! S" i% I( z) U. T
OffsetWindowOrgEx 平移指定设备场景窗口起点
+ }1 t, e$ j* L _* i+ oPaintRgn 用当前刷子背景色填充指定区域 " ^# _; A; \6 g% P
PtInRegion 确定点是否在指定区域内
! I. I# }: [, t" F3 b2 D# _4 q ]PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)
+ P& e- _' x$ t& vRectInRegion 确定矩形是否有部分在指定区域内 # q! f; w6 {) n
RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内) 4 p3 z6 O% `' J0 @' _' }4 B
ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景 . ^- K5 ?; a! F2 e" |
RestoreDC 从设备场景堆栈恢复一个原先保存的设备场景 4 y0 r" C' p# s/ X% Z; X5 _
SaveDC 将指定设备场景状态保存到Windows设备场景堆栈 & @ A9 o$ b* b" J8 z+ w
ScaleViewportExtEx 缩放设备场景视口的范围 , C8 U: y! \- F4 x" P: }! S
ScaleWindowExtEx 缩放指定设备场景窗口范围 : F& u4 p+ ?2 @2 Y" d' G7 U
ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
% F% C! f5 h( C2 FSelectClipRgn 为指定设备场景选择新的剪裁区 # `6 E& }1 t) C' y; W5 B3 A
SetBoundsRect 设置指定设备场景的边界矩形 5 u( |, ]+ T. V2 E, i
SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换) 5 F' h; j$ W, [+ Y; `
SetMapMode 设置指定设备场景的映射模式 : p! K. r2 X$ G# k
SetRectRgn 设置区域为指定的矩形 0 Q8 U: \; S9 d: V9 B5 m
SetViewportExtEx 设置设备场景视口范围 4 J9 D! p' X) l; Y- q" B
SetViewportOrgEx 设置设备场景视口起点 . @1 x) F8 [) G! ^+ H$ V
SetWindowExtEx 设置指定设备场景窗口范围 - C" Q' h0 F# Z$ c+ r
SetWindowOrgEx 设置指定设备场景窗口起点 8 a- Y: J+ d+ M) o6 R f5 R$ |: g) W
SetWindowRgn 设置窗口区域
4 r) a, i* C# S% q1 `SetWorldTransform 设置世界转换
2 L5 H# M* p3 N5 q7 V+ U- M- mValidateRgn 激活窗口中指定区域,把它从刷新区移走 9 g" w- ` S; P+ `" ~
WindowFromDC 取回与某一设备场景相关的窗口的句柄 $ D; v; v: A( K" @
10. API之硬件与系统函数 & m9 P& V8 N: k! X9 |. S9 c' c0 Y
ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 S2 q4 F$ Y7 e( Y- b
Beep 用于生成简单的声音
( y/ q0 W, d8 I! UCharToOem 将一个字串从ANSI字符集转换到OEM字符集 5 o3 J; `5 t7 `' F) S) j
ClipCursor 将指针限制到指定区域 6 I- f, @: |. |6 i* N* W( G+ f0 o
ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
! L* }9 t, a. j4 p1 ], M: eCreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符
/ \. H$ @6 O( Q# w) V' D& E* [5 Y4 |0 }5 \DestroyCaret 清除(破坏)一个插入符 ( Z& p9 H S+ m3 n
EnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息
" M# F/ b$ z5 AEnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式 3 f- l/ p* ?/ V, R) z
EnumSystemCodePages 枚举系统中已安装或支持的代码页
2 |/ ^' ^' H+ r: t( pEnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置
/ n% Y) u; c! R1 mEnumTimeFormats 枚举一个指定的地方适用的时间格式
- W& _) Y: l4 o# [# pExitWindowsEx 退出windows,并用特定的选项重新启动
9 w L0 _; V* p WINUSERAPI BOOL WINAPI ExitWindowsEx(2 k4 X( r- s$ n/ K6 n' k3 A/ p& |
UINT uFlags, //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG
% N9 ?; p& U6 A( o- f$ v DWORD dwReserved); //06 T! F3 S: e+ P) t
ExpandEnvironmentStrings 扩充环境字串 5 h% P7 p6 w! ^5 |3 [/ `
FreeEnvironmentStrings 翻译指定的环境字串块
& c# d& }2 I7 n1 K9 FGetACP 判断目前正在生效的ANSI代码页
* }; K) ~& ~2 l! ?GetAsyncKeyState 判断函数调用时指定虚拟键的状态
" {8 i' y; v6 ^) z: w& O& rGetCaretBlinkTime 判断插入符光标的闪烁频率 % I. Q+ i) S F: g
GetCaretPos 判断插入符的当前位置
) \9 L2 R& q0 f, Q- G* zGetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域
7 L7 y# k3 W1 |: O( ]6 I _6 O6 RGetCommandLine 获得指向当前命令行缓冲区的一个指针 ; S( R% s0 \1 Z
GetComputerName 取得这台计算机的名称 + R. W6 L6 W6 Y; |
GetCPInfo 取得与指定代码页有关的信息
/ k& F0 W# ?, [* ?% M/ H- nGetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字
* w" {4 O6 j! e/ @GetCursor 获取目前选择的鼠标指针的句柄
- ]/ n; g" I( x, yGetCursorPos 获取鼠标指针的当前位置
! j/ Y9 h4 G4 U* L7 k+ M! _GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化
# ? e- }! g! ^! n: PGetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 ) j! W! C9 h) C" D8 d7 y( Z
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄
2 u+ D! \ Q. yGetEnvironmentVariable 取得一个环境变量的值
0 o2 C/ y5 A$ K; t! E) C6 kGetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件
4 g4 Q- R+ C1 `& E% \; F5 j: _4 RGetKBCodePage 由GetOEMCP取代,两者功能完全相同
2 x; {: }4 _" pGetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局 % z' \. D, i; N8 C* d- U" a8 i
GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
; f# v3 z1 n8 A& p# D1 aGetKeyboardLayoutName 取得当前活动键盘布局的名称
; e" U: u2 u$ y3 m+ tGetKeyboardState 取得键盘上每个虚拟键当前的状态 & F) U9 O S1 x8 \9 H
GetKeyboardType 了解与正在使用的键盘有关的信息 % W9 d' a: s9 X+ I7 M$ H& ?
GetKeyNameText 在给出扫描码的前提下,判断键名
" Q7 x! f# ? e' r/ @GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态
, V0 U4 F5 E5 ^# ZGetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
* S- D3 o h n2 OGetLocaleInfo 取得与指定"地方"有关的信息 5 w: Q& @0 G S; a3 W
GetLocalTime 取得本地日期和时间 ) G( o8 P) f# M$ F" u
GetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字
& {# y+ M& c: G1 T* ~GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
+ h5 U8 l1 e2 t5 u+ V3 e6 tGetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型 9 i7 E6 K: `) m
GetSysColor 判断指定windows显示对象的颜色 ! g& A) @4 u% J# U. c3 J* n$ G
GetSystemDefaultLangID 取得系统的默认语言ID
8 T6 h$ q+ c. ZGetSystemDefaultLCID 取得当前的默认系统"地方"
1 d% M$ l q- b1 ^GetSystemInfo 取得与底层硬件平台有关的信息
% H# ?: s- t: @& lGetSystemMetrics 返回与windows环境有关的信息 1 Y6 {1 L3 q8 S) b5 V1 x* @" l" H
GetSystemPowerStatus 获得与当前系统电源状态有关的信息
- e, H$ N7 @+ K' ^GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式
8 q3 t, C1 R4 UGetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步
" W J, Y- E0 {/ z& a5 @GetThreadLocale 取得当前线程的地方ID
* l. q) \" X1 u9 CGetTickCount 用于获取自windows启动以来经历的时间长度(毫秒) , S" A6 i# k* E2 q* D6 Y
GetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间
1 b, y7 B$ R" \" f2 `* C8 |3 gGetTimeZoneInformation 取得与系统时区设置有关的信息
% V# K' q* V; v! S) vGetUserDefaultLangID 为当前用户取得默认语言ID 6 Q3 T" x& M( f$ e, m. }, n
GetUserDefaultLCID 取得当前用户的默认"地方"设置
, h* l* d0 E- k, }GetUserName 取得当前用户的名字 1 f: U7 W3 B8 _+ A7 m" o7 T# T
GetVersion 判断当前运行的Windows和DOS版本 ' F: J) m8 J: ^, g
GetVersionEx 取得与平台和操作系统有关的版本信息 , \! \8 E- {0 d! o+ i A1 k
HideCaret 在指定的窗口隐藏插入符(光标) 0 o% E2 v: B, ?6 G5 @; D) Y
IsValidCodePage 判断一个代码页是否有效
+ J# T* x3 I" kIsValidLocale 判断地方标识符是否有效
- j5 r, R/ T$ a% T5 Z) P2 mkeybd_event 这个函数模拟了键盘行动 & o f) ~9 G/ P+ V
LoadKeyboardLayout 载入一个键盘布局
! h+ u8 i. t! F' [/ ] v3 RMapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 " s& B/ \- e0 |7 B) ]) Q
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换 $ b/ u. [5 {+ |; C* T0 h
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的
% g' j$ @! m; ?& }2 amouse_event 模拟一次鼠标事件
; o5 H1 d; E4 X. X$ d$ R2 BOemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态 F" w+ i* i+ ^% U2 a9 t) G
OemToChar 将OEM字符集的一个字串转换到ANSI字符集 ' c+ t( k- K& C6 z- x% z# h
SetCaretBlinkTime 指定插入符(光标)的闪烁频率
0 H8 _+ q+ B o4 v2 ~0 v8 _) v- NSetCaretPos 指定插入符的位置 4 X1 Q( h7 G+ Z0 I
SetComputerName 设置新的计算机名
0 a# O5 G7 F6 }; TSetCursor 将指定的鼠标指针设为当前指针
( C7 V5 }7 i) D) W, B5 p- \& L" MSetCursorPos 设置指针的位置
1 v& r- @+ E5 }. X" @5 z/ e3 sSetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间
! a, z! F5 W4 o8 t& ySetEnvironmentVariable 将一个环境变量设为指定的值 3 `# d9 F. B) d! H* j6 E V
SetKeyboardState 设置每个虚拟键当前在键盘上的状态
9 r6 ] x5 _ F* ]9 u s, SSetLocaleInfo 改变用户"地方"设置信息
; T9 R' n% H3 @1 T" USetLocalTime 设置当前地方时间
/ B9 |/ ~7 q; ~$ @% nSetSysColors 设置指定窗口显示对象的颜色 4 M, Y: S+ N2 \4 ]) W& k/ p
SetSystemCursor 改变任何一个标准系统指针 9 t# G$ _$ r9 e6 V, D% A$ `7 x
SetSystemTime 设置当前系统时间
- @" O3 ?( \: B/ C+ X$ DSetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 8 S) n3 p6 q1 @+ s5 |7 p5 B. x
SetThreadLocale 为当前线程设置地方 6 K8 z6 \- R. O- `
SetTimeZoneInformation 设置系统时区信息
2 T) L% s" r# Y7 KShowCaret 在指定的窗口里显示插入符(光标) * v* G4 I1 O& k$ X7 n
ShowCursor 控制鼠标指针的可视性
8 Q* {/ t( j J/ {* Z) [SwapMouseButton 决定是否互换鼠标左右键的功能 : j0 I3 e0 s, H' Y/ m* N2 P5 {' j( t
SystemParametersInfo 获取和设置数量众多的windows系统参数
4 \$ F# _, j7 c# M; b( y {SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
' n' A9 K4 x4 j$ }2 n1 dToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符
5 b4 I3 f. m- L* GToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符 ' o2 `: ~& b- b9 ?8 v
UnloadKeyboardLayout 卸载指定的键盘布局 6 U* e8 a! |& r: |
VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态
t$ |1 {4 f4 V" ^( L; A' w11. API之进程和线程函数
7 W( u2 ~$ T" b4 Q9 YCancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作 O' U1 e/ q* P% {4 Y8 U4 @7 X
CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 + h$ H; i# \6 ~. }( j
ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 0 Z6 N/ \3 y3 N5 u( `4 l& j: n
CreateEvent 创建一个事件对象 $ x" ^' V ^0 c- M4 d! J" q; u8 m1 R
CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人) ( ]/ @0 b8 k2 ]4 S9 u9 H
CreateMutex 创建一个互斥体(MUTEX) 0 S1 v c% ~3 w4 J3 o
CreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用 , ^( L: w `% g& M! y* _1 I' Z' b1 U
CreatePipe 创建一个匿名管道
' A6 V) j6 d6 gCreateProcess 创建一个新进程(比如执行一个程序)
3 Y9 Q8 K0 @ d1 j* m" eCreateSemaphore 创建一个新的信号机 2 B/ {' p' G( A* \: r7 K8 c9 A. i0 `
CreateWaitableTimer 创建一个可等待的计时器对象 , a e& v" G( l! @2 I5 P. T4 W9 D
DisconnectNamedPipe 断开一个客户与一个命名管道的连接 * E b0 B3 l) I: D+ I
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄 * e- z, p2 g& z9 T! [
ExitProcess 中止一个进程 ; j4 b2 N7 K8 ], @1 L! a
FindCloseChangeNotification 关闭一个改动通知对象 + u. H- N: D+ m, q5 o4 B6 t, D4 l" f
FindExecutable 查找与一个指定文件关联在一起的程序的文件名
5 A. K% D: @2 H! mFindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化
+ D4 E& |/ y3 i4 P4 QFindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 $ `8 A5 z. {& v( Z2 {* @- J4 _ R
FreeLibrary 释放指定的动态链接库
* Q- Z( [# c& F, CGetCurrentProcess 获取当前进程的一个伪句柄
3 t! i6 }; k6 G$ z+ mGetCurrentProcessId 获取当前进程一个唯一的标识符 3 b2 {1 G* Y4 k$ J! N2 {
GetCurrentThread 获取当前线程的一个伪句柄 3 A1 `" V; ~5 w) d! l0 @2 @
GetCurrentThreadId 获取当前线程一个唯一的线程标识符
8 ?; ? }! T( g. BGetExitCodeProces 获取一个已中断进程的退出代码 % _) y% a$ k4 P! S- ]/ B- r4 ~
GetExitCodeThread 获取一个已中止线程的退出代码 . ^+ P# o3 c/ y' u9 w. {9 ?' U
GetHandleInformation 获取与一个系统对象句柄有关的信息 0 I; k+ O; ^. \ N
GetMailslotInfo 获取与一个邮路有关的信息
( W4 o6 _& |7 O/ SGetModuleFileName 获取一个已装载模板的完整路径名称
2 M6 F3 m- I0 k" s1 QGetModuleHandle 获取一个应用程序或动态链接库的模块句柄 / }+ F- u6 {8 ?
GetModuleHandleA(LPCSTR lpModuleName);
8 e! _( a4 B: Z, SGetPriorityClass 获取特定进程的优先级别 J b. a& {0 D+ e% x" J+ D3 p; a
GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况
4 A2 I2 W# D/ L5 E; v/ W0 _( gGetProcessTimes 获取与一个进程的经过时间有关的信息 0 d- U W6 W8 {# r# _
GetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存
8 W" b. `5 e, P% ZGetSartupInfo 获取一个进程的启动信息
3 j5 d# T" J! r" E* dGetThreadPriority 获取特定线程的优先级别
; I- }' `( G8 J. }. s' U1 zGetTheardTimes 获取与一个线程的经过时间有关的信息
5 W* d4 o, {8 J% jGetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符 5 H0 }* X) [; H( u7 x& I$ f
LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
8 g, h% k# |1 G% [1 b% aLoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间
; {* f- d! Q% g" NLoadModule 载入一个Windows应用程序,并在指定的环境中运行 & t* j2 h+ B3 Q0 [
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回
+ x8 @$ G- V7 N2 M. @8 j: }. M6 JSetPriorityClass 设置一个进程的优先级别
& _: s# \4 f& j8 _1 QSetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序 7 q* t8 }9 G6 j/ a
SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量 4 q6 o$ ]5 L- R& F7 H( Y2 a' z; B2 T
SetThreadPriority 设定线程的优先级别 $ v& d1 d( v% x
ShellExecute 查找与指定文件关联在一起的程序的文件名
! H' `$ P6 Z p% I' e& M$ uTerminateProcess 结束一个进程
- A" l6 K* | ]6 DWinExec 运行指定的程序
! g8 P3 }- S1 ~9 g8 X/ G12. API之控件与消息函数 $ J a* m* N* D3 c; i
AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小
& F, H" X8 O2 F& @# n$ [AnyPopup 判断屏幕上是否存在任何弹出式窗口
% s1 N: r& x8 f1 l0 e3 o) uArrangeIconicWindows 排列一个父窗口的最小化子窗口
3 R* J$ c8 y6 h) ]$ TAttachThreadInput 连接线程输入函数
, b9 @2 W: P0 TBeginDeferWindowPos 启动构建一系列新窗口位置的过程 ) e, `% F8 s# Z" V9 X# ?+ o) n; U; Y# `* G
BringWindowToTop 将指定的窗口带至窗口列表顶部 - G }5 @, r* I$ Z7 V# S% W" }" o! X
CascadeWindows 以层叠方式排列窗口
3 f. p3 V# B3 [2 {ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 5 o: s) n" V* J! p8 I f2 D( ]
ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标 : v% f) d7 a4 f8 C. ^5 X1 B1 T
CloseWindow 最小化指定的窗口
7 `3 ~# G* y9 Y' j0 I' JCopyRect 矩形内容复制
' p8 [+ ?$ Z; t( l+ l4 k) VDeferWindowPos 该函数为特定的窗口指定一个新窗口位置 4 X1 x, D" M1 ^1 i% B! Z
DestroyWindow 清除指定的窗口以及它的所有子窗口
+ F3 L0 `: E* h( O+ fDrawAnimatedRects 描绘一系列动态矩形
6 z/ |. L3 I* mEnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入 % H/ h+ I1 |3 n2 H, y
EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
# C8 t) o; a. Z! B8 J FEnumChildWindows 为指定的父窗口枚举子窗口 2 l5 j. Y+ |. R1 ?6 ^8 q8 Q- w) E
EnumThreadWindows 枚举与指定任务相关的窗口 ! B& b5 W9 m! v, r1 h' X
EnumWindows 枚举窗口列表中的所有父窗口
* g4 o2 y% h: `# _. WEqualRect 判断两个矩形结构是否相同
- p8 J) u% \+ C) f( I8 @FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 7 z i) _! d. W- b. w& [
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口 ; f& _1 _$ K- z
FlashWindow 闪烁显示指定窗口
1 ]1 v" O- u, e s" T2 ^3 A6 k; {GetActiveWindow 获得活动窗口的句柄 ) Q; v+ U, T8 p$ T' x8 `
GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收) 6 U- O N0 ?( k
GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息
6 P' {( c3 B; ?" t' b- ^8 Y8 MGetClassLong 取得窗口类的一个Long变量条目
6 |8 H4 I7 [2 {- ~GetClassName 为指定的窗口取得类名
6 V# O7 o8 `. P* L( mGetClassWord 为窗口类取得一个整数变量
) f6 u! Z8 O/ ~6 vGetClientRect 返回指定窗口客户区矩形的大小 $ g/ V; k. ~7 }' L
GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
8 ?0 d; K3 y: X {6 ]GetFocus 获得拥有输入焦点的窗口的句柄 9 w% W# S/ b3 J
GetForegroundWindow 获得前台窗口的句柄 # P4 V$ F# h" a) S! {% s
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄
) H6 |/ q. S! e& Y, EGetParent 判断指定窗口的父窗口
' v0 o0 R- K1 M7 [GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 ( n$ y: e- c& X5 |* ]( t/ A5 e, f0 N
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 , h0 Z. l3 B& b5 e9 M
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 * H# h% F8 X: p5 v' F+ D- E; X$ Y' H
GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
* ?, n- {5 W* CGetWindowLong 从指定窗口的结构中取得信息 " ~7 c6 ?2 |0 f) x2 ]- i( `) B
GetWindowPlacement 获得指定窗口的状态及位置信息
2 v! i' d' V) C4 l$ V5 u* r) u8 JGetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
0 I9 O8 w: p& v7 ]& X& _2 @GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容
* a2 y# w2 F8 wGetWindowTextLength 调查窗口标题文字或控件内容的长短 / o8 r) s$ z* o$ |8 Y% I
GetWindowWord 获得指定窗口结构的信息 ' z! F1 \8 G4 \* ]" y7 P
InflateRect 增大或减小一个矩形的大小
2 T1 z$ S: J k. TIntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集
5 ~, K8 J9 C( L: ~# ]InvalidateRect 屏蔽一个窗口客户区的全部或部分区域 / b% a3 {! y1 M3 l7 z9 Z
IsChild 判断一个窗口是否为另一窗口的子或隶属窗口
# g( r! n. i$ k4 O" c9 a$ `IsIconic 判断窗口是否已最小化 # u! j. w9 F, } y; @$ w, W
IsRectEmpty 判断一个矩形是否为空 & c+ l3 s& q. C$ S# G+ p% O9 I7 E
IsWindow 判断一个窗口句柄是否有效
, h% \$ Z4 b6 z- ~: k+ jIsWindowEnabled 判断窗口是否处于活动状态 & `; X& U% T7 p0 A/ O5 i7 v
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 : b6 o3 X' t" ]7 P8 }9 N" }* v
IsWindowVisible 判断窗口是否可见
' p& v- l0 u1 H9 A# BIsZoomed 判断窗口是否最大化 ) E3 r9 R* d h5 ~5 k
LockWindowUpdate 锁定指定窗口,禁止它更新
; i8 Y# S8 p, m' V) H# `MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统
3 s- M$ K' i# u' Z' Y# s! sMoveWindow 改变指定窗口的位置和大小
8 |% E/ C% I3 KOffsetRect 通过应用一个指定的偏移,从而让矩形移动起来
0 t$ G' K& k! B, r0 @8 |OpenIcon 恢复一个最小化的程序,并将其激活
6 l$ H* w3 ]! A1 W. M4 J3 ePtInRect 判断指定的点是否位于矩形内部 $ m# E9 i' [- }( y! ^
RedrawWindow 重画全部或部分窗口 ! T: b* w1 B+ U4 P2 a9 R% q
ReleaseCapture 为当前的应用程序释放鼠标捕获 ! g) ^$ ^$ P% J! f, m# F z
ScreenToClient 判断屏幕上一个指定点的客户区坐标
" ^) O1 ?0 v1 c) W i& zScrollWindow 滚动窗口客户区的全部或一部分 ' i5 o" o/ E0 | C9 G! `* z* C! ^
ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分
: a) } c7 x" E. W, H1 USetActiveWindow 激活指定的窗口 $ H0 Y: r6 V8 C, r. Q
SetCapture 将鼠标捕获设置到指定的窗口
: \# [/ \' I- H' W2 cSetClassLong 为窗口类设置一个Long变量条目
4 h+ q* { W3 O n4 g4 q: NSetClassWord 为窗口类设置一个条目 ; h& r9 S& f# ?
SetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口
0 b3 R+ W7 x4 M+ V4 GSetForegroundWindow 将窗口设为系统的前台窗口 2 Y0 j b; e+ h' O- _& J+ B
SetParent 指定一个窗口的新父 7 q/ ?6 x7 k$ \8 o- L3 B
SetRect 设置指定矩形的内容
7 k2 L0 @0 C$ d2 GSetRectEmpty 将矩形设为一个空矩形 " M; O$ K& d* }2 V. N
SetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
u- m: d r) k$ }2 u5 G* w JSetWindowLong 在窗口结构中为指定的窗口设置信息
2 _ a0 Q3 r/ q6 H2 s- v3 t$ aSetWindowPlacement 设置窗口状态和位置信息 : ]8 j2 C/ h) ~( ~+ W: I
SetWindowPos 为窗口指定一个新位置和状态
/ ^# Y; Z4 Y4 aSetWindowText 设置窗口的标题文字或控件的内容 * v) l& O' ]+ w" O7 q4 J0 `
SetWindowWord 在窗口结构中为指定的窗口设置信息 ! h" l# A( [1 k: h7 R# i4 n9 D
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口 5 O: ?7 g8 J* a+ [) u
ShowWindow 控制窗口的可见性
1 E: T s, S# p$ L$ q, a$ JShowWindowAsync 与ShowWindow相似
: w+ C9 m: H' z! k9 sSubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果 ! f9 e/ p3 i2 w; y* I1 a$ k% q
TileWindows 以平铺顺序排列窗口
+ _% J0 B9 x) q4 K6 l6 `# p7 FUnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果
# T) @0 M; C. G0 ]& z7 N$ ZUpdateWindow 强制立即更新窗口
5 M x8 Y) b( ZValidateRect 校验窗口的全部或部分客户区
/ p$ R7 p3 i3 M, I9 ^WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口+ C% Q' K C. _& [8 B, z
高级音频函数—参看《VC++ 编程指南.chm》11.6
1 s' O" y6 e) ?' ~& x$ Q Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。; R0 R7 {- s: ^( i% j
BOOL MessageBeep(UINT uType);; Q+ Y2 h6 i' D+ B$ u5 O
该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。
: s: d1 w3 E* b% A. T# C0 I参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。
: A/ s+ s) o0 ]/ @级别 ! h6 V, s! w" |: V3 \
| 描述 - m- q! A2 v( s% @0 t6 l8 ~) V3 ?& u
| -1
3 ]) K) s. _! S0 x- a; f* P | 从机器的扬声器中发出蜂鸣声。
2 v) \( @9 F7 d' Y | MB_ICONASTERISK
9 J, ?) o9 v" \3 q% \! h | 播放由SystemAsterisk定义的声音。 6 b8 p, J2 l; U8 s
| MB_ICONEXCLAMATION / [2 R# c w. ]" y) g
| 播放由SystemExclamation定义的声音。 ( z# f6 A+ W' Q0 j; w
| MB_ICONHAND
" V5 \2 r3 `, X5 ` | 播放由SystemHand定义的声音。
3 l6 j" b7 h2 F; `# h3 H, ]8 ^ | MB_ICONQUESTION
4 ]% I% C& g$ p" Q | 播放由SystemQuestion定义的声音。 * K3 [, M3 d' a
| MB_OK y+ I @: ]: [
| 播放由SystemDefault定义的声音 * u6 L* e7 R0 B; l
| BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);
) U$ L1 P2 t/ h7 m7 F参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。) X* c8 w) t! P/ v9 k/ N9 B
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。7 C7 ]2 Q# Z3 }' Z+ @' \
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。
+ d3 a j; g! E, Y标志
; F, ^; [& `, R9 [: s | 含义 4 U" }/ {4 ]- n% v `
| SND_APPLICATION 0 |: h$ ?. L+ L }. l
| 用应用程序指定的关联来播放声音。 + a& p" j; o! v% r6 M( m
| SND_ALIAS # a! G0 `+ s4 |' g4 p) i8 c
| pszSound参数指定了注册表或WIN.INI中的系统事件的别名。
4 B, U5 Z Y, z o' F0 E8 y W) U' T | SND_ALIAS_ID . d4 G2 J! ?3 t% u
| pszSound参数指定了预定义的声音标识符。
8 b" |& t* A E3 {' H2 l7 b6 `* ` | SND_ASYNC
, X( S0 s9 p) r% n9 [$ U0 v | 用异步方式播放声音,PlaySound函数在开始播放后立即返回。
8 B8 o r% Z2 Z# X( _ | SND_FILENAME ; e6 ~ X9 Z, C! W
| pszSound参数指定了WAVE文件名。 6 n n" R( v& [* V# t' j
| SND_LOOP 8 B2 v6 M; l* Q3 j- O9 Q3 B8 y
| 重复播放声音,必须与SND_ASYNC标志一块使用。 5 N+ g: `% o7 I o$ s
| SND_MEMORY ) K- h" `' f& | p) X t" k9 i' z
| 播放载入到内存中的声音,此时pszSound是指向声音数据的指针。
1 y/ u3 R3 {% x" Z8 d+ B$ _0 ]0 } | SND_NODEFAULT 9 g- D/ S" h1 m+ d& h/ @& P
| 不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。 ' T" ~9 N( b# B5 q" ]
| SND_NOSTOP 2 c/ B" s- t; b' q; x7 L7 ~+ {
| PlaySound不打断原来的声音播出并立即返回FALSE。 ! O6 _" W- n4 |* {+ p# P/ K0 ^# K
| SND_NOWAIT " {3 e) t& o7 e
| 如果驱动程序正忙则函数就不播放声音并立即返回。
" l0 }3 ]. p8 k2 O( q | SND_PURGE " g0 Y/ Y: P/ n9 c
| 停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。
* \# |6 ~) E& h$ Q | SND_RESOURCE
6 a7 W N' ?/ b- S& r1 N' y | pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
- F7 }) ?8 ?; N4 p# ]6 I | SND_SYNC 0 o) l8 q! S3 g7 ~9 i
| 同步播放声音,在播放完后PlaySound函数才返回。 1 X) f9 I+ \+ [/ H q; P# d$ P
| BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);
# c7 |9 C( w8 U函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。. |4 A5 |% {, j$ ~( T1 ~+ n5 b: A
MCI播放: i. X6 p3 ~# W& w2 I+ \9 h# B
所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
2 N h$ L# p2 a, L) c: o7 TMCIERROR mciSendString(' a- u( e- C- `7 V- s. y
LPCTSTR lpszCommand, //MCI命令字符串
' J3 p, c% Z+ @0 b9 ]LPTSTR lpszReturnString, //存放反馈信息的缓冲区
' u7 A7 _3 O3 H& i5 b2 JUINT cchReturn, //缓冲区的长度
& S& Y) o N4 \$ K" g# p- Q, D% BHANDLE hwndCallback //回调窗口的句柄,一般为NULL
! W8 M: ?4 x6 C& a); //若成功则返回0,否则返回错误码。$ k: n' s* S: p' h% r4 O+ Z+ r
该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:" x4 R. q @+ P0 Q
BOOL mciGetErrorString(
$ _2 s; a! L. eDWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码
6 k0 [1 S3 S5 ?# W! O0 C! k0 n" W; k, aLPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区
+ G; N0 {1 B* CUINT cchErrorText //缓冲区的长度: n$ s! o* ]/ v0 `% H' X& V) E' ~
);
! @" b: @6 D) z4 U1 |2 [ M |
|