|
原文:http://www.cnblogs.com/cltsq/articles/api.html
3 L y1 g Z& E( C1. API之网络函数 ( k; l1 C5 t7 c" h; d& n( x9 v4 ]; H
WNetAddConnection 创建同一个网络资源的永久性连接
, n7 y+ i9 D1 e1 _$ T2 I9 \ uWNetAddConnection2 创建同一个网络资源的连接 4 R/ t0 e0 Y" X3 n# B1 S' V# U
WNetAddConnection3 创建同一个网络资源的连接 / c2 |0 _* V- d4 f! p
WNetCancelConnection 结束一个网络连接
: p8 b5 M( d1 y7 d: o9 K) zWNetCancelConnection2 结束一个网络连接
5 I% H- v' r5 G7 H# c. bWNetCloseEnum 结束一次枚举操作
7 f9 l& r5 o, Z" R; O) g; tWNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
9 H( `: u8 x9 ~9 F. TWNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接 " H& Q5 B4 u {# y
WNetEnumResource 枚举网络资源 + |- `& K; ?+ o- N& ~8 v
WNetGetConnection 获取本地或已连接的一个资源的网络名称
, K: a: m6 P* ~8 xWNetGetLastError 获取网络错误的扩展错误信息
7 B/ O2 Z6 @$ b0 q) AWNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 $ p- e! J; E7 y$ D
WNetGetUser 获取一个网络资源用以连接的名字
9 f: x2 D9 V* v8 S! \WNetOpenEnum 启动对网络资源进行枚举的过程 + D9 K) m6 E3 a+ E0 f/ @$ f: M @
2. API之消息函数 $ C! ?8 S1 \5 a) ]& _
BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
x3 H0 M2 J K# S3 E9 i! j( _1 zGetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 7 D. y+ B- Q c9 ]7 C5 E* u! y
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 9 y" ^- W/ e+ Q6 C
PostMessage 将一条消息投递到指定窗口的消息队列 3 S( ^4 @( k' l1 T( w' W# A- L
PostThreadMessage 将一条消息投递给应用程序 ( E& F3 B [' O
RegisterWindowMessage 获取分配给一个字串标识符的消息编号
7 U# Q$ t% g4 t! v {ReplyMessage 答复一个消息 1 X6 }- p2 `: M" k
SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口
6 P0 g6 q6 d1 S2 l ?( SSendMessageCallback 将一条消息发给窗口
& A* f# U. S5 s+ K. \SendMessageTimeout 向窗口发送一条消息 . x9 {3 E/ U8 z
SendNotifyMessage 向窗口发送一条消息
5 Q; H" q9 b5 W4 O" q$ v- d3. API之文件处理函数 6 j& }5 V! _( c) Y7 b- y) J# R
CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等
% v0 V4 o1 C# n6 ]5 ICompareFileTime 对比两个文件的时间 1 B/ Z4 P7 W, |, w2 p) Y" l' i
CopyFile 复制文件
* G5 b: |7 K, T* O' x2 X. cCreateDirectory 创建一个新目录 # A% W. B. c5 g' t/ A! |5 Y$ e6 G$ e
CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台
2 T# B* n* M; }2 D% C8 V- QCreateFileMapping 创建一个新的文件映射对象
& x: k) V- c5 I" `2 LDeleteFile 删除指定文件 & s* F. Q3 d+ \: F& g) V' e
DeviceIoControl 对设备执行指定的操作 ' _+ L' Z4 u1 q2 X+ b: A
DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值
: b2 W' r. x6 z- L! FFileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值 ; F8 Q, i! S3 V. n& p
FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
5 {/ R; I6 D, A) i. A1 bFileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构
7 c1 q; p9 \ t9 h) J9 mFindClose 关闭由FindFirstFile函数创建的一个搜索句柄 3 @- c7 L9 N4 D( Q. o
FindFirstFile 根据文件名查找文件 6 c2 j2 g+ b2 c0 S
FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 3 _: H0 N, R- E# [2 Q- f
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 4 Y2 I+ q) c( u7 r
FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 7 x1 w; @. p+ k9 T3 a u
GetBinaryType 判断文件是否可以执行
" M/ I2 `2 R# n0 MGetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数
& J/ {: m: T) K/ `* Y& z WGetCurrentDirectory 在一个缓冲区中装载当前目录 % ^; E6 \& U, ^4 ]/ q
DWORD GetCurrentDirectory(3 |6 w6 R. q# d# N" ]5 E1 d m+ |
DWORD nBufferLength, //缓冲区大小
7 w! n) ?* I9 Y( j b LPSTR lpBuffer //缓冲区的首地址/ r1 y6 q$ ]# K
);
$ {. T$ @ ]1 r, }! w8 cGetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量
& @ C2 s3 S9 J% vGetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息
" m1 e9 J" N$ n4 cGetDriveType 判断一个磁盘驱动器的类型
6 J- A$ ~/ O3 nGetExpandedName 取得一个压缩文件的全名 / q1 n7 z8 s- _7 x' T1 _
GetFileAttributes 判断指定文件的属性
4 R3 x" K' M1 |' [) I( E+ PGetFileInformationByHandle 这个函数提供了获取文件信息的一种机制
8 d4 ^' n2 X8 O9 v# J( x% ~( GGetFileSize 判断文件长度
* ~, b5 ~$ U( v1 }GetFileTime 取得指定文件的时间信息
$ I7 M+ @8 s' g* s3 V) i: IGetFileType 在给出文件句柄的前提下,判断文件类型 # D- D$ {+ o- H& h
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息 ; c! _+ J Y6 @) k% I6 B D
GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区
/ p* b" n* T+ KGetFullPathName 获取指定文件的完整路径名 3 y. O3 F, D* ~- k# J
GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母
; Y0 t+ J; R$ I; s- aGetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 1 H0 d* ^3 G% y+ x) l3 f8 y% [( ~" X: {
GetOverlappedResult 判断一个重叠操作当前的状态 3 R3 ]; H" z; f( v+ i' q$ x! @8 J
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 / i- F0 o4 y8 L- @
GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 % I' `& y8 W! O8 |' y8 }7 l
GetPrivateProfileString 为初始化文件中指定的条目取得字串 * M* S! B' j8 C6 m* D
GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
- W2 }! W2 y1 _3 TGetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
& y* Q/ I) Q. b' d$ a; F2 EGetProfileString 为win.ini初始化文件中指定的条目取得字串
4 s0 R& G7 M% h4 ]- ^GetShortPathName 获取指定文件的短路径名
! z' M$ ?2 O9 g6 @3 ZGetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 0 X5 Y* y% o) `
GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用
+ J3 C4 l5 s8 c" G0 R, ?GetTempPath 获取为临时文件指定的路径 1 Q8 [, W0 n# z
GetVolumeInformation 获取与一个磁盘卷有关的信息
- K! v5 g4 s) c4 O7 J' ?GetWindowsDirectory 获取Windows目录的完整路径名 ! d, [9 s5 P1 U( M# M$ k7 b$ W, ^
hread 参考lread
' E% m; x1 a+ V, Y; g, Hhwrite 参考lwrite函数
- c1 y9 \# K6 b4 ~lclose 关闭指定的文件
" L+ Y6 ?# u+ f& c3 nlcreat 创建一个文件 6 C8 X( F7 ~$ U5 o% o
llseek 设置文件中进行读写的当前位置
. [, s0 o: ] O7 _' @5 E4 \; ~% |# zLockFile 锁定文件的某一部分,使其不与其他应用程序共享
# ~3 o9 W2 {5 cLockFileEx 与LockFile相似,只是它提供了更多的功能 4 e3 `- M9 f- i/ K( t) Y* m
lopen 以二进制模式打开指定的文件 + m/ O1 r5 u. p2 V) ]
lread 将文件中的数据读入内存缓冲区 . ^% c7 E. s9 i3 h7 O. D6 V2 |
lwrite 将数据从内存缓冲区写入一个文件 2 t9 c' O) o4 |# r/ q% ~3 n: E9 A
LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
6 S/ k' X, e7 u$ d9 V/ nLZCopy 复制一个文件 9 G, L! {) N- k7 t* ~8 F
LZInit 这个函数用于初始化内部缓冲区 7 {& y6 l# X, a5 R O
LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
- |' O) D# q. A8 O/ ]. MLZRead 将数据从文件读入内存缓冲区
. e' z2 e0 T; j4 G; uLZSeek 设置一个文件中进行读写的当前位置
( y3 c5 K6 x; N* i0 H& P. n( z/ R5 {MapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间 $ E8 K8 _: i, X! y& F
MoveFile 移动文件
- p, e. M8 K7 q! _8 rOpenFile 这个函数能执行大量不同的文件操作 ! ?+ R/ U- l! ?7 n' ]1 r
OpenFileMapping 打开一个现成的文件映射对象 / X$ z- x% Y- x, r4 m, \! y. T
QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况 : _9 ?+ b1 A' z( Q
ReadFile 从文件中读出数据
1 F8 J" Y) `( o! a! e" ^1 p" AReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调 * `; v7 ~# ]9 d
RegCloseKey 关闭系统注册表中的一个项(或键)
' {4 ]+ q4 W) b4 P- e, TRegConnectRegistry 访问远程系统的部分注册表
; W' E2 x1 J5 F0 y# ERegCreateKey 在指定的项下创建或打开一个项
0 u& _, @ y- F; F& kRegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数
$ @# w/ [: A6 B3 A0 y' S0 @RegDeleteKey 删除现有项下方一个指定的子项
3 V7 m, |6 C* R8 ]" P [ ARegDeleteValue 删除指定项下方的一个值
1 U+ d* T* v9 cRegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx
1 R$ L6 O6 N& H& z6 S) \+ r0 u/ sRegEnumKeyEx 枚举指定项下方的子项 : {5 G' Z# F2 a' h' ]
RegEnumValue 枚举指定项的值
2 d. ^; Y5 D/ hRegFlushKey 将对项和它的子项作出的改动实际写入磁盘
. L- f# `3 \5 ]0 t: f, BRegGetKeySecurity 获取与一个注册表项有关的安全信息 ' c9 o6 o& _9 a- h1 M
RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息 / t) S$ G6 ~+ U& ~8 S( n9 w8 e ~
RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制 1 o9 i. F- c3 a6 m
RegOpenKey 打开一个现有的注册表项 7 ?# Y3 [2 D ^" E
RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
1 J- y8 S' T1 [# mRegQueryInfoKey 获取与一个项有关的信息
, U) ~3 ]7 x+ X% T7 ORegQueryValue 取得指定项或子项的默认(未命名)值 0 i, i: c5 i4 V0 h
RegQueryValueEx 获取一个项的设置值 4 z" ~6 y) O, M! }+ X7 g8 H! M1 E
RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
# B& [/ P: Q8 S) ]5 [$ xRegRestoreKey 从一个磁盘文件恢复注册表信息 % I, u1 g4 j9 m+ u5 g- U% B1 c
RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件
' R" |5 l8 _6 S, L$ ~, kRegSetKeySecurity 设置指定项的安全特性
; A7 P7 k. ?; z' [5 HRegSetValue 设置指定项或子项的默认值
4 d- j: ?7 y/ {/ L/ BRegSetValueEx 设置指定项的值
! Z0 _2 _/ J7 a$ @5 f" }RegUnLoadKey 卸载指定的项以及它的所有子项
& o* B$ f1 ^) \# S) n9 e, p# TRemoveDirectory 删除指定目录 X- X8 r2 r( p$ s
SearchPath 查找指定文件 $ u/ ~. x7 f& P
SetCurrentDirectory 设置当前目录 5 V* \+ p5 c9 |: Z) z/ k# n
SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾
( @+ r; j- U- iSetFileAttributes 设置文件属性 ' D L; q* Z P5 ?
SetFilePointer 在一个文件中设置当前的读写位置 . u9 ~5 }" h7 z9 y
SetFileTime 设置文件的创建、访问及上次修改时间 ) E" e' j; [ [; ]# H/ B C. \
SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果 * p- q; t- ]3 S! S2 s. v
SetVolumeLabel 设置一个磁盘的卷标(Label) % w9 E4 j- [/ |4 U% c ~- d+ ^. t
SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构 8 x3 P( J |6 r" f$ z8 D1 u/ v
UnlockFile 解除对一个文件的锁定
* {, I8 [$ I& \6 a5 I8 SUnlockFileEx 解除对一个文件的锁定 \; z4 z0 q- l! @ a, ?- l
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
. o M/ p+ Q/ X& z" FVerFindFile 用这个函数决定一个文件应安装到哪里
) D7 s+ z: j. xVerInstallFile 用这个函数安装一个文件
+ h1 f% C% V7 I" M9 e6 e' xVerLanguageName 这个函数能根据16位语言代码获取一种语言的名称
5 z7 B% b' k4 k$ H1 cVerQueryValue 这个函数用于从版本资源中获取信息 0 [* ?' Z. h) \- [% E, c
WriteFile 将数据写入一个文件 ) `4 r6 S) _% L1 m, M1 E
WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调
+ w3 y6 @4 J* z4 A& BWritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值 0 d5 I1 J: t0 K8 G7 q& T
WritePrivateProfileString 在初始化文件指定小节内设置一个字串
2 H! Q9 a @ ~% h. JWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值 ( ~2 X% I5 L( j0 j4 A
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串 / ^. a& r: Y' N }
4. API之打印函数
) d {& q3 `* f4 V/ XAbortDoc 取消一份文档的打印
/ y3 `: W7 k2 X h" oAbortPrinter 删除与一台打印机关联在一起的缓冲文件
3 i0 r2 K0 f( W. ]1 t' @AddForm 为打印机的表单列表添加一个新表单 4 h: L% `1 M4 b" C; y
AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号 # T* R7 o# @! j3 o
AddMonitor 为系统添加一个打印机监视器
5 d; X7 ^6 A, m+ O) T7 W. fAddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口
1 b$ ?# g% @' B* Q( ~0 |AddPrinter 在系统中添加一台新打印机 5 ~, ?2 P. C- ?5 A9 C- u Z$ ^( ]
AddPrinterConnection 连接指定的打印机 9 f' o7 y4 c3 M- j4 h7 q1 H" {" [
AddPrinterDriver 为指定的系统添加一个打印驱动程序 3 w- Y! O! v4 T+ i0 B) z* l: x
AddPrintProcessor 为指定的系统添加一个打印处理器
! o/ ~6 W/ P0 W7 w% k% R3 ?AddPrintProvidor 为系统添加一个打印供应商
% o: F% I2 P& X% g& kAdvancedDocumentProperties 启动打印机文档设置对话框 2 g; d; L# U, F( d
ClosePrinter 关闭一个打开的打印机对象 $ f8 b p8 Z% @& d3 F
ConfigurePort 针对指定的端口,启动一个端口配置对话框
9 t# }) A4 l* K3 m: m# hConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接 ( h. J, j3 K7 J
DeleteForm 从打印机可用表单列表中删除一个表单
( O- f- r+ Z+ J! }! \) q2 jDeleteMonitor 删除指定的打印监视器 ( J9 {$ M; V' w! [" m6 Z* r7 p
DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口
! {% q, W. o' G* @, bDeletePrinter 将指定的打印机标志为从系统中删除 / B' }7 f$ U0 ]: M$ W
DeletePrinterConnection 删除与指定打印机的连接 7 n, J0 i- ^" X7 O5 |
DeletePrinterDriver 从系统删除一个打印机驱动程序
8 k+ }6 N% ^6 H1 NDeletePrintProcessor 从指定系统删除一个打印处理器
* J+ M8 w, ^. Q- D7 u3 QDeletePrintProvidor 从系统中删除一个打印供应商 3 T8 L8 p6 l( ?+ t# @. h9 o
DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 ! w4 S% E& L6 c* b
DocumentProperties 打印机配置控制函数 9 Y6 y! }# K! N2 G
EndDocAPI 结束一个成功的打印作业 ?( |% o4 C4 e
EndDocPrinter 在后台打印程序的级别指定一个文档的结束 Q `3 S3 x3 M" i
EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页 7 ~1 K9 g" F7 Y4 O9 [) v( y
EndPagePrinter 指定一个页在打印作业中的结尾
{! I# b+ ~5 |( o$ ^* OEnumForms 枚举一台打印机可用的表单
, i! k+ z5 r2 }+ F% kEnumJobs 枚举打印队列中的作业
$ ^" C) s7 M$ I6 k7 a8 ^EnumMonitors 枚举可用的打印监视器
6 H/ g, L0 L- [% k# O4 aEnumPorts 枚举一个系统可用的端口 % Q0 o$ s0 n8 n4 d" K% j% y' x+ i
EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序 # u0 p2 t+ V1 u
EnumPrinters 枚举系统中安装的打印机
# |& f/ Q0 Y3 \: }EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型 8 K* U* J3 S ], k. Q2 y0 F; I! y
EnumPrintProcessors 枚举系统中可用的打印处理器
- x" S% P! n* @. IEscape 设备控制函数 # V8 O4 U( G6 r0 H8 N
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 2 M6 X$ \' D: z: ?
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化
6 m. i p* b0 `7 T0 @FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
& U( t* n* h: ~+ f- GFreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 5 z3 n7 G3 N8 A( `. n' W$ k4 g9 ]
GetForm 取得与指定表单有关的信息
; I# ^5 U: Y3 U9 B3 h2 WGetJob 获取与指定作业有关的信息
D C$ M9 E1 n( X2 o# R$ XGetPrinter 取得与指定打印机有关的信息 6 t5 `8 }1 P3 u' e" e
GetPrinterData 为打印机设置注册表配置信息 2 M8 Y u9 _+ [/ R$ [ h1 i
GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息
2 e- |0 T" ?: k4 c4 n, FGetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
- V2 @% x- E* y2 Z& c7 W8 z5 NGetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录
8 b; w6 v! r8 _: eOpenPrinter 打开指定的打印机,并获取打印机的句柄
5 z* M6 C1 O' g! MPrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框
( c/ a6 c2 _8 A- u9 mPrinterProperties 启动打印机属性对话框,以便对打印机进行配置
( N# T+ q D- r- }0 PReadPrinter 从打印机读入数据
2 P1 v8 _" M" l3 J8 O- UResetDC 重设一个设备场景 7 H( I% T7 l' n
ResetPrinter 改变指定打印机的默认数据类型及文档设置 7 a, [- l: W5 D9 O0 O \# C
ScheduleJob 提交一个要打印的作业 8 Z5 n' e# E- k5 q! A
SetAbortProc 为Windows指定取消函数的地址 $ g" b+ e/ }! @! c7 A, F% P% }4 ~
SetForm 为指定的表单设置信息 5 c G5 B* ], m. L! d) I
SetJob 对一个打印作业的状态进行控制
' W. o5 @ ?; fSetPrinter 对一台打印机的状态进行控制
% D: s- T2 r8 t) f! LSetPrinterData 设置打印机的注册表配置信息 ( ]+ N; m' w w( v; R; d2 O( B
StartDoc 开始一个打印作业 : H2 ^' x# C6 K$ H$ g/ \7 j* [& ~
StartDocPrinter 在后台打印的级别启动一个新文档 7 I% c* x6 m, I* v6 b: l, |
StartPage 打印一个新页前要先调用这个函数 9 M4 @2 _9 A2 N8 h
StartPagePrinter 在打印作业中指定一个新页的开始 0 F& B: Y9 ?& X2 [$ G% i# ?8 ?
WritePrinter 将发送目录中的数据写入打印机 2 z0 Z7 b! ?, a+ r L4 P
5. API之文本和字体函数
# V4 c! T# H; g) `/ RAddFontResource 在Windows系统中添加一种字体资源 3 V/ h) r; P* x/ X: Z5 `+ h+ ^' b
CreateFont 用指定的属性创建一种逻辑字体 / u2 r6 ]1 v' M" U
CreateFontIndirect 用指定的属性创建一种逻辑字体 ) D& g/ T9 r* C5 { q" ^& q
CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 2 T q1 J" R5 L E1 ^" M, X2 l
DrawText 将文本描绘到指定的矩形中
2 q2 o4 v+ F' J JDrawTextEx 与DrawText相似,只是加入了更多的功能 / j' c+ |' v3 j6 d# Y
EnumFontFamilies 列举指定设备可用的字体 3 Z. b8 ?/ a2 E$ Y2 N# m
EnumFontFamiliesEx 列举指定设备可用的字体
/ g. ^; d4 ?! yEnumFonts 列举指定设备可用的字体 ! J& t% g6 [# `4 ?7 s& t6 H
ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
! ], u+ Z" M9 r6 y+ g$ M( Y- TGetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 2 W8 i1 ]8 N! @ V2 T0 v0 Q6 }
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 . n- t0 x. p: J4 m! D
GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸
2 R# e* S2 o3 E1 a2 v1 K7 @+ c' g' pGetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串
" L _1 L8 a) ?0 OGetCharWidth 调查字体中一个或多个字符的宽度
" E- J/ F. e W3 S2 e. t! h! HGetFontData 接收一种可缩放字体文件的数据 4 F5 A1 Y/ @" O
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息 , N0 U: B! _9 o" V! a2 O
GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 + y% ]- d ^2 b& y6 `3 j- D" Y- V8 e' X
GetKerningPairs 取得指定字体的字距信息
V: M X+ Z( C7 lGetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息 8 S j* C4 _; ?/ Y c" F. _' D
GetRasterizerCaps 了解系统是否有能力支持可缩放的字体 - X2 y Z9 I O
GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 9 H/ o/ c8 z! X
GetTextAlign 接收一个设备场景当前的文本对齐标志
8 ^* x3 f4 w2 g7 i4 _* j" tGetTextCharacterExtra 判断额外字符间距的当前值 0 N4 s- R6 J! D- F0 a
GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符 + J/ ~# }* i! W$ s$ l
GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 * A6 U$ s& p- V5 r# j
GetTextColor 判断当前字体颜色。通常也称为"前景色"
/ T D6 f3 v7 `% V7 lGetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
' l" H: U' r& t8 K L6 `4 AGetTextExtentPoint 判断一个字串的大小(范围) " k: w! p S5 B7 W" b3 J
GetTextFace 获取一种字体的字样名
0 C2 U) {/ X$ y( L! FGetTextMetrics 获取与选入一种设备场景的物理字体有关的信息
* J+ s; T: B8 I9 x1 c) q+ Y! @6 w# UGrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态
( i- E# w3 x) Q+ RPolyTextOut 描绘一系列字串 4 v" ^! H' x) Q4 B7 ?1 J/ _
RemoveFontResource 从Windows系统中删除一种字体资源 ( D* _% K/ T( H ~& {
SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 6 |2 }8 A( x L- {9 c! e: k4 f+ [; K3 U
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置
4 I- O" | N# W PSetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 # C7 J5 G: I* B1 a
SetTextColor 设置当前文本颜色。这种颜色也称为"前景色" - w0 t" R. w6 p( C
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理 4 w l" i1 y# k; z. E
TabbedTextOut 支持制表站的一个文本描绘函数 ( _& z9 g2 ?3 E# b. T) @5 T/ [
TextOut 文本绘图函数 + i) X9 W/ l6 f. S) U4 [2 |' {
WINGDIAPI BOOL WINAPI TextOut(
, j6 ~1 p0 u# X- E' n7 nHDC, //输出设备
0 v" W: C9 A) V; o: O1 `9 Q( Iint, //输出的横坐标
$ h/ u. ~( R/ |int, //纵坐标+ ^. t/ P" y) v7 m; v1 K
LPCSTR, //输出的文本str
" C2 W G Z% G7 {$ D. Cint); //文本的长度:lstrlen(str)
; z! Y: N3 e Y% L7 d6. API之菜单函数 + f( p+ L) K$ t4 y+ A4 Y7 W
AppendMenu 在指定的菜单里添加一个菜单项 2 Z6 \. Q, a! P; h& f8 W
CheckMenuItem 复选或撤消复选指定的菜单条目
6 }# J: D, H9 J8 U5 Q- iCheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 3 c9 t# @5 X* u
CreateMenu 创建新菜单
. P* o0 q; H. O2 `1 yCreatePopupMenu 创建一个空的弹出式菜单 1 w( v+ M& _- G& S8 k
DeleteMenu 删除指定的菜单条目 M/ X6 V; o6 v$ R. C2 W
DestroyMenu 删除指定的菜单 ( U9 X# ?; M, |& C
DrawMenuBar 为指定的窗口重画菜单
) r. v; b, e' M0 xEnableMenuItem 允许或禁止指定的菜单条目
4 g7 V' K; v; \GetMenu 取得窗口中一个菜单的句柄 1 o# Y" W7 d3 c( | d9 Y! g
GetMenuCheckMarkDimensions 返回一个菜单复选符的大小 . U7 u; V4 r4 Y" r6 f
GetMenuContextHelpId 取得一个菜单的帮助场景ID
9 T# f4 N: F2 r- @2 `GetMenuDefaultItem 判断菜单中的哪个条目是默认条目
- W1 q* c* P% `GetMenuItemCount 返回菜单中条目(菜单项)的数量
" ^; s" h" K' r) o& m8 QGetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID i a/ F; v( }0 o# Z
GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息
- u, J/ D' t6 G. sGetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 0 w; E; @! }. J4 B
GetMenuState 取得与指定菜单条目状态有关的信息
( s$ `' d& @% y# c$ }6 G$ v: VGetMenuString 取得指定菜单条目的字串 ! h3 d0 I- }. c r3 `- A
GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置 $ G: I% L% u; B, Q' y$ O8 r
GetSystemMenu 取得指定窗口的系统菜单的句柄
. W9 |4 X- @ j/ r9 ?HiliteMenuItem 控制顶级菜单条目的加亮显示状态 6 u9 P% h1 \& p# t
InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动 " V( j s, [" K% l2 v' @, J+ h$ s
InsertMenuItem 插入一个新菜单条目 0 B: q& }$ o' Q# i$ |
IsMenu 判断指定的句柄是否为一个菜单的句柄
( d: {- a6 Y5 \* C7 u; c6 hLoadMenu 从指定的模块或应用程序实例中载入一个菜单
& a% h; [) c! R$ R: T( e% ]& \LoadMenuIndirect 载入一个菜单
, A% s- ~' d5 L* a/ I6 [MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点
0 q# f$ n2 S! c4 d2 @ModifyMenu 改变菜单条目 , U( k& K! M. t0 e6 R r, z4 p# P
RemoveMenu 删除指定的菜单条目 ' ?+ e, c$ r4 W5 }
SetMenu 设置窗口菜单
5 f" o/ ?6 R7 R, U1 o5 PSetMenuContextHelpId 设置一个菜单的帮助场景ID 5 E+ D( N, {8 |% r- ~& X
SetMenuDefaultItem 将一个菜单条目设为默认条目
6 M4 Y- H- U+ C! f) e# G9 R* N: c2 wSetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√) + c; m! a, p. Q5 D
SetMenuItemInfo 为一个菜单条目设置指定的信息 8 v; \+ n) Y& g# b$ }. w7 J- P0 J
TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单 2 G1 v' [- g4 C
TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能
# m! B# X5 q k3 }7. API之位图、图标和光栅运算函数 / q5 t$ _6 ^+ [* W# ^5 R ^4 g
BitBlt 将一幅位图从一个设备场景复制到另一个
* ^+ w e, s) O( S WINGDIAPI BOOL WINAPI BitBlt(
$ |5 u9 A7 Y, [* @2 c0 bHDC, //目标HDC
! }; x, h0 o8 N+ p% Dint, //X1
" U7 ^7 R* j% A7 }3 m3 N' k( qint, //Y1+ _& B3 [* z, u2 R+ H
int, //width2 ~! n" B" l, `4 F6 M$ Z, A5 i
int, //height
6 b0 ^# p$ I( c5 n2 t6 _3 [HDC, //源HDC
5 @$ q; u7 Z0 X& s+ c( h9 j- d2 n- c& Vint, //右边的距离
6 n" `5 M9 Z. K) `int, //??$ c" R2 z# `# |( n0 m U
DWORD); //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
- m7 \; h9 ~; B9 WPATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS$ ]" |0 A; v v: o9 ]0 l( e
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序 " _/ t% ^+ A' k4 k
CopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作
8 p. H" B0 Z1 l) j( mCreateBitmap 按照规定的格式创建一幅与设备有关位图
$ @( o7 z0 _0 F/ G* V% ~: l% iCreateBitmapIndirect 创建一幅与设备有关位图
+ p! _ z7 u" X" g# Z) J" v% Y" ICreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容 8 m5 L, q* x/ S8 n( [7 H
CreateCursor 创建一个鼠标指针
* I5 ^' G6 m/ g; T2 nCreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图
' F8 I4 q" G! B5 r- u* ACreateDIBSection 创建一个DIBSection
; \. c3 d+ d/ P" N: M8 oCreateIcon 创建一个图标
4 @7 e! \0 m0 [" w! u3 {: `' DCreateIconIndirect 创建一个图标
/ }" Y; {" L* \& u8 CDestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 ) d; i8 M# Z4 S6 |5 R) s
DestroyIcon 清除图标
. ?- m# c8 i- w, C& aDrawIcon 在指定的位置画一个图标
& c5 W. K0 C: uDrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
& u& o' `1 H2 M( J3 G; `* F) ?ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之 1 b( } S$ U& y7 N
ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来
) H! r& Y9 x3 S' UGetBitmapBits 将来自位图的二进制位复制到一个缓冲区 * [( y: I5 @3 H! i4 V( l! ~* k( \
GetBitmapDimensionEx 取得一幅位图的宽度和高度
9 c/ o; a$ [* }) _; Q% IGetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息 ( K! l* V2 V7 v" R3 S1 y! w' n- F
GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里
! _- f L% _ w1 JGetIconInfo 取得与图标有关的信息 $ L3 V; \# x! q
GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式
1 B: H% B& ]8 y% ] _LoadBitmap 从指定的模块或应用程序实例中载入一幅位图
9 [) `! ] l+ L OLoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针 7 R( K5 h' R: [% Y
LoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针
! ~# s* N2 Z# xLoadIcon 从指定的模块或应用程序实例中载入一个图标 0 F1 r- }* ~+ ]% v
LoadImage 载入一个位图、图标或指针
/ T$ y6 d5 X8 ]; y3 q2 \# zHANDLE LoadImageA(6 T& p6 ?. Q1 I5 {/ o3 s
HINSTANCE, //当前实例句柄:AfxGetInstanceHandle()' d5 w8 H; A. n- ?2 _( T
LPCSTR, //资源所在的目录:c:\help.bmp% n) p: U6 S8 W' \
UINT, //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE
4 A5 t* B# a& p- ]7 ?7 X# J- J int, //
+ K7 R2 G8 |' A+ i3 D int, //
l- Y4 g5 r+ h4 d/ I' a" z8 s8 I, V% LUINT); //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|6 X# e2 h2 `9 S- P6 W2 H6 {* u
R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|
: X, @# e7 |/ @' ^LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED8 O3 i& z# t& G& f% f% a
MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理 0 U$ u- ~: E9 h
PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景 I7 x. m* ]6 b# o4 [. j m
PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理 $ N+ B* U6 F1 c+ K# }2 z
SetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 5 D4 l1 k" g8 U& j
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 8 d$ T% h! L3 n% `) R8 |# I% q
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息 5 f' ~; e4 E& ~$ t: `: a
SetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里
& e1 u$ l' V6 ]4 Q; {; G* m: zSetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
' v+ ~1 ^" @7 y# w w' c3 }2 @( eSetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 4 L( n# X/ l" G9 i
StretchBlt 将一幅位图从一个设备场景复制到另一个
3 ]% q: _5 e9 C9 {4 q1 [StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
+ d3 |. H* t6 H+ _, \3 m8. API之绘图函数 . `3 g1 T1 m: Q) D9 A" s
AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作 ' z7 ]9 k; ]' f; {5 C0 U: U
AngleArc 用一个连接弧画一条线 1 d0 ]! ~$ h: j, K6 y- @
Arc 画一个圆弧 " \% K* w. E! A7 S+ a' {
BeginPath 启动一个路径分支 2 }) [7 D, F: T
CancelDC 取消另一个线程里的长时间绘图操作 6 Y p& e# @; j2 F/ D& F) s
Chord 画一个弦
( C4 E8 R( i+ E. G- a; gCloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄
! v |0 N: j' PCloseFigure 描绘到一个路径时,关闭当前打开的图形 ; h9 z& ?3 m8 y5 N( |6 W
CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄
0 {' C7 A6 \: p: ?5 z: E* n( HCopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝) & N9 f( \ R1 Q6 C
CopyMetaFile 制作指定(标准)图元文件的一个副本
3 s; d/ ^! A8 O2 J2 Z# k9 m3 DCreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子 9 \. b5 {% J0 V9 z& B
CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)
! W; P; Q# u9 K7 T% cCreateEnhMetaFile 创建一个增强型的图元文件设备场景 % e; R$ H& j, D P
CreateHatchBrush 创建带有阴影图案的一个刷子 2 f0 x) r0 Y- k0 T9 x$ O, S
CreateMetaFile 创建一个图元文件设备场景 0 j+ ]: B: N; V3 b
CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
7 A5 [/ \" ^4 A4 tCreatePen 用指定的样式、宽度和颜色创建一个画笔 / l: N+ {) q j) U( P0 \
CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔 4 k! x/ R: l) Z0 J$ j2 y! E) n X
CreateSolidBrush 用纯色创建一个刷子 4 J( h! }* w& I: T, N# a3 p3 A+ ]: l
DeleteEnhMetaFile 删除指定的增强型图元文件 " W) O, p, W* H* h& s& d- n/ F
DeleteMetaFile 删除指定的图元文件
7 o" C1 t! m: r! CWINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放
+ g! k3 {% u1 l5 cDrawEdge 用指定的样式描绘一个矩形的边框
! U$ @0 H2 h* W- G: ~DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
: s( B/ W. W0 \, NDrawFocusRect 画一个焦点矩形
' o( Z; v, N! u1 y/ J$ z+ J* z7 yDrawFrameControl 描绘一个标准控件
Z" m# K- |5 T6 b$ h: Z) \DrawState 为一幅图象或绘图操作应用各式各样的效果
( J1 ]; v5 ]+ T# }Ellipse 描绘一个椭圆,由指定的矩形围绕
" h; ]# N$ `. {4 ?8 }EndPath 停止定义一个路径
$ a& s/ v' Q& B# R) h! ]EnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录
: p0 m# T" Z4 @4 V# i1 VEnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
3 p' m, t, N$ ?( S4 T; n( MEnumObjects 枚举可随同指定设备场景使用的画笔和刷子 ( Q/ a0 ~) R/ S8 \! n
ExtCreatePen 创建一个扩展画笔(装饰或几何) l: ~) L4 }; `- J5 k; b0 S5 a
ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域 : j1 d) |6 S6 H' o8 G a0 } u
FillPath 关闭路径中任何打开的图形,并用当前刷子填充
1 _$ s! [+ u( fFillRect 用指定的刷子填充一个矩形 7 C( p" P) [ D7 M& x
FlattenPath 将一个路径中的所有曲线都转换成线段
% l4 ?$ z, r+ D# ]FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域 8 _9 m& V; ?! c
FrameRect 用指定的刷子围绕一个矩形画一个边框
! @: X$ N9 Y+ g4 ^- y' K6 m& |GdiComment 为指定的增强型图元文件设备场景添加一条注释信息
8 S6 W1 _) r9 v5 P* sGdiFlush 执行任何未决的绘图操作 ! d& a6 Q, v; t8 z3 g2 K2 f
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中
9 I/ r8 ^( t" h8 E0 w1 X2 YGdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列
8 @- B, D' D# T$ b x4 CGetArcDirection 画圆弧的时候,判断当前采用的绘图方向 ' q9 T8 Z+ M' h* W
GetBkColor 取得指定设备场景当前的背景颜色 . U7 h9 _+ U1 g% U/ p) R
GetBkMode 针对指定的设备场景,取得当前的背景填充模式
7 [4 D1 O' J" ]0 @GetBrushOrgEx 判断指定设备场景中当前选定刷子起点
) f* G6 i- K* sGetCurrentObject 获得指定类型的当前选定对象
! {' M1 [% E% z) e- U- _6 {9 F# IGetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
/ q; C+ J* U7 PGetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄 * X4 q, P P8 S8 L$ N& G
GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里 ' H1 q. z8 L0 }( h; U K
GetEnhMetaFileDescription 返回对一个增强型图元文件的说明
' G2 r0 V# ~- C2 w' u& u; X. G/ fGetEnhMetaFileHeader 取得增强型图元文件的图元文件头 2 q: j1 u$ W& A ?) M2 V
GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 . p5 v% b, e$ h
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 # _# o5 q- K& o& p& [
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区 , A6 E. x( I! S
GetMiterLimit 取得设备场景的斜率限制(Miter)设置
* ~' L- I1 k9 X- T; ~' }$ O) yGetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
1 b; q) x( L7 n; W0 ]* V! XGetObjectAPI 取得对指定对象进行说明的一个结构
% S9 M- k4 l& d4 VGetObjectType 判断由指定句柄引用的GDI对象的类型 - l: r* c' F& k8 ~5 ?* I0 x# L: F
GetPath 取得对当前路径进行定义的一系列数据
" {$ ?5 w {/ H# e6 n. w: wGetPixel 在指定的设备场景中取得一个像素的RGB值
b% I# E( n3 j8 DGetPolyFillMode 针对指定的设备场景,获得多边形填充模式 0 o( ]9 z$ r9 W5 Z; J
GetROP2 针对指定的设备场景,取得当前的绘图模式 * x6 R- b, `4 q: ?
GetStockObject 取得一个固有对象(Stock)
7 d/ b+ l8 w) ] W# xGetSysColorBrush 为任何一种标准系统颜色取得一个刷子
- T: y M2 U0 K, ]1 P! I. Z! ~GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件
2 [& |' v+ p) q7 N# W3 oInvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形 ' _+ ~ R8 p5 n9 \% e0 v& q& r9 f6 e8 g
LineDDA 枚举指定线段中的所有点 1 g, C- j; C3 A' J
LineTo 用当前画笔画一条线,从当前位置连到一个指定的点 1 r9 Q' |1 k% |& n
MoveToEx 为指定的设备场景指定一个新的当前画笔位置
7 t% [7 D5 ^! qPaintDesk 在指定的设备场景中描绘桌面墙纸图案 , w5 L H; ]2 ]0 R3 f, A9 m
PathToRegion 将当前选定的路径转换到一个区域里 - H1 K' g6 K' h7 ^( r
Pie 画一个饼图 / P' ]+ F1 c9 L: h
PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件 3 e4 l; S3 M9 U" h
PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录
; G) [3 s# s1 W/ I/ C& EPlayMetaFile 在指定的设备场景中回放一个图元文件 ! X( e; X; X! S" k; c: z$ V; s
PlayMetaFileRecord 回放来自图元文件的单条记录
) T, ?6 ^* r0 mPolyBezier 描绘一条或多条贝塞尔(Bezier)曲线 4 [- d* b. Y8 C" v- J6 H
PolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成 ( Q1 g$ G' @4 |9 F. e
Polygon 描绘一个多边形
. e4 O; `8 a5 Z/ q+ c5 t5 iPolyline 用当前画笔描绘一系列线段
0 N8 I( H9 r0 r9 y/ W; zPolyPolygon 用当前选定画笔描绘两个或多个多边形
; L- q9 `; \; t3 i9 r; N& rPolyPolyline 用当前选定画笔描绘两个或多个多边形
9 W9 w. t$ @& ^" pRectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充 1 [, X r* N) q
RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充
$ b3 B. U8 H P. Q9 [3 W( W% ISelectClipPath 将设备场景当前的路径合并到剪切区域里
% ?" e- a$ G3 Q& {SelectObject 为当前设备场景选择图形对象 - l7 n$ J, t7 j P
WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);
6 n/ |* f! r G7 A; N3 C0 u# ySetArcDirection 设置圆弧的描绘方向
2 X& P( |, G! W5 S% HSetBkColor 为指定的设备场景设置背景颜色 8 ~) }8 k6 T1 Z
SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式 / o. F N, l7 U& `* ~3 U- }& h
SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
5 ^4 U/ {/ |2 O. d2 ]SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
2 R/ l y4 h& l3 ~. {: ^4 \, wSetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 # C# h: U% j9 \ Z9 H& w( ]/ Y
SetMiterLimit 设置设备场景当前的斜率限制 " |. I+ |3 T: E, ^4 ^+ }9 T
SetPixel 在指定的设备场景中设置一个像素的RGB值 ! w, f& g# R: h6 T. t" `
SetPixelV 在指定的设备场景中设置一个像素的RGB值 ; J% w* J8 U0 x$ `$ b
SetPolyFillMode 设置多边形的填充模式
5 R, }) Y& d d/ T, E' i/ P VSetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致 " K; v6 R; m: ^. v
SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件
0 x; }4 E* e% z5 f5 \StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域 3 \9 c' G% c6 @ z& W+ V0 d
StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭
8 S$ w$ h, S; c+ n0 ~) qUnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数 / c' Q9 F# b9 }# u' {7 x$ i1 b, `' g
WidenPath 根据选定画笔的宽度,重新定义当前选定的路径 4 s$ f8 B( G: [; @* ]9 E
9. API之设备场景函数
$ I% x1 P' @/ _( v. `5 R- i/ VCombineRgn 将两个区域组合为一个新区域 ; E! |5 K% v: }; z. w7 N
CombineTransform 驱动世界转换。它相当于依顺序进行两次转换
( k. {3 k. Z2 J' s# P' N. ~7 ^. FCreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景
7 L- U9 s, `" o' ^5 G! z3 ?8 \& DCreateDC 为专门设备创建设备场景 ) H0 L7 ?0 j8 n1 V1 }' }9 g
CreateEllipticRgn 创建一个椭圆 8 [9 ?7 z8 U0 I, m* S ~
CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域 % s2 `! u0 N& G5 ?( t6 \
CreateIC 为专用设备创建一个信息场景
$ F) V9 q, }* ^CreatePolygonRgn 创建一个由一系列点围成的区域 ; D5 u7 Z: a D$ X9 a
CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的
& E6 C9 d3 z/ x4 ~4 SCreateRectRgn 创建一个矩形区域 ( r3 O+ V8 k8 A" ]) u4 s
CreateRectRgnIndirect 创建一个矩形区域
m6 C9 d' s+ z6 j5 l5 |% dCreateRoundRectRgn 创建一个圆角矩形
% i& ^2 j3 [- U' M) HDeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源 9 s6 }% L# i J* I* F
DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 ! t& a! y( @, G( ?
EqualRgn 确定两个区域是否相等 ! K/ V+ F$ i" h# m) B5 _- w
ExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图
9 R; v* k" ]& E8 lExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域
2 S/ E5 \$ C: hExtCreateRegion 根据世界转换修改区域
, N( Z8 R$ E9 c! a) x, E% ZExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区 " q; I4 ~1 f1 y k% {0 c
FillRgn 用指定刷子填充指定区域
. z5 m$ r0 V7 E/ | IFrameRgn 用指定刷子围绕指定区域画一个外框
8 b0 u4 L% s. ]4 \GetBoundsRect 获取指定设备场景的边界矩形
# Z, H- t' t2 E5 v8 [) e1 uGetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 ; A# f3 z* F( `: ]
GetClipRgn 获取设备场景当前剪裁区
1 e- p/ I9 \: h- ~% K& G5 {& ^GetDC 获取指定窗口的设备场景
( o% G4 Y1 ?5 z- p3 g' I5 YGetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 - Z$ j e2 h. O: i5 O$ O4 s
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示)
- A, L: n* J% _$ h$ ]+ J4 {GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息
* {* A% I3 K2 o( CGetGraphicsMode 确定是否允许增强图形模式(世界转换) % c9 {+ {* `6 J4 U2 F0 w/ z
GetMapMode 为特定设备场景调入映象模式
H4 v: V0 a6 m4 E6 v; g& rGetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
" A. V. c. N9 O0 E4 s, M9 _; `7 aGetRgnBox 获取完全包含指定区域的最小矩形 9 v# w/ @0 y1 U4 `4 C4 ]) I7 H
GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新 # E& ?$ }, \$ ]# W, u
GetViewportExtEx 获取设备场景视口(viewport)范围 4 [% p6 q8 t6 E; ~ K: V
GetViewportOrgEx 获取设备场景视口起点
/ a( Y. Y# `, l1 k# }. YGetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景
0 P: }5 M8 d/ fGetWindowExtEx 获取指定设备场景的窗口范围
! m2 n3 i+ e q! l/ v( c" n; W7 dGetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 # B2 y7 {. |& d& E1 R
GetWindowRgn 获取窗口区域 ) T+ d8 _# O$ b) k7 h# U- P; _
GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换 $ W4 I' M* R6 B
IntersectClipRect 为指定设备定义一个新的剪裁区
# | @- j1 I% y2 G4 X# \& i# tInvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画 & ^8 K) Q4 x2 |* `: ~
InvertRgn 通过颠倒每个像素值反转设备场景指定区域 6 N- B. E! }4 F0 `# F: n J
LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标
. U) z5 I7 D7 d' xModifyWorldTransform 根据指定的模式修改世界转换 + v& O2 E6 t& k2 [6 ~5 Y$ s
OffsetClipRgn 按指定量平移设备场景剪裁区 3 r+ L4 L+ ^; f7 v+ E) [% a( V
OffsetRgn 按指定偏移量平移指定区域
/ [( q" r3 I- ^OffsetViewportOrgEx 平移设备场景视口区域
' o, C9 t& c. J, H- f3 o: [OffsetWindowOrgEx 平移指定设备场景窗口起点
" F5 C, ?+ ^6 {4 |/ TPaintRgn 用当前刷子背景色填充指定区域 - d& h% R) U5 o% E) Z, S3 V
PtInRegion 确定点是否在指定区域内
; {, Y: I4 i# VPtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)
% s% l- W$ @& C! a- NRectInRegion 确定矩形是否有部分在指定区域内
, f: q, ]) y/ R! _+ ~. X% bRectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内)
$ R& B6 ~, J6 T2 l3 WReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景 ) W) p2 R% F! b6 X# V
RestoreDC 从设备场景堆栈恢复一个原先保存的设备场景 % z9 ]( c0 H1 f1 i- J
SaveDC 将指定设备场景状态保存到Windows设备场景堆栈 n) B- i# k, W; S2 u4 ~) i. W
ScaleViewportExtEx 缩放设备场景视口的范围 / _ t. U! m0 N0 F7 B
ScaleWindowExtEx 缩放指定设备场景窗口范围 ( H0 V+ Z G, z/ o, a- z6 r) D
ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
; }. l5 ^4 O) C+ A7 ASelectClipRgn 为指定设备场景选择新的剪裁区
# m/ [3 S/ I: |6 c) y' z% Y0 r8 J0 bSetBoundsRect 设置指定设备场景的边界矩形
# ] h; J f' t# {' x1 iSetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换) " O/ I) d, n7 s
SetMapMode 设置指定设备场景的映射模式 . W0 V+ V0 u+ l! @4 L5 F
SetRectRgn 设置区域为指定的矩形 ) X# V" H6 E5 N" y, D
SetViewportExtEx 设置设备场景视口范围 2 D* y% s! B5 `) Q
SetViewportOrgEx 设置设备场景视口起点 . h; f# W5 t2 K1 B8 q* R
SetWindowExtEx 设置指定设备场景窗口范围 # X y: W6 }- }3 @
SetWindowOrgEx 设置指定设备场景窗口起点
( ^3 s0 d I7 z- k+ Y+ WSetWindowRgn 设置窗口区域
* Y2 A+ Q6 | J3 fSetWorldTransform 设置世界转换
1 Z/ U6 ^4 g0 f4 _: hValidateRgn 激活窗口中指定区域,把它从刷新区移走 ; R% m" }$ Y# r! `- r
WindowFromDC 取回与某一设备场景相关的窗口的句柄
+ Q' e, N* f P4 f+ `' D10. API之硬件与系统函数
; l- |9 I6 E. p2 b9 e) AActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 % m# m5 p% n; s9 A
Beep 用于生成简单的声音
" R4 p# {( z, w: Q7 U5 \CharToOem 将一个字串从ANSI字符集转换到OEM字符集 . s/ `6 j3 i9 c* c
ClipCursor 将指针限制到指定区域 $ @" F: @4 L2 t
ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
7 B0 B0 M g% y u2 |; u5 TCreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符
) [0 z6 n+ r' s% ^9 ZDestroyCaret 清除(破坏)一个插入符
( H+ ^/ C" R5 P+ Y( R7 F: @+ g2 r8 iEnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息
" r6 \% b/ b5 R! N1 NEnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
9 C( f" ]3 y3 V1 p+ A) r& VEnumSystemCodePages 枚举系统中已安装或支持的代码页 ! ^4 a: ~4 S. ^ {" Z( ^
EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置 3 y% c; r7 X5 d; [6 N
EnumTimeFormats 枚举一个指定的地方适用的时间格式 ( ?* D# u5 L* r8 V, @, M
ExitWindowsEx 退出windows,并用特定的选项重新启动
' m2 R9 H/ s7 ~6 A WINUSERAPI BOOL WINAPI ExitWindowsEx(; s3 P" z4 [5 }1 Z0 H
UINT uFlags, //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG6 V8 P0 r$ R; b S) W
DWORD dwReserved); //0 |9 X/ K$ T& Z. `* `7 ]1 @" u
ExpandEnvironmentStrings 扩充环境字串 3 `# i) R. X) A% j% O. z; W* a
FreeEnvironmentStrings 翻译指定的环境字串块 5 \( I: X. p# S
GetACP 判断目前正在生效的ANSI代码页
" L4 I, L, _& o9 U: A. z; n& yGetAsyncKeyState 判断函数调用时指定虚拟键的状态
0 x( h4 x! c* c0 p& H8 ^' ZGetCaretBlinkTime 判断插入符光标的闪烁频率 1 g! U# B7 T# P4 i0 q
GetCaretPos 判断插入符的当前位置 + _: R( I' k7 ^5 a
GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域 % Y1 N" K9 x+ X" i7 P5 c. O3 W; O
GetCommandLine 获得指向当前命令行缓冲区的一个指针
; Z! [0 {) S* E% m0 q7 fGetComputerName 取得这台计算机的名称
4 `) w9 ]# J h& u; O, C9 B1 _6 xGetCPInfo 取得与指定代码页有关的信息 4 a: P0 G4 B7 Q: ^1 e. n
GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字 3 U z2 I0 z( w5 q5 N8 S6 I7 S5 B+ I
GetCursor 获取目前选择的鼠标指针的句柄 $ g; q8 @7 w3 ~, X* ]9 b
GetCursorPos 获取鼠标指针的当前位置 o1 s- ?# F/ v8 B, b8 h7 W- l/ ]
GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化
1 C# X! s& f" L- K' aGetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 + H7 q! s8 F+ j
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄 0 i8 v, s- E" Q0 M
GetEnvironmentVariable 取得一个环境变量的值 ; v; F9 l5 A a+ F! |, t# r; D
GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件 ; T" j3 Z3 T3 D
GetKBCodePage 由GetOEMCP取代,两者功能完全相同
& M: r6 ^, Q3 ]' q M" JGetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
/ _2 \( j0 T# ^$ `GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
( z+ f8 n& L' C5 l E" w* NGetKeyboardLayoutName 取得当前活动键盘布局的名称
3 t* v4 m4 I g" W" v3 s: WGetKeyboardState 取得键盘上每个虚拟键当前的状态
! M8 c& ~( k% E% x1 n" L- ~9 Z8 aGetKeyboardType 了解与正在使用的键盘有关的信息 7 P" O, Y$ H$ [( t" T
GetKeyNameText 在给出扫描码的前提下,判断键名
7 \- U" k1 I' Z. ]5 MGetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 9 d: m% R# ?9 Y' f q
GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
( T {" ]* m: C- V0 w# X, R+ X8 wGetLocaleInfo 取得与指定"地方"有关的信息 ( g. f- |. V; b1 n6 }/ j# o' ?
GetLocalTime 取得本地日期和时间 ) ], q! u0 m# z5 M
GetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字 ; n. m: R- B- R+ }4 d# T: t5 E$ W& C
GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
: h5 T+ m1 R7 x ^0 B) SGetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型 5 ]- p/ J5 j/ e; a" d5 x
GetSysColor 判断指定windows显示对象的颜色
* P. r; @1 G: XGetSystemDefaultLangID 取得系统的默认语言ID
( m5 W/ Q% h- }! [& lGetSystemDefaultLCID 取得当前的默认系统"地方"
: ~$ v+ v9 L' `0 D% k/ {GetSystemInfo 取得与底层硬件平台有关的信息
. \1 `2 Y; b0 X2 U0 r& I1 kGetSystemMetrics 返回与windows环境有关的信息 8 M' A* R0 d9 j+ ~9 p/ u
GetSystemPowerStatus 获得与当前系统电源状态有关的信息
2 A2 i9 m; e) R" }1 M+ q1 E/ p2 vGetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式 & ?* c3 {' w+ _% a/ z
GetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步
9 l! t Q9 G0 [GetThreadLocale 取得当前线程的地方ID 0 }! R3 D! s [* m/ t6 K3 Q+ e& ?4 t
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
* d' t# A6 Q2 T% o; RGetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间
! y* y' Y0 V# W0 ^! D$ TGetTimeZoneInformation 取得与系统时区设置有关的信息
, o; \! G. \$ h/ L) ?GetUserDefaultLangID 为当前用户取得默认语言ID ! b5 c2 n+ N% y' Z. y6 Y
GetUserDefaultLCID 取得当前用户的默认"地方"设置 % |! d* ]9 M' S& i& h& ]4 \
GetUserName 取得当前用户的名字
: v' p3 G# n! w( P, ~& NGetVersion 判断当前运行的Windows和DOS版本 8 }' i V5 e8 r+ ~+ x( |% N0 d# G
GetVersionEx 取得与平台和操作系统有关的版本信息 # C0 _! B4 q" ^8 N
HideCaret 在指定的窗口隐藏插入符(光标) 2 b5 \+ l+ ^0 t8 y6 d. L D7 o# x
IsValidCodePage 判断一个代码页是否有效 + o) d& E- W' ?; u6 [& D- B- B5 W; d- h
IsValidLocale 判断地方标识符是否有效 / {2 X0 [ P- E7 X- Q: _
keybd_event 这个函数模拟了键盘行动
0 ?3 v" @, m+ c: U% a8 r$ fLoadKeyboardLayout 载入一个键盘布局 " ~+ P+ B7 h2 g5 j
MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 $ C& o5 b8 `, ~# D7 b, B
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换
2 n! e6 H8 ~ b; d' j' _MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的 ( q! T7 m0 @4 A) B4 J: y
mouse_event 模拟一次鼠标事件
* V' X; q% d; T& Z( @/ pOemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
4 m" w7 ]8 Z( J0 X- p: cOemToChar 将OEM字符集的一个字串转换到ANSI字符集 ' U4 t+ {8 t4 C7 r3 z6 f
SetCaretBlinkTime 指定插入符(光标)的闪烁频率 3 q4 f" G4 `' h( q! k, ^' e
SetCaretPos 指定插入符的位置 6 |2 f; u+ f% Y% l, u( r, T% E6 Q# V
SetComputerName 设置新的计算机名 0 n" n5 k$ S' X: g% i u
SetCursor 将指定的鼠标指针设为当前指针 - x1 ]" [- B/ W( V! l6 j
SetCursorPos 设置指针的位置 % z3 h# u6 e& K# ]7 N
SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间
5 [# ^/ W0 Z- J/ `) T# L r( v3 USetEnvironmentVariable 将一个环境变量设为指定的值 : l1 D7 t6 D4 ?! F3 \
SetKeyboardState 设置每个虚拟键当前在键盘上的状态
% [; }! u% J) V" fSetLocaleInfo 改变用户"地方"设置信息
/ a3 U- D+ f7 X# ESetLocalTime 设置当前地方时间 6 ~) u+ f' S9 f
SetSysColors 设置指定窗口显示对象的颜色 b) _( p7 a( F7 T0 h
SetSystemCursor 改变任何一个标准系统指针 " i% y) G/ |; P8 p
SetSystemTime 设置当前系统时间 0 U. [. k7 g% m1 B: |
SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步
8 I: p$ T+ U4 R/ v3 z' b' f* c' B, d( ZSetThreadLocale 为当前线程设置地方
$ U9 Q# Z$ T' ]+ dSetTimeZoneInformation 设置系统时区信息
0 M( p, p2 o( mShowCaret 在指定的窗口里显示插入符(光标) $ V; Q ?8 [2 E) p9 W# V
ShowCursor 控制鼠标指针的可视性 % `% z7 J% L! d5 c- O
SwapMouseButton 决定是否互换鼠标左右键的功能
% Y; ~! K$ A) e- g/ gSystemParametersInfo 获取和设置数量众多的windows系统参数 # ^9 v7 M4 J6 }7 R- R" u
SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间 1 w: t; @- t( @ w! {5 ?( L
ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符 & R4 h# D) g) K+ L# r8 L. q+ Q
ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符 9 y$ I9 I+ D* a* Z4 j6 L
UnloadKeyboardLayout 卸载指定的键盘布局 : C1 H4 H7 j- r o+ `% @
VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态
- S( l. y Y L) l0 s4 g11. API之进程和线程函数
1 F+ X# f( g) Z$ y& q: N/ SCancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作
- Y) _' Z4 p! X e8 G+ z5 {4 \" TCallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 ) g! w% t9 K" N( E& ]4 v
ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 / i/ l5 h$ g; _1 H& S$ U9 W
CreateEvent 创建一个事件对象
' [; f" D8 Z8 {) M* b4 v$ Z, hCreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)
. ~/ v+ Y/ g3 k+ J9 iCreateMutex 创建一个互斥体(MUTEX) 5 T; Z7 S W* i) E1 c3 s
CreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用
4 M0 \/ _, O. U T: jCreatePipe 创建一个匿名管道 / H1 l |! T8 [7 \/ q9 Y F9 _& ~
CreateProcess 创建一个新进程(比如执行一个程序) . x$ a. V/ h6 B q, m4 U
CreateSemaphore 创建一个新的信号机 * l8 Q9 o; y' e; o
CreateWaitableTimer 创建一个可等待的计时器对象 ! C5 U* R2 v5 Y6 m- t% c, v$ n
DisconnectNamedPipe 断开一个客户与一个命名管道的连接 " r0 c# t8 [/ g
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄 8 K0 o8 k3 K" n
ExitProcess 中止一个进程 ' t) @. T0 H3 B: H& h6 S/ s- H2 j
FindCloseChangeNotification 关闭一个改动通知对象
( F. B; N. o3 G, H' VFindExecutable 查找与一个指定文件关联在一起的程序的文件名 6 }# M$ ~2 Z8 z) x0 A( n/ C
FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化 ( W9 Z1 N1 _& r+ \
FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 6 `, n7 ]' t5 y
FreeLibrary 释放指定的动态链接库
, E2 N* d& n1 I. @# b; ~- L PGetCurrentProcess 获取当前进程的一个伪句柄 1 I+ i2 S7 I v# G
GetCurrentProcessId 获取当前进程一个唯一的标识符
) A8 c3 }* G9 i% {+ h0 a. M0 _+ |GetCurrentThread 获取当前线程的一个伪句柄
5 t9 S' [4 {$ x4 S1 KGetCurrentThreadId 获取当前线程一个唯一的线程标识符 9 y# s- d7 `: o, g; j5 w5 `
GetExitCodeProces 获取一个已中断进程的退出代码
# I% I. b6 M) F3 b% [) QGetExitCodeThread 获取一个已中止线程的退出代码
9 s0 @ w0 c& N, e* F' WGetHandleInformation 获取与一个系统对象句柄有关的信息
, b Q) O% t4 u1 tGetMailslotInfo 获取与一个邮路有关的信息
2 K4 B- Y. `* rGetModuleFileName 获取一个已装载模板的完整路径名称
# x6 W7 y( a: b( j2 j0 E& PGetModuleHandle 获取一个应用程序或动态链接库的模块句柄
# K$ Q9 S3 j# q$ L" F+ P GetModuleHandleA(LPCSTR lpModuleName);7 I7 O0 E. L: ?% A& N
GetPriorityClass 获取特定进程的优先级别
4 ^, j9 r* `- FGetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 % ^* R6 n& @8 p# ]$ H- |; ^6 n
GetProcessTimes 获取与一个进程的经过时间有关的信息 ) e) c: H# Q' d6 t: i
GetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存 0 s7 ^ M$ M0 o2 G1 H& N7 b( w' M
GetSartupInfo 获取一个进程的启动信息 ' ^; h; L; M2 r! Z0 P7 X+ S+ K$ ]
GetThreadPriority 获取特定线程的优先级别 7 P4 [. \0 {" Z" |
GetTheardTimes 获取与一个线程的经过时间有关的信息 & R7 k3 Q4 O' ~: x6 l0 s$ ?5 y
GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符
* N9 V2 T! D, ?0 ^5 HLoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
% p! Q9 v# y; }: x2 g' d- I1 K' ELoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间
8 f- {! ^7 O& c; |7 HLoadModule 载入一个Windows应用程序,并在指定的环境中运行 - |$ J& X/ W2 ^9 ~! ~
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回
2 Y; `1 B9 X8 fSetPriorityClass 设置一个进程的优先级别
1 p! {8 n- b9 n; D5 m. H( ZSetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
& |* k# v# q7 S1 U' y% [" `/ V" nSetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量 2 l& {' z* e7 S6 ]& N, Y5 \2 e
SetThreadPriority 设定线程的优先级别
6 z5 `0 G Q% S! O* A% Q( ?1 mShellExecute 查找与指定文件关联在一起的程序的文件名 . f2 X) d6 t+ F9 x
TerminateProcess 结束一个进程 - D; E- S2 \) ^6 ]
WinExec 运行指定的程序
y+ ~# g2 C, o/ C2 z7 c u12. API之控件与消息函数 0 m; E; ?9 N$ z% |1 l7 v
AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小
P5 o: h; x0 C9 L& dAnyPopup 判断屏幕上是否存在任何弹出式窗口 8 l, `4 T& M3 [/ y# M
ArrangeIconicWindows 排列一个父窗口的最小化子窗口 7 U/ U# F1 |7 f5 o: H
AttachThreadInput 连接线程输入函数 R+ [' u, L$ s! D8 g
BeginDeferWindowPos 启动构建一系列新窗口位置的过程
& T- M o, ^( G1 BBringWindowToTop 将指定的窗口带至窗口列表顶部 " h! s, c+ n+ H% N% q- y3 e
CascadeWindows 以层叠方式排列窗口 3 \) B: u' F9 x* l" x4 [3 p
ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 : m2 H1 ^' X X6 L/ }
ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标
. o# l& d" C- D+ {0 h7 t xCloseWindow 最小化指定的窗口 % {' p7 ^; {, ~/ \, m: z% J9 u- _
CopyRect 矩形内容复制
- P; B0 ]% O/ Z: E" XDeferWindowPos 该函数为特定的窗口指定一个新窗口位置
& H7 q& R& |# h. Q3 BDestroyWindow 清除指定的窗口以及它的所有子窗口
0 @8 v' F( A: ]; t# P( n0 G* i& rDrawAnimatedRects 描绘一系列动态矩形 3 `' H4 }$ r4 ~4 ~4 ~2 ^9 ?, h
EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入 . t6 k6 r, ^2 U
EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
- K% c4 w/ s! a* C v X$ n/ O& pEnumChildWindows 为指定的父窗口枚举子窗口 / ~# _! _/ l' ?; j
EnumThreadWindows 枚举与指定任务相关的窗口
; v0 k, n! s/ g& VEnumWindows 枚举窗口列表中的所有父窗口
% l) m8 l, O+ f4 TEqualRect 判断两个矩形结构是否相同
! ]. y$ j' F( r) J2 R# b7 yFindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 + Q: I- k" c* f3 g% C: m( _$ q
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
. U) U8 v2 L* [6 _2 O) S) j# G, b3 oFlashWindow 闪烁显示指定窗口 % j. t. [8 _& M! }
GetActiveWindow 获得活动窗口的句柄 1 F& ^1 Y* j# h$ `) t6 A, z
GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
( P5 s" I3 W4 Y# u2 ~GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息
9 U( `& {6 s& O% m7 xGetClassLong 取得窗口类的一个Long变量条目
, ?: h7 Q7 \8 e( t" `4 EGetClassName 为指定的窗口取得类名 . X4 K' `- V7 Y- A% @
GetClassWord 为窗口类取得一个整数变量
* y x% c' B3 h5 J6 cGetClientRect 返回指定窗口客户区矩形的大小 S- w) v# t- `4 _+ k" p
GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
8 Q! N9 k: O( Y# R+ xGetFocus 获得拥有输入焦点的窗口的句柄 . E6 ~5 K, V0 r5 M) b
GetForegroundWindow 获得前台窗口的句柄 ( S7 g, {; w# g; O& u4 E5 d& g
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄 q0 { w- X% l+ Z" @! p' s
GetParent 判断指定窗口的父窗口
0 ^: K; S* C" E# JGetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 ; \1 T8 `% Q% G g5 j/ E/ e
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 : a; ^8 l# | |
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系
2 S+ b B& s1 a7 k( C5 AGetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID 5 D' A% L) P) s6 P
GetWindowLong 从指定窗口的结构中取得信息 : H# C. A- o- |2 U' D: J1 s; o
GetWindowPlacement 获得指定窗口的状态及位置信息
9 T* S) i# r% t6 i) t' KGetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 ( ~7 |- L7 z/ ]- ]" O" ^9 E
GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容 ! C _ v/ m* a2 O5 e
GetWindowTextLength 调查窗口标题文字或控件内容的长短 6 `, I. y- d9 A/ h
GetWindowWord 获得指定窗口结构的信息
0 f" k: I. C6 H* e: F& sInflateRect 增大或减小一个矩形的大小 8 M- L: U/ T, [ d8 o; c/ ?& ^
IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 $ C) \- Q+ s# ?- c# U- H. B
InvalidateRect 屏蔽一个窗口客户区的全部或部分区域 ) z5 [! |. b+ E! s6 Y
IsChild 判断一个窗口是否为另一窗口的子或隶属窗口
0 j2 S- f% R3 Y* d& a* ?! {IsIconic 判断窗口是否已最小化
, d1 v4 Y! i3 @- j. [5 ~! R; tIsRectEmpty 判断一个矩形是否为空
# i3 h8 Q; b$ Z3 |) }0 V4 d* `IsWindow 判断一个窗口句柄是否有效
}" U* d- j+ O( }& [+ uIsWindowEnabled 判断窗口是否处于活动状态 8 }# J! D* r" x7 S; R. T
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字
/ i! A! t/ l. ]8 K4 B( SIsWindowVisible 判断窗口是否可见 ! x1 b3 u7 k6 b! J- T- ~
IsZoomed 判断窗口是否最大化
' ]; B, u( O2 DLockWindowUpdate 锁定指定窗口,禁止它更新
& ]( D: o1 Q: {! ?: DMapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统 ) W3 o* ~5 `. F! Y% d
MoveWindow 改变指定窗口的位置和大小 1 ~6 B h4 n; G% s; a; u9 r
OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来 6 |+ H+ r6 A) x' Z# s/ f6 J6 p/ }
OpenIcon 恢复一个最小化的程序,并将其激活 3 ?# O% u) Z, B. z. z: Q
PtInRect 判断指定的点是否位于矩形内部 / h. A( T6 H) C# s* W
RedrawWindow 重画全部或部分窗口 ; O8 _$ ]* r8 g
ReleaseCapture 为当前的应用程序释放鼠标捕获
1 T+ N! }1 K4 A8 x6 vScreenToClient 判断屏幕上一个指定点的客户区坐标 4 u9 _" y9 q/ r" h
ScrollWindow 滚动窗口客户区的全部或一部分
" g& @" N; C, S h2 }9 j: MScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分
( p4 H+ Z5 g( _# b' E" ESetActiveWindow 激活指定的窗口
" a9 w1 {/ o: A! YSetCapture 将鼠标捕获设置到指定的窗口
9 U2 n! }( x: c+ a; ]3 oSetClassLong 为窗口类设置一个Long变量条目
; w3 h4 l1 e( N0 e0 NSetClassWord 为窗口类设置一个条目
1 N* _4 U8 w+ _* `- @1 [SetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口
' t. t2 s" h6 t5 H; |; q/ TSetForegroundWindow 将窗口设为系统的前台窗口
- s! H# Y& ?9 l, FSetParent 指定一个窗口的新父 - o! h! W: k" q. _6 T; r
SetRect 设置指定矩形的内容
1 M" y. M; r$ a+ K9 t; L/ QSetRectEmpty 将矩形设为一个空矩形
1 U3 }* ]" @2 E: ESetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID 6 j* w F5 }# L% {# ]
SetWindowLong 在窗口结构中为指定的窗口设置信息 5 c, k1 ?$ _4 w2 w: m6 Z2 S5 @
SetWindowPlacement 设置窗口状态和位置信息
7 Q5 t$ W1 Y5 l3 f; [! nSetWindowPos 为窗口指定一个新位置和状态 # ^$ E: s1 q* H1 Z: x
SetWindowText 设置窗口的标题文字或控件的内容
0 t k7 D" T; O6 x1 a% a1 ASetWindowWord 在窗口结构中为指定的窗口设置信息 9 @7 Z) K; R1 b" ^9 e2 J
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口
7 s) l" P- J b# ~1 I8 e: qShowWindow 控制窗口的可见性 + @, T2 ^2 O: R
ShowWindowAsync 与ShowWindow相似
6 |/ j" r1 H& }! t2 J8 }SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果 * t+ f2 U. J/ D) a3 K
TileWindows 以平铺顺序排列窗口
! }& `3 B& I u& D5 z' F5 l! ^3 M, _1 WUnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果 9 D2 J% ?* v* b
UpdateWindow 强制立即更新窗口 9 l/ u- E( z% J& W" x" E
ValidateRect 校验窗口的全部或部分客户区
( q' j/ |. u- `# }6 m, FWindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口
, A) f2 A- \+ `9 P4 ~/ c高级音频函数—参看《VC++ 编程指南.chm》11.6
1 V+ s5 U6 ? d* O( F5 @- s. |1 h: P Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。
& b5 E9 J8 i3 a" N2 ~ BOOL MessageBeep(UINT uType);
% X% S; p, D2 \: Q该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。
& y0 M* m" h/ n2 \! `9 X参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。2 }: |# A1 X) |- |' `! j
级别 6 d( h8 `7 l4 T% p
| 描述
' n+ L$ G: P8 C8 v! `" X | -1
$ _& _1 r4 c3 u: L/ J, T | 从机器的扬声器中发出蜂鸣声。 1 j0 g- p4 S) @7 O8 |
| MB_ICONASTERISK ! t6 k: r4 e" ~/ S
| 播放由SystemAsterisk定义的声音。 " q2 U2 ]6 H) d! i
| MB_ICONEXCLAMATION : P, _3 T% |4 m$ O, r
| 播放由SystemExclamation定义的声音。 / S' S& {' p0 w% m# S2 A4 |
| MB_ICONHAND
: O. g$ w0 Y) m$ U7 E; H | 播放由SystemHand定义的声音。
' d+ z' z9 i& k& S1 Y5 ] | MB_ICONQUESTION
) U5 U$ E3 ~7 A- X# ? | 播放由SystemQuestion定义的声音。 ) u3 H T+ {% q. K9 r; y4 a; S$ H! N
| MB_OK
4 U0 M) j8 l" W5 T( B8 I4 z) W6 I | 播放由SystemDefault定义的声音 6 y% U7 H6 g8 R/ v* Y- _2 d
| BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);
+ ]' T% u8 |" C9 T8 |* @1 C- v/ i4 O参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。
( ~* J. G; R" ~7 h$ _参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。
* {5 ]2 m- U6 A. r0 }/ F参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。* C0 `" E$ s: V( s3 ?8 U
标志
2 U+ i1 T' W6 |; b | 含义
3 F+ n4 s2 \& e* h" B& l- Q0 e | SND_APPLICATION - `$ q/ m8 e: }9 G& {! Q6 w
| 用应用程序指定的关联来播放声音。 6 Z) u: P# y/ O' C' }$ {6 Z' q
| SND_ALIAS
5 c P. A m2 v8 E5 _$ ]* S: n | pszSound参数指定了注册表或WIN.INI中的系统事件的别名。
& o, s% P" }) e: d | SND_ALIAS_ID 7 @: S- l4 |' p% {4 F9 r8 ]
| pszSound参数指定了预定义的声音标识符。
$ e4 h% [/ e L/ d) K+ A | SND_ASYNC
: o; M) \& G, p1 |5 M | 用异步方式播放声音,PlaySound函数在开始播放后立即返回。 + T$ B+ Q; R. _7 F' y! z
| SND_FILENAME ; o3 ]9 G, j" }# S3 ?0 P3 D
| pszSound参数指定了WAVE文件名。 / s: _+ r2 B2 V- C3 I. N/ d$ B) ]) d
| SND_LOOP + @. T0 M& r" X d0 ]# ~, B
| 重复播放声音,必须与SND_ASYNC标志一块使用。 1 B+ k$ S" F% U$ i1 I$ D
| SND_MEMORY
3 t4 w+ j. R1 U | 播放载入到内存中的声音,此时pszSound是指向声音数据的指针。 ! {$ V/ v" M) O) _( L
| SND_NODEFAULT
/ v- S4 \2 @4 D4 k5 r4 W" u6 a | 不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。
0 Y; e6 ]4 O4 K7 o, T | SND_NOSTOP
, }. \6 g0 }9 M | PlaySound不打断原来的声音播出并立即返回FALSE。 + a, X, X! T" ]. K2 r
| SND_NOWAIT 6 j& z% ?1 {6 S q: s
| 如果驱动程序正忙则函数就不播放声音并立即返回。 ' D3 @ Q# z: }4 j' ]; E
| SND_PURGE + }) ]" Y ^& }4 u, \* E( v
| 停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。 9 Q2 d5 h d) X0 a; s$ B
| SND_RESOURCE
" L5 J2 Z3 ?3 Q, l% z2 [ | pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
, _2 T5 Z% b" G: a | SND_SYNC 7 S: `6 s, D' F. x- U
| 同步播放声音,在播放完后PlaySound函数才返回。 3 d7 A- i& q4 k' p
| BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);
6 E7 N- H: k1 L; j' x1 n( J函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。% X1 ^* u' k: U" T% N6 D5 M) \3 K( o
MCI播放
0 @% q5 Q" k2 G2 h所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:( r, R$ T9 [6 G7 @' ]' a. `: y
MCIERROR mciSendString(; H/ L2 a3 S0 C0 V/ ]) p
LPCTSTR lpszCommand, //MCI命令字符串& j0 h4 w: F1 `9 I5 V+ Q2 o
LPTSTR lpszReturnString, //存放反馈信息的缓冲区
8 r# O) p5 ?, ^UINT cchReturn, //缓冲区的长度
9 V/ P! F7 |6 S8 n+ `2 s9 U: K: P, VHANDLE hwndCallback //回调窗口的句柄,一般为NULL
/ P( h1 y9 f% M/ t); //若成功则返回0,否则返回错误码。
1 t% w1 S2 p. Z该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:
' A3 I: Y, I* p+ E+ bBOOL mciGetErrorString(' }- s, J/ U( }5 a
DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码) e. V. j. a( p# c% ^# |* W' f
LPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区
: a v- n v/ p; w+ q/ pUINT cchErrorText //缓冲区的长度 X+ s" D! L% |5 @
);
6 b3 H! {8 c( P/ { |
|