|
|
原文:http://www.cnblogs.com/cltsq/articles/api.html# m$ a" W% }* M
1. API之网络函数 4 ^6 O7 Q* R; r/ x) v$ T
WNetAddConnection 创建同一个网络资源的永久性连接
3 Z, ]) M, e& h& VWNetAddConnection2 创建同一个网络资源的连接
C$ T( r$ a: m$ _5 q% i a; D8 Y7 eWNetAddConnection3 创建同一个网络资源的连接 3 e9 V: ]* ^% k, Q
WNetCancelConnection 结束一个网络连接 * k- q, C$ ]) A
WNetCancelConnection2 结束一个网络连接 # _+ g" j$ Q. J. R1 Z
WNetCloseEnum 结束一次枚举操作 $ \" Q$ m W/ d5 i6 V: Y4 A
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
7 B7 ^3 z$ W6 C0 iWNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
. \# p% e; C3 X* H, d, xWNetEnumResource 枚举网络资源
. S0 M$ Q4 d, fWNetGetConnection 获取本地或已连接的一个资源的网络名称 / d- j1 Q O" n
WNetGetLastError 获取网络错误的扩展错误信息 z* h7 A3 E1 P. U
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称
9 G' H: q8 J6 T9 y5 k' DWNetGetUser 获取一个网络资源用以连接的名字
$ F' g5 Z& B1 e6 N4 R* _' G; mWNetOpenEnum 启动对网络资源进行枚举的过程
y( D, g' w+ X& L2 L0 d2. API之消息函数 % K3 e7 k2 Q4 Y
BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
6 ~; i4 Q& V& NGetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 ( C' H- g# d7 ?7 {( t7 i
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 & @, d- `2 H& ]% @1 h$ M& |
PostMessage 将一条消息投递到指定窗口的消息队列
8 t5 f3 F$ ]9 K2 N- t: W8 ePostThreadMessage 将一条消息投递给应用程序
8 i9 b M9 M. i9 \6 J$ RRegisterWindowMessage 获取分配给一个字串标识符的消息编号
2 a( e0 C! r8 @( h( _ReplyMessage 答复一个消息 1 B" N, ^+ _$ O6 M
SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 " U1 B+ j: h9 i7 e0 o& X- x- T
SendMessageCallback 将一条消息发给窗口 0 H0 C$ h9 S* |2 e7 m
SendMessageTimeout 向窗口发送一条消息 4 b' \6 M# F* y
SendNotifyMessage 向窗口发送一条消息 " i( a4 x. z* d$ m/ i
3. API之文件处理函数 : j* w; Y! _/ W8 P
CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 9 s3 r) F- g1 G
CompareFileTime 对比两个文件的时间
1 L7 Q8 L2 U: G# H7 e$ M* Q' bCopyFile 复制文件 9 _6 Y3 B7 d: I1 B
CreateDirectory 创建一个新目录 0 F4 i/ {9 ^6 C5 t: f' o
CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台
( ~7 C3 F- {- @! RCreateFileMapping 创建一个新的文件映射对象
" d1 }0 v9 l" _/ e& eDeleteFile 删除指定文件
( S/ G% k) A! KDeviceIoControl 对设备执行指定的操作
1 ^# k I9 _9 I& N( A- v% j! P5 [DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值
1 {, } t, v* u/ bFileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
; F. J f# u( y+ g) U+ gFileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
, u- ^: Q+ o4 Q3 f, K! j1 m. u) ~FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构 - |! @7 }; M( {: m* j
FindClose 关闭由FindFirstFile函数创建的一个搜索句柄
3 w- Y6 c8 ~8 t! j6 r4 f0 AFindFirstFile 根据文件名查找文件
* V6 l* r6 Z" n9 jFindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件
, d! q' _( A/ ^( H/ FFlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 $ ^# p: c; t6 G& L2 {9 v J
FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘
$ n# z$ ?" q( V8 H. X' n5 SGetBinaryType 判断文件是否可以执行 ! [9 W% K7 ?5 N9 m# W- ?2 v
GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数
* I! q* s/ |4 t* nGetCurrentDirectory 在一个缓冲区中装载当前目录
, Z+ x8 E/ o: k* H% VDWORD GetCurrentDirectory(
2 a! |- p! h1 p: J DWORD nBufferLength, //缓冲区大小
0 x* G3 ~; t e, K& }5 J8 q LPSTR lpBuffer //缓冲区的首地址+ W% u4 l# _/ M3 t( T* A, P( R. y
);
: F( e0 ^ K# i# T" T' j* M8 S' |GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 9 s8 h8 t" R6 V& F3 _- C
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息 + A; {0 o1 E* b1 u- T
GetDriveType 判断一个磁盘驱动器的类型 " x- S' x6 |+ h6 l) _
GetExpandedName 取得一个压缩文件的全名 , D1 n1 [' S4 ?9 p
GetFileAttributes 判断指定文件的属性
% h( K$ v2 G/ Z- w& b$ d7 t) }& F5 \GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制
H6 _- p* f% d# a& ?GetFileSize 判断文件长度 . [( S: d2 J _
GetFileTime 取得指定文件的时间信息
4 Z( l8 y( ^/ yGetFileType 在给出文件句柄的前提下,判断文件类型
" m2 O( R$ G, iGetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息 $ R' d5 P7 \' F/ L: t2 N g0 Z
GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区 4 |/ F$ ^% P. P+ M! F, h
GetFullPathName 获取指定文件的完整路径名
& X. W. }1 [/ xGetLogicalDrives 判断系统中存在哪些逻辑驱动器字母
; S; z( `' L4 U$ [# y1 C, ]GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 8 w1 H# ]4 ~8 E- M. y
GetOverlappedResult 判断一个重叠操作当前的状态 * |* t6 _2 f; E! ?
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值
& g1 T: d }% o" s* W, \GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 ( G+ n5 V) R( ^% D+ b7 d
GetPrivateProfileString 为初始化文件中指定的条目取得字串
( T7 x. H# Y! d9 [* Z2 IGetProfileInt 取得win.ini初始化文件中指定条目的一个整数值 ( ]) I5 i" `4 Y6 Q6 E# X" G
GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
. {0 E6 a, }- DGetProfileString 为win.ini初始化文件中指定的条目取得字串 ) z$ W; \0 S% p. r3 e) l
GetShortPathName 获取指定文件的短路径名 ) H2 t$ a: V7 U: d8 \
GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 4 g1 s- H9 {/ u! H: i, _# f
GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用
: b7 d3 _# @- MGetTempPath 获取为临时文件指定的路径
6 l, u8 t6 I6 uGetVolumeInformation 获取与一个磁盘卷有关的信息
2 |5 n9 E5 T5 b& JGetWindowsDirectory 获取Windows目录的完整路径名 7 z6 \! L5 D- ?' c3 S' i+ m+ t/ H
hread 参考lread 8 _6 [: l8 w- `+ W7 c, F
hwrite 参考lwrite函数 ( b9 ]: s- v# |' e
lclose 关闭指定的文件
4 k& S6 S2 \! J; j) Z [6 elcreat 创建一个文件 7 K% f/ e" Z8 Z2 [" ~6 I; b
llseek 设置文件中进行读写的当前位置
2 g8 }/ @+ w2 i L7 V0 }LockFile 锁定文件的某一部分,使其不与其他应用程序共享 : n, Z7 K; J, @+ ?
LockFileEx 与LockFile相似,只是它提供了更多的功能 , C3 K6 m' z8 t9 Q2 J
lopen 以二进制模式打开指定的文件
- e( s4 f, @" g1 y; N) rlread 将文件中的数据读入内存缓冲区 ) {- a4 T! ?9 c$ p3 X4 U; R' ^
lwrite 将数据从内存缓冲区写入一个文件
1 g7 ~3 U8 f/ V% x. _* g! qLZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
( p8 e! h7 Z% f) N; RLZCopy 复制一个文件 2 j; u- s1 ~- `1 F% t/ V
LZInit 这个函数用于初始化内部缓冲区 R* j# o1 i4 F/ m7 z
LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
* K- V# Q# e( eLZRead 将数据从文件读入内存缓冲区
1 D) n: _( E$ Z. |- {! L$ I. FLZSeek 设置一个文件中进行读写的当前位置 ! }( l: v! N t. [
MapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间
& P: i# @7 y' s1 a7 `- D0 _MoveFile 移动文件 + u4 l- g" ]3 b5 v( s1 D
OpenFile 这个函数能执行大量不同的文件操作
( G- A, x3 g( q" X3 w8 q8 y9 [7 `OpenFileMapping 打开一个现成的文件映射对象 2 w( @ I* E/ k7 ]
QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
8 w! O5 i0 T. W* hReadFile 从文件中读出数据
; C" o8 r5 h% OReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
: o) a+ M3 R4 Q- [# o1 ~RegCloseKey 关闭系统注册表中的一个项(或键) 9 l( M) S* ?5 K `
RegConnectRegistry 访问远程系统的部分注册表 9 i7 H3 k5 Y' n# v
RegCreateKey 在指定的项下创建或打开一个项 * V" ~! K O |5 [. T% y! G
RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数 / p& l, {$ B7 a% U; k( ~' F& A0 }
RegDeleteKey 删除现有项下方一个指定的子项 - F/ C3 j1 I( Z7 o* s
RegDeleteValue 删除指定项下方的一个值
$ O4 ~/ j6 u: C" z; g% ^( |RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx
( A& d2 G1 w o$ ^% e& gRegEnumKeyEx 枚举指定项下方的子项 , o$ m. U6 t$ @: q6 l! C
RegEnumValue 枚举指定项的值
% }; D: U+ C; \& l7 x: JRegFlushKey 将对项和它的子项作出的改动实际写入磁盘 ; Y9 }& O. _* f. _
RegGetKeySecurity 获取与一个注册表项有关的安全信息
6 A2 j2 O! @% w: k1 HRegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息 8 U& U) ~2 M4 K8 O2 m* P: {1 v
RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制 1 L: r7 u) ]! ^3 e% G0 w" l' V+ I
RegOpenKey 打开一个现有的注册表项 . R2 R$ y3 r: F' W* ~( W+ M& [
RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
* T: f8 F L# u7 T5 i: bRegQueryInfoKey 获取与一个项有关的信息
! w9 R3 K" `% {0 B2 ZRegQueryValue 取得指定项或子项的默认(未命名)值 1 K+ ^* u4 \. {( |8 v( G* n% T5 u1 p
RegQueryValueEx 获取一个项的设置值
* l% e* x& b0 [8 b# }( A- VRegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息 0 K. F( s$ O( j) U* {% h( D
RegRestoreKey 从一个磁盘文件恢复注册表信息
: E' |5 S- B! kRegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件 : g8 O; p% j$ C
RegSetKeySecurity 设置指定项的安全特性
" U( ]- v0 F# l7 IRegSetValue 设置指定项或子项的默认值 & r E/ a! t* m- v, P6 f1 R
RegSetValueEx 设置指定项的值 * ~$ M% G3 W) k3 U3 |( ^
RegUnLoadKey 卸载指定的项以及它的所有子项
! p( E/ i9 V& N1 C6 nRemoveDirectory 删除指定目录 - M6 R+ s' ~1 ]* J8 }8 N) V
SearchPath 查找指定文件
! ] {6 Y, v" S; e! V$ F r$ D: PSetCurrentDirectory 设置当前目录
" h$ O# B+ s3 y2 z) cSetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾 0 H' T" ^/ s" A9 J l9 A
SetFileAttributes 设置文件属性 5 ^! n: K% d, b% ]. d. s1 l& F. W& y
SetFilePointer 在一个文件中设置当前的读写位置 , y/ X9 Q9 e1 O1 N3 [( v# r( v, _
SetFileTime 设置文件的创建、访问及上次修改时间
, h) g& z+ e$ f5 S! v* E3 pSetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果
1 _0 N, F: [- MSetVolumeLabel 设置一个磁盘的卷标(Label) " Z% F" ?4 ^; M+ g( F
SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构
8 O: z& `" p S' B8 V1 F, R) E KUnlockFile 解除对一个文件的锁定 - Y: {2 m, {! G. n
UnlockFileEx 解除对一个文件的锁定 0 U9 a+ b; v3 j) a2 G4 r
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射 - V- d/ B. p& e4 u
VerFindFile 用这个函数决定一个文件应安装到哪里 * E$ v" k5 ^/ V) w n: }
VerInstallFile 用这个函数安装一个文件
) b$ L/ J1 s! u. f0 U: CVerLanguageName 这个函数能根据16位语言代码获取一种语言的名称
( O6 m) m1 T2 N( Z/ i. xVerQueryValue 这个函数用于从版本资源中获取信息 * A4 A, [8 U$ d/ u5 |: w* }& B! n
WriteFile 将数据写入一个文件
1 u: Y f c! K: E, UWriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调 . `7 N- T( w1 U" }9 J9 r" Y4 B* x5 z
WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值
i" n6 O# @# O4 B8 g2 K# w$ EWritePrivateProfileString 在初始化文件指定小节内设置一个字串 3 M1 y( T* y t3 s$ V
WriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值
0 D3 ~, Q) p, A6 eWriteProfileString 在Win.ini初始化文件指定小节内设置一个字串
0 g* G- `% l# q e4. API之打印函数
! q: `4 u* B% J3 q& \- _2 e/ rAbortDoc 取消一份文档的打印 ( s" A2 j% _* b: i3 @
AbortPrinter 删除与一台打印机关联在一起的缓冲文件 8 _( t. I7 p9 B- _
AddForm 为打印机的表单列表添加一个新表单 ' N% V! x9 d; g9 i0 s
AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号 8 B. _# U; p3 X/ e ~) |% A& \
AddMonitor 为系统添加一个打印机监视器 $ A' X6 F+ R! B/ `
AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口 5 y ~7 E7 ^- w3 b1 M' I) V: P: V0 v
AddPrinter 在系统中添加一台新打印机 $ Y1 C3 m; u2 Q( y
AddPrinterConnection 连接指定的打印机 7 a4 r5 }! Z+ c" e$ U
AddPrinterDriver 为指定的系统添加一个打印驱动程序 . }2 E; v! E7 D
AddPrintProcessor 为指定的系统添加一个打印处理器
6 [4 s( u3 c) v$ ?AddPrintProvidor 为系统添加一个打印供应商
$ R6 t3 _4 }9 W* H4 d LAdvancedDocumentProperties 启动打印机文档设置对话框 * C# o# d$ t7 M7 m' s& g
ClosePrinter 关闭一个打开的打印机对象 5 k# K+ c0 T1 r3 V4 d" a& _9 m
ConfigurePort 针对指定的端口,启动一个端口配置对话框 * b3 l0 N6 s0 f9 ~1 _
ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
4 a, m9 F- |* `+ S* e) {, L/ pDeleteForm 从打印机可用表单列表中删除一个表单 9 Y5 B) i9 M" ^4 u5 Y( t
DeleteMonitor 删除指定的打印监视器
. L# u% X" n& s! BDeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口
7 X5 ]' x& Q- p& z+ UDeletePrinter 将指定的打印机标志为从系统中删除 / ^/ O8 ?( b5 v( A8 E [
DeletePrinterConnection 删除与指定打印机的连接
% B/ x( \9 I# s) r* ADeletePrinterDriver 从系统删除一个打印机驱动程序 0 B+ A1 ~% \( Z. ]. d
DeletePrintProcessor 从指定系统删除一个打印处理器 ! p0 Y0 X0 Y( d0 n" O/ a" W0 D
DeletePrintProvidor 从系统中删除一个打印供应商 " v3 Y4 ^, o) t3 p' @, T3 U; V
DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息
, `# B+ _# s6 O' ^ k5 ]! Y& i7 oDocumentProperties 打印机配置控制函数 9 M' L3 \6 P% h$ f$ [
EndDocAPI 结束一个成功的打印作业 $ b6 { V: y! a( }/ v, |0 s2 M! n+ Z
EndDocPrinter 在后台打印程序的级别指定一个文档的结束 7 t7 i p( d; p( m% m, s/ t
EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页 5 X5 r; ^6 m* L+ U% C; }, C
EndPagePrinter 指定一个页在打印作业中的结尾 ; [6 p) c& w; |. V5 \2 O, g1 p
EnumForms 枚举一台打印机可用的表单 + b: G* T) ]# m) T- _; @! u! i W% G8 O
EnumJobs 枚举打印队列中的作业
7 U. N3 g3 ^& N9 OEnumMonitors 枚举可用的打印监视器
. x5 O# }: O% r+ Q9 hEnumPorts 枚举一个系统可用的端口 4 P: N: }% [6 B) O. ?: n2 h
EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序
/ ~: L" G9 ?9 a$ k2 s2 ^EnumPrinters 枚举系统中安装的打印机
% B0 b( K) ?3 C% O, U. ~EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型
V7 |5 W$ x, ]9 G" J$ OEnumPrintProcessors 枚举系统中可用的打印处理器 " W) G# O( g. T
Escape 设备控制函数 ! F$ ~+ f V& {9 u V
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 M$ X; r; C" s' S7 d
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化 - O J# K0 o E- h+ O+ @0 I+ ^
FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因 3 N- f; _3 e. D
FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区
" [# C& e* U1 j- F. ^GetForm 取得与指定表单有关的信息
; f& U! i: ~$ P1 EGetJob 获取与指定作业有关的信息
) O* @! F# |% [6 f. N9 {: sGetPrinter 取得与指定打印机有关的信息
4 r7 l2 v2 d. r& w- CGetPrinterData 为打印机设置注册表配置信息 + ?( r, g7 ?8 L. z/ `
GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息
- w3 V" P: a0 K+ P& p+ ZGetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
. u+ i: I- ^* h$ k+ iGetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录 5 H) C+ }) Z: W( p
OpenPrinter 打开指定的打印机,并获取打印机的句柄 , s# v9 @! k4 ~1 S7 e& I; S9 O
PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框 0 m3 b$ _# {( A' u; K s
PrinterProperties 启动打印机属性对话框,以便对打印机进行配置 ! _9 r. t! i% I, D( d; t5 ?
ReadPrinter 从打印机读入数据 ; w l$ x1 k/ L; d; q9 X4 k, o W
ResetDC 重设一个设备场景
/ }; X# P j# D$ u( A$ XResetPrinter 改变指定打印机的默认数据类型及文档设置 1 D% G. h" g1 m5 V* o+ b
ScheduleJob 提交一个要打印的作业 , F8 ` i4 c/ O# _
SetAbortProc 为Windows指定取消函数的地址 * X6 r7 o' E: H: p4 }3 t
SetForm 为指定的表单设置信息 4 V$ `0 @/ k# B1 L& @! v
SetJob 对一个打印作业的状态进行控制 ! H- Y7 P; K: v; m7 h2 l
SetPrinter 对一台打印机的状态进行控制
Q. m' P2 e, @, m0 j) h0 d2 aSetPrinterData 设置打印机的注册表配置信息
& N' A9 i0 r: t5 a, k+ u% I# ]# IStartDoc 开始一个打印作业 , Z7 |! a4 _; n5 ~# R) E* C/ `7 Q3 ] K
StartDocPrinter 在后台打印的级别启动一个新文档 ( S- Y9 A$ B8 ~( ~* {
StartPage 打印一个新页前要先调用这个函数 6 V" m! ~! {% Y0 I$ g$ Z
StartPagePrinter 在打印作业中指定一个新页的开始
% i7 P1 q S( s8 I# y% ]WritePrinter 将发送目录中的数据写入打印机
& q- E% w; a" z8 Z. P4 j5. API之文本和字体函数
3 e6 j1 v9 L0 y1 g5 kAddFontResource 在Windows系统中添加一种字体资源
$ g2 }' f( j7 Z( ?' j8 \CreateFont 用指定的属性创建一种逻辑字体 6 A% h0 B; {4 ]/ U8 ?% Y: r7 [
CreateFontIndirect 用指定的属性创建一种逻辑字体
, k1 J2 L4 ` z+ U B7 PCreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 : x, u0 S- b3 `) y2 Z. E
DrawText 将文本描绘到指定的矩形中
+ S" N# T% d w6 z/ O3 ^DrawTextEx 与DrawText相似,只是加入了更多的功能 T9 o9 \1 M" @. j8 b2 e
EnumFontFamilies 列举指定设备可用的字体
8 f2 k) J* X e/ @EnumFontFamiliesEx 列举指定设备可用的字体
+ \/ D' W p4 `# A8 YEnumFonts 列举指定设备可用的字体 & Z: h# ?- n0 W, k2 i$ ]6 h
ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数 ! F2 Z7 I9 e0 E+ r" W
GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 " n$ V# a) G; M. ?; J& y' w. N" A- N
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 + T' {0 h' Y& Q
GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸
4 L) j: d2 O% w" z, n4 b1 X K L- }GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串
& T0 s6 k9 ]* G" v$ V; P. W9 cGetCharWidth 调查字体中一个或多个字符的宽度
* ?( i' E' ?0 s- r! sGetFontData 接收一种可缩放字体文件的数据
3 I; E* d8 s3 n' o, L. u( Z* ~0 [2 rGetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
6 p# U( B" N( tGetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 ( c* B3 P. `; z
GetKerningPairs 取得指定字体的字距信息
8 h" o* p" g1 h/ p6 Q1 jGetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息 1 x+ k5 g+ a0 z( n$ K$ o* I2 d$ j: Z
GetRasterizerCaps 了解系统是否有能力支持可缩放的字体 & o# Z' S9 v5 W" o* A
GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素
! ?' K. x! n. I @/ WGetTextAlign 接收一个设备场景当前的文本对齐标志 1 C" u D2 a, y% q+ {+ Y
GetTextCharacterExtra 判断额外字符间距的当前值 $ d9 @$ f% n! e( h# z7 J# O9 i
GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
% N$ K5 e( G9 J4 z! UGetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 $ O g9 q& z+ D+ J
GetTextColor 判断当前字体颜色。通常也称为"前景色"
# t) F. ], f/ P3 a. i @: aGetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息 % w. Q, ^9 Q4 s- y/ m9 t$ _5 J/ X
GetTextExtentPoint 判断一个字串的大小(范围)
; [! d9 v0 \& I" H1 a+ qGetTextFace 获取一种字体的字样名
E* G1 j( w) nGetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 & P9 a- F( ~7 M, \* P1 v
GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态
& b* t7 Q; C4 ^4 h9 N# l T8 GPolyTextOut 描绘一系列字串 ; G$ B |, `" ^- i
RemoveFontResource 从Windows系统中删除一种字体资源
( x# P& `) D j# R' QSetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 5 X" H, i* B8 K/ v5 Z
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置 c. p8 s& k4 K
SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距
- S% g! Q" S" L6 j& W! R/ ZSetTextColor 设置当前文本颜色。这种颜色也称为"前景色"
]; ?, ]( O' W9 b3 [6 f8 KSetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理
3 n: J+ Z2 H# p* k) E+ C; gTabbedTextOut 支持制表站的一个文本描绘函数 . x" `# z# Y s8 ~ O) t l4 k# X% Q
TextOut 文本绘图函数 9 c5 R5 `1 t! M. B0 ?7 T
WINGDIAPI BOOL WINAPI TextOut(
' J* w( D7 |+ Y& W: I9 ^HDC, //输出设备2 C0 E3 V6 d0 q( r2 h1 w# k
int, //输出的横坐标1 T, s$ Q. D4 M- _( T+ Y
int, //纵坐标+ U# v t9 L0 B0 G+ M: R
LPCSTR, //输出的文本str; {2 K2 `/ A! M1 N; k6 P* [
int); //文本的长度:lstrlen(str)2 C$ z$ }6 M$ h$ F8 ~6 ~" h
6. API之菜单函数
, p4 ^3 A+ J2 Z9 b' u, D2 kAppendMenu 在指定的菜单里添加一个菜单项
2 |* ^0 A7 k: A+ cCheckMenuItem 复选或撤消复选指定的菜单条目
$ [. m, o( K% A1 {) YCheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目
: O, U9 u: |# x4 }CreateMenu 创建新菜单 2 B( \. |( i5 T$ A
CreatePopupMenu 创建一个空的弹出式菜单 9 L, T' w7 @, S
DeleteMenu 删除指定的菜单条目
( k% ]3 V$ w6 D. zDestroyMenu 删除指定的菜单
0 \% [2 p5 w' M! G% i s' mDrawMenuBar 为指定的窗口重画菜单
( R! X& d s2 tEnableMenuItem 允许或禁止指定的菜单条目 " `; W8 l7 T1 I
GetMenu 取得窗口中一个菜单的句柄 & i& l( ?+ z* B% }$ E \& I
GetMenuCheckMarkDimensions 返回一个菜单复选符的大小
/ l' Z0 w {; u; zGetMenuContextHelpId 取得一个菜单的帮助场景ID
T, y4 K* p- K2 ?GetMenuDefaultItem 判断菜单中的哪个条目是默认条目 / v2 T3 r1 `5 k: R
GetMenuItemCount 返回菜单中条目(菜单项)的数量
* |; Y+ Z/ h' Q8 w6 l" h+ t/ vGetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID 1 W7 v; x% a5 B* \3 \
GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息
6 R6 z( a, I VGetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息
9 r) }* Q5 o& g; G7 h+ VGetMenuState 取得与指定菜单条目状态有关的信息 7 t) u$ M1 V0 E% r( y% K
GetMenuString 取得指定菜单条目的字串
3 S9 H7 u4 h# @4 jGetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置 1 B5 |2 _" H3 T4 ~
GetSystemMenu 取得指定窗口的系统菜单的句柄
6 C0 X: B3 e4 D* m8 g4 @1 T oHiliteMenuItem 控制顶级菜单条目的加亮显示状态
; p& {' m: o( P1 \. F( WInsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
3 U) T9 X) K c8 H8 `1 c% @+ |8 pInsertMenuItem 插入一个新菜单条目
/ m# n, Z* V' X% t! n# kIsMenu 判断指定的句柄是否为一个菜单的句柄
+ }, e: A! P1 A# S9 r! X# jLoadMenu 从指定的模块或应用程序实例中载入一个菜单
) m9 K$ S4 V6 W$ r! ALoadMenuIndirect 载入一个菜单 4 ^- ]1 W/ ~0 W7 U- k- i
MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点
; I- Q7 C/ B' d0 {5 p, gModifyMenu 改变菜单条目
6 f8 f0 I2 U( g# dRemoveMenu 删除指定的菜单条目 $ l: n. I8 M2 A2 z
SetMenu 设置窗口菜单 ( D4 b% `7 Z3 e
SetMenuContextHelpId 设置一个菜单的帮助场景ID
' |# @; g: _2 e9 GSetMenuDefaultItem 将一个菜单条目设为默认条目 9 {# i: Z9 R/ l+ U$ b* j. {. D. ^& D
SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√) + l7 P# c9 H8 W$ ]. s
SetMenuItemInfo 为一个菜单条目设置指定的信息
2 m5 c' q( @. R r$ B9 UTrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单 + n& O5 v% C# ?, O& R8 f3 Z2 q% Z
TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能
# d" ~5 `% ~* e7. API之位图、图标和光栅运算函数
! ]* n1 r& x$ a( J/ r% |" ?4 J1 i8 s' hBitBlt 将一幅位图从一个设备场景复制到另一个
+ V6 G2 N5 x) T# F* e WINGDIAPI BOOL WINAPI BitBlt(
& K6 Y+ s# c# C8 B$ T+ Q7 H" ?$ rHDC, //目标HDC
6 G& Y M) a7 n1 Lint, //X1
: o; |' H2 V5 ^3 Z: p2 E& tint, //Y11 x6 q/ V! ^/ N4 e% G/ F
int, //width
% x. k- A5 ?: K: u4 Q# ^% Q* bint, //height
: @$ y. |) Z! h$ j" M6 ?/ @, M9 O) F4 gHDC, //源HDC1 |! P* _4 z! K/ U0 Y
int, //右边的距离7 Q1 D: p* M" ~* }% @' k
int, //??
1 s; v5 L+ _4 d& G2 V& q2 _, _0 uDWORD); //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
; Q" y, @/ D2 s, w& v$ XPATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS A; D" y, h$ B/ a
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序 4 _0 y! ?3 T- `/ \/ f ?* O$ M
CopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作 + c2 s5 Q- z5 R% r8 K8 l' m: z0 E
CreateBitmap 按照规定的格式创建一幅与设备有关位图
c6 b8 t$ c* b- O TCreateBitmapIndirect 创建一幅与设备有关位图 7 _# w1 T$ u( {+ H# f, \/ H+ j, i
CreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容
% G6 ~6 ?6 g6 O. [CreateCursor 创建一个鼠标指针 ; b5 O5 x X, e' @! `
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图 % y4 n' ^8 ~3 A2 q+ n
CreateDIBSection 创建一个DIBSection , W( l! m% |1 b4 _" N& J" x3 b
CreateIcon 创建一个图标
2 A+ x+ O7 U2 T7 WCreateIconIndirect 创建一个图标
8 V5 p( e: y5 u) @$ ~9 T% LDestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源
R1 R/ Q; r+ E7 l, K: ^( XDestroyIcon 清除图标 ! j* b. f' Y! k, d8 D) u0 R
DrawIcon 在指定的位置画一个图标 # O# n9 \, x9 I, ?2 N
DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能 0 x4 \% v6 x- m( k1 j( R" a
ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
( P7 N& D$ Z. X) U$ ]; ?ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来
% H7 ^; i# [8 A4 M- UGetBitmapBits 将来自位图的二进制位复制到一个缓冲区
6 g$ w1 ?; X6 n! l- M+ k# WGetBitmapDimensionEx 取得一幅位图的宽度和高度
8 D7 O6 l) r& dGetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息 6 l: L, I- W9 u! n0 g: _% C
GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里
& {9 Q4 D- t) c! q+ R& QGetIconInfo 取得与图标有关的信息 , J" O" y, H( X! R
GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式
6 h! P: @0 S- M1 S, O0 D* |LoadBitmap 从指定的模块或应用程序实例中载入一幅位图
$ V5 \7 s- s* m8 eLoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针
3 y9 `! x# M% u" y# lLoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 , D4 ^+ {0 i: {/ `
LoadIcon 从指定的模块或应用程序实例中载入一个图标
+ j" M" ^# K1 WLoadImage 载入一个位图、图标或指针 3 w8 y) k( G; z5 S% L4 S! Y
HANDLE LoadImageA(% ^5 b9 S: \: P6 y$ ]+ Q, [2 [1 c, A
HINSTANCE, //当前实例句柄:AfxGetInstanceHandle(), P/ d' j, V1 A/ j
LPCSTR, //资源所在的目录:c:\help.bmp' J& l! @. ?3 W$ G, c) n3 z J
UINT, //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE
7 Q8 \- ?. Z4 o, D: S+ W0 A, ?, d int, //
$ y+ K/ w/ s" s& H* M0 I int, //9 j& a) @ Z/ Q- w8 F4 M8 n
UINT); //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|* H0 U6 N7 s9 L3 l- U
R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|; H2 Y1 c) ?0 J1 F
LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED; t0 l+ C% g4 d1 D" R; y; j3 [2 N
MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理 6 `5 {1 x0 }" K' ~- y' X0 e
PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景
3 ?0 _1 ?' _1 @+ l/ H, dPlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
1 {1 g) |5 o6 w; t' R2 n# v; OSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 . ?1 X* G* y5 ?# G8 q$ B- L& d' E+ e
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位
2 f3 \( r( t( @4 t* gSetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息
0 O# J5 P7 `9 ?$ O6 K" X/ s# TSetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里
) B/ G3 ?1 T, G3 g: i3 ~SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
3 y$ W9 J" a0 N! D: lSetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 / C9 a7 d$ p& Q* t" N' U& A
StretchBlt 将一幅位图从一个设备场景复制到另一个
5 w( g6 C0 b0 Q8 hStretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景 . d( [( k) g4 {6 {- a
8. API之绘图函数 + y) h6 i3 Y# l$ y1 J# g9 v
AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作 ( F: D a9 W8 x$ K
AngleArc 用一个连接弧画一条线 . {2 E, I! V2 J. q- C
Arc 画一个圆弧
6 O! Z' \6 F& _BeginPath 启动一个路径分支 ! I* Z1 H- S* j8 H, R' |; k
CancelDC 取消另一个线程里的长时间绘图操作 * \4 z* g& l( ^6 u
Chord 画一个弦
: X* n. X! P3 p' PCloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 * e& |' N& \0 t: B
CloseFigure 描绘到一个路径时,关闭当前打开的图形 ' g3 P3 Q/ X( r6 N8 \
CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄
Y1 h. J4 d0 U$ j F1 |' r! oCopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
, h9 w4 e8 F; w5 c' ACopyMetaFile 制作指定(标准)图元文件的一个副本
/ x+ h" ^- i3 x" }0 Y# j3 |6 w8 P: oCreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
$ u4 O/ W4 C" ?( P! x, XCreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) ; G3 n& b) c. d- u
CreateEnhMetaFile 创建一个增强型的图元文件设备场景 ' T/ H# F4 j5 Q0 d" H$ C. L* q
CreateHatchBrush 创建带有阴影图案的一个刷子 2 a- `* T0 W- \% H
CreateMetaFile 创建一个图元文件设备场景 - F. r- {$ [" y+ s2 [* ?
CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
, U& a) K2 J4 u) [4 E# Q: L A* ~1 RCreatePen 用指定的样式、宽度和颜色创建一个画笔
1 e4 k+ @8 \# w& B( |. W* K8 V/ dCreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
9 |2 q& ^' V5 }8 _: CCreateSolidBrush 用纯色创建一个刷子
- U5 J- j* i, ^! q/ v8 H/ [' `DeleteEnhMetaFile 删除指定的增强型图元文件 * o! E$ }5 ~6 i2 V5 }; v
DeleteMetaFile 删除指定的图元文件
9 k% r# s6 {0 T( |% VWINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放
( `; E9 x3 Z, F$ y' mDrawEdge 用指定的样式描绘一个矩形的边框 1 O/ G L+ S. r; T$ n, v
DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
d, h9 Z) a S6 L, tDrawFocusRect 画一个焦点矩形
/ r: Z- I# D/ {7 WDrawFrameControl 描绘一个标准控件 ( r: c1 j3 u) v I2 v) ?
DrawState 为一幅图象或绘图操作应用各式各样的效果
4 `) Y3 q! Z1 e$ g, xEllipse 描绘一个椭圆,由指定的矩形围绕 4 k" }( c& u, ~: E. s
EndPath 停止定义一个路径
. ?$ P( w. e& b5 k: D' {4 v4 ^EnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录 / r( l& }" U& J* y" K
EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
4 c" u w2 ~3 _% \$ O8 X, `: nEnumObjects 枚举可随同指定设备场景使用的画笔和刷子 9 e& E* v0 j5 k1 }# N( E: C% M
ExtCreatePen 创建一个扩展画笔(装饰或几何) + M7 ?$ p" o9 `2 `1 F' h' u
ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域 % c7 R6 i# E- N, j' P5 c/ n
FillPath 关闭路径中任何打开的图形,并用当前刷子填充
3 W: q% `% e& T8 [FillRect 用指定的刷子填充一个矩形 & m# a4 _% e8 Q
FlattenPath 将一个路径中的所有曲线都转换成线段
8 Q+ K% z( u$ C. x4 d$ ]FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
- q3 U, p! j% ^! u" J: Z# E$ v! eFrameRect 用指定的刷子围绕一个矩形画一个边框
! N1 q5 E5 b, C! }- K1 N( kGdiComment 为指定的增强型图元文件设备场景添加一条注释信息 % z, L; _7 B5 Y+ l- Y
GdiFlush 执行任何未决的绘图操作 - u3 y/ v2 I( ?* t& a# \
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 9 o: S4 C; e5 b" F
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列
2 i- p2 N& y3 j; m5 n* i, ]6 CGetArcDirection 画圆弧的时候,判断当前采用的绘图方向
: o; d* J/ S: G; s+ L IGetBkColor 取得指定设备场景当前的背景颜色 , I% n- M2 W N" b4 E% k: P o
GetBkMode 针对指定的设备场景,取得当前的背景填充模式
1 q& X) P- _: C h7 i& ZGetBrushOrgEx 判断指定设备场景中当前选定刷子起点 / c, I5 Q+ @, C( E7 ]9 i9 t6 G
GetCurrentObject 获得指定类型的当前选定对象
* h4 `0 x0 ]$ v+ Z5 e# c, |0 dGetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置 * O! g: l8 N2 C% Q5 j J
GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
9 V3 A$ d3 }7 s% }1 ?GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里 % P. t h# }% a4 r$ i8 E# N: G7 A
GetEnhMetaFileDescription 返回对一个增强型图元文件的说明 : c! [7 M; d, s( p0 @$ `0 S7 x
GetEnhMetaFileHeader 取得增强型图元文件的图元文件头 8 `( u4 ^2 Z: U" ~8 d! T
GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板
$ O0 n! F/ Q ]1 {' kGetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 5 m: V" W* w5 [( V
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区
2 @: J; t' o4 b8 J: NGetMiterLimit 取得设备场景的斜率限制(Miter)设置
& A8 ~* ~% s- E/ o2 KGetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
R( n) ^- A/ K9 t/ M; n' s# q0 J% `GetObjectAPI 取得对指定对象进行说明的一个结构 9 K" s Z" E2 o7 x0 G
GetObjectType 判断由指定句柄引用的GDI对象的类型 7 C1 ~/ Q5 H1 t3 P2 M. W
GetPath 取得对当前路径进行定义的一系列数据 # E; @3 O- X$ r) f( x6 `- j2 z
GetPixel 在指定的设备场景中取得一个像素的RGB值 % [* a( M% M; d0 e1 \8 e# O: p
GetPolyFillMode 针对指定的设备场景,获得多边形填充模式 % g- _+ o% U) S8 b, @
GetROP2 针对指定的设备场景,取得当前的绘图模式
. E3 O" h8 V1 f, @GetStockObject 取得一个固有对象(Stock) ; s: a% W$ N- O& A6 j: p% C9 ?
GetSysColorBrush 为任何一种标准系统颜色取得一个刷子
1 L/ M4 L6 y% u. ]8 kGetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件
# m/ N- f! W+ _" C5 nInvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形
' ?0 o- }+ P% Q `* _8 q* y3 bLineDDA 枚举指定线段中的所有点 ( P( f; |/ j4 L) y6 u# Y$ N
LineTo 用当前画笔画一条线,从当前位置连到一个指定的点
2 C) Z1 U K5 v9 N( XMoveToEx 为指定的设备场景指定一个新的当前画笔位置 ( X+ }& e {: G/ n
PaintDesk 在指定的设备场景中描绘桌面墙纸图案
( s% _2 L; R G R, c s& rPathToRegion 将当前选定的路径转换到一个区域里 * \ d6 u7 K. A* ]2 \( q
Pie 画一个饼图 8 \5 p" P" i6 r1 N' q
PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件 , F0 b' f l# V q
PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 % k8 D+ }0 O# [8 W; Q
PlayMetaFile 在指定的设备场景中回放一个图元文件 2 @# V, [5 }& d" v
PlayMetaFileRecord 回放来自图元文件的单条记录 ) D0 W0 \6 W) f, `4 P, y
PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
4 f9 p# d* i2 |, |& q. V' V! GPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
3 `4 {4 M7 x& KPolygon 描绘一个多边形 & X' G1 s1 t( U% q' O
Polyline 用当前画笔描绘一系列线段
`' u: }' W8 y8 V( \6 S; ZPolyPolygon 用当前选定画笔描绘两个或多个多边形
) k; q* x: `7 N9 G! C7 v' k, W* dPolyPolyline 用当前选定画笔描绘两个或多个多边形
; z' T: n* v. B- u# hRectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充
@0 |" \; u3 f3 c0 A4 L! M5 K* j% SRoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充 : G/ D6 `# m+ t6 T
SelectClipPath 将设备场景当前的路径合并到剪切区域里 4 W5 S2 f" [! W3 W
SelectObject 为当前设备场景选择图形对象 7 z( v/ F7 D5 x$ Q1 G
WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);
* R, _& ]0 O. T, pSetArcDirection 设置圆弧的描绘方向 5 `$ P1 t0 F" {% W9 H* E
SetBkColor 为指定的设备场景设置背景颜色
; P- x, [' w6 |+ W1 x4 o7 uSetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
) V+ p, L. p( ?- pSetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
) s3 `( d( R) }: k: fSetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
* @( v- i& x D+ E6 R, Z( nSetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件
2 C, i0 U3 j2 t, I9 Q! \SetMiterLimit 设置设备场景当前的斜率限制 : ^) { ]) c6 T7 A0 T; v
SetPixel 在指定的设备场景中设置一个像素的RGB值 & ~& ~+ H) `* V) m( ^* P8 s
SetPixelV 在指定的设备场景中设置一个像素的RGB值
# d! g( J. u: ^+ y4 lSetPolyFillMode 设置多边形的填充模式
# A3 r4 r9 I5 l# F7 C3 X/ H; wSetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致
+ V3 K. ?( U! a' u t7 B5 oSetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 . J7 y3 n |/ a! R3 x( b6 ?
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域
8 z+ f; S4 Z0 V# l- p0 PStrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭 ( M$ g& q* f1 e+ q+ S* n* w- d: P
UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数 % X3 H6 P9 M5 ?& s! z' ^" n( S
WidenPath 根据选定画笔的宽度,重新定义当前选定的路径
- Y* x" e& c7 I) o: O; b8 c+ e: e9. API之设备场景函数 0 L3 `: L& q1 V- {5 P
CombineRgn 将两个区域组合为一个新区域
: d! O1 X* J; h j; u( W4 `. W: B sCombineTransform 驱动世界转换。它相当于依顺序进行两次转换 ' A3 B2 ^- I5 [* N6 u
CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景 5 a4 n7 P6 n, a9 X; H
CreateDC 为专门设备创建设备场景
# E* V4 a) V, VCreateEllipticRgn 创建一个椭圆
+ K$ q* J0 x+ c: L5 x5 BCreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域
3 @8 k4 [8 u- m6 w4 m' B" g$ XCreateIC 为专用设备创建一个信息场景 / v: \" S: C; f+ `9 o6 a1 T
CreatePolygonRgn 创建一个由一系列点围成的区域 " C* u: ` K/ I& h
CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的 : ^1 R& g7 Y. \3 L# H
CreateRectRgn 创建一个矩形区域 7 H" @0 y. b, y+ ^. ^) H7 I6 N
CreateRectRgnIndirect 创建一个矩形区域
9 _: o9 w- d. I( D7 u! kCreateRoundRectRgn 创建一个圆角矩形
, n$ D! K+ F- DDeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源
1 }5 |$ ~% V! t: R0 R& Q; s! mDPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 ) m* B k( H% R3 `
EqualRgn 确定两个区域是否相等 9 ^4 p m+ Q( N7 D
ExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图
7 W& W# V; l2 N, X \ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域
' M9 G& V" Z+ Z6 l. L: t" SExtCreateRegion 根据世界转换修改区域 ' y$ ?) O- ~, l4 t7 m' A
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
9 s. J9 A1 X9 {6 L& G8 KFillRgn 用指定刷子填充指定区域 ' I; E5 p# V9 E# \, u" U8 a
FrameRgn 用指定刷子围绕指定区域画一个外框 9 J0 }1 {0 O0 ^& V- s- A+ D: f
GetBoundsRect 获取指定设备场景的边界矩形 8 l4 ~0 S- b1 d9 `% I5 x
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 + U2 N$ V! P! x0 Z
GetClipRgn 获取设备场景当前剪裁区
2 V# b1 R; Y2 S( kGetDC 获取指定窗口的设备场景 ' N9 g0 m- f9 c6 W1 L
GetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 C5 J' \5 R" a- \ h" ^
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示) 4 k: D3 e% _1 Q0 [0 A1 L- E
GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息 ) I8 m6 a+ R4 T& f
GetGraphicsMode 确定是否允许增强图形模式(世界转换)
1 Z5 R- Q" f" W+ Y4 rGetMapMode 为特定设备场景调入映象模式
, z D W& x" b/ i2 k2 OGetRegionData 装入描述一个区域信息的RgnData结构或缓冲区 ) ]7 I: C' t+ f( ]2 f7 [
GetRgnBox 获取完全包含指定区域的最小矩形
) i, }, {+ ` J6 B" @$ {GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新 m3 I2 v/ _) x$ N: \" H' |
GetViewportExtEx 获取设备场景视口(viewport)范围 9 H. C8 G3 {8 @7 R6 [: M3 V* s
GetViewportOrgEx 获取设备场景视口起点 ; E+ g; h; j0 A7 a$ h# b: u
GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景 + ^/ ?: ^5 O. g
GetWindowExtEx 获取指定设备场景的窗口范围 9 I$ }6 c1 x; H! o* \
GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 7 L+ K! H$ |$ F
GetWindowRgn 获取窗口区域
$ B8 C. }- X t' SGetWorldTransform 如果有世界转换,为设备场景获取当前世界转换 ' m7 D; a" d) v' G5 L, ?
IntersectClipRect 为指定设备定义一个新的剪裁区 / W- i7 M( T/ T3 R6 E
InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画
6 D+ V- e4 a* b, y5 a' XInvertRgn 通过颠倒每个像素值反转设备场景指定区域 ; q3 Z5 ~7 D0 ], u! P7 s. }5 f0 O
LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标 ( b9 Y" i# F& b: G' y- [
ModifyWorldTransform 根据指定的模式修改世界转换
L% L4 o( r; B9 U7 [2 [: LOffsetClipRgn 按指定量平移设备场景剪裁区 6 M6 N# f+ q5 ?
OffsetRgn 按指定偏移量平移指定区域 7 i# C, p9 z) x1 @8 O% X" F
OffsetViewportOrgEx 平移设备场景视口区域 $ S; { w% e2 e f6 _
OffsetWindowOrgEx 平移指定设备场景窗口起点 * Y6 Y, a1 H L# s7 u
PaintRgn 用当前刷子背景色填充指定区域
# \) `7 u' r8 iPtInRegion 确定点是否在指定区域内
0 p3 A/ {9 J) }PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内) 7 ?$ {2 d7 t! n
RectInRegion 确定矩形是否有部分在指定区域内
! ?% P% R9 v Q8 [. R4 ]RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内) " l5 X( Q3 K: i( K
ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景 ! F( y% p. U7 z7 m* G3 G) @; P
RestoreDC 从设备场景堆栈恢复一个原先保存的设备场景 }- E! z3 s5 ]3 g+ a: V3 b7 t
SaveDC 将指定设备场景状态保存到Windows设备场景堆栈
& s0 }. N5 Z( ~+ O1 M7 bScaleViewportExtEx 缩放设备场景视口的范围
3 L- m. N5 m, \2 g2 m. I' T+ gScaleWindowExtEx 缩放指定设备场景窗口范围
. C) E, E* ]2 v- {) `7 _ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
# x d( E% @ G" z2 JSelectClipRgn 为指定设备场景选择新的剪裁区 $ l' H; P5 C4 f0 t- v
SetBoundsRect 设置指定设备场景的边界矩形 5 V% _6 S% J9 y) [8 ^
SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换)
7 i( [# N$ _+ m$ PSetMapMode 设置指定设备场景的映射模式
- R, t/ `3 W2 zSetRectRgn 设置区域为指定的矩形 - w. n8 q' _7 d/ S
SetViewportExtEx 设置设备场景视口范围
8 t5 \% C* G6 S' L n4 VSetViewportOrgEx 设置设备场景视口起点 # m9 l* l! i$ I8 Y3 p6 @
SetWindowExtEx 设置指定设备场景窗口范围 - o3 ^8 f# ?: b+ R/ h8 W0 H& }
SetWindowOrgEx 设置指定设备场景窗口起点 * L8 R7 D$ _( e7 ~
SetWindowRgn 设置窗口区域 ) o$ ?) c+ D( c$ W" t$ p) i2 v
SetWorldTransform 设置世界转换
. k* y6 \/ u8 p9 _3 A% R- u2 kValidateRgn 激活窗口中指定区域,把它从刷新区移走 / J' Y( A% H) [' a5 V
WindowFromDC 取回与某一设备场景相关的窗口的句柄
0 ?& t& E7 s; b4 R) e/ S7 f10. API之硬件与系统函数
0 J/ E4 c+ B. S& J* O1 Y/ ~ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 4 Y* z) b! ]4 D P j: `
Beep 用于生成简单的声音
1 R- n. j. o( t( B% hCharToOem 将一个字串从ANSI字符集转换到OEM字符集
8 T- }) ?3 i7 k' I' Y$ M+ VClipCursor 将指针限制到指定区域 ' U* Q9 y0 `3 P5 \6 x
ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID : y. N; J4 Y4 ~ t, m0 ]) L
CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符
, o7 u; E% [7 H- |& S4 K: {2 XDestroyCaret 清除(破坏)一个插入符 ) v g0 |& r1 @& C8 p( j: |6 l# {. G' ?
EnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息 , |$ A* o2 l0 K- C. p" h
EnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
2 Y" Y7 M6 v uEnumSystemCodePages 枚举系统中已安装或支持的代码页
5 P. J% O: N/ ?5 |& I; R9 REnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置
$ Z8 M& A( K$ \& e- g8 b; G$ gEnumTimeFormats 枚举一个指定的地方适用的时间格式
: t9 b0 M1 {" Q) n' GExitWindowsEx 退出windows,并用特定的选项重新启动
% h- S' O* S' g8 o9 e2 @' V2 z WINUSERAPI BOOL WINAPI ExitWindowsEx(( ]1 T7 s$ n( }2 w, m ?$ s
UINT uFlags, //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG) M5 \/ v0 |" l
DWORD dwReserved); //0! Q4 v* [( p) ~ U
ExpandEnvironmentStrings 扩充环境字串
0 B9 j3 [1 [7 y9 d7 I5 yFreeEnvironmentStrings 翻译指定的环境字串块
$ k2 }4 K0 p1 a; ^5 u3 dGetACP 判断目前正在生效的ANSI代码页
* U w2 e0 G5 {* P8 J: iGetAsyncKeyState 判断函数调用时指定虚拟键的状态
4 U( G6 K+ |& p) {GetCaretBlinkTime 判断插入符光标的闪烁频率
7 L- \, ~/ e) |GetCaretPos 判断插入符的当前位置
; U, z5 Y7 n4 V' X' VGetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域 0 x, R$ H% h1 G: `* ^$ S
GetCommandLine 获得指向当前命令行缓冲区的一个指针 ! C# B3 n# A8 n1 b {3 e
GetComputerName 取得这台计算机的名称 , k9 h+ ^) U+ O/ ~# b/ ]) C% n
GetCPInfo 取得与指定代码页有关的信息 ) e' G7 h+ [6 y5 Z. t! @# }6 W
GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字
5 n2 a7 c4 c4 J+ Y6 \& H& S* K$ lGetCursor 获取目前选择的鼠标指针的句柄
/ h6 [9 [. B9 c7 F! MGetCursorPos 获取鼠标指针的当前位置
! ~' N D1 J" Z+ m- a- B9 C$ PGetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化
) H8 U% `5 a8 y8 q6 ?GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间
2 u! M c- D5 R2 A% i6 @" RGetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄
+ L @( @* b; \5 `4 r& sGetEnvironmentVariable 取得一个环境变量的值 B# w7 w, \, m" g2 M
GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件 1 ?0 a$ U# K {1 A; z
GetKBCodePage 由GetOEMCP取代,两者功能完全相同 - e9 I9 T6 a1 w7 b7 V0 z7 f/ c( ?
GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
6 w% b3 d4 z8 i8 u4 v3 h( ]4 ~, {5 YGetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表 $ R4 B1 k, V) U
GetKeyboardLayoutName 取得当前活动键盘布局的名称
* K( K0 `) n4 gGetKeyboardState 取得键盘上每个虚拟键当前的状态
3 J6 U$ Q- _8 d8 B2 V. v) gGetKeyboardType 了解与正在使用的键盘有关的信息
7 B8 J4 k* Z3 q2 nGetKeyNameText 在给出扫描码的前提下,判断键名
1 O/ T8 H: q4 VGetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态
+ q0 t8 N5 B$ n4 B3 [GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息 * b7 F* i7 p; K( q
GetLocaleInfo 取得与指定"地方"有关的信息
2 Y5 j) G4 p( i' F% S. jGetLocalTime 取得本地日期和时间
8 Q4 L/ p* Q) v) VGetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字 . R% e8 s& N3 s" v4 @& C
GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
7 S) d9 _8 r$ }9 J/ uGetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型 3 j. p3 ^( b: O' r, o* P' V5 W
GetSysColor 判断指定windows显示对象的颜色 # L- h, j% o- |! Z/ C. x
GetSystemDefaultLangID 取得系统的默认语言ID
' D/ W) w& J/ n9 t/ i6 JGetSystemDefaultLCID 取得当前的默认系统"地方"
" ^8 w/ G) m# R, ~GetSystemInfo 取得与底层硬件平台有关的信息 5 U/ j2 a" Q. g. M3 k
GetSystemMetrics 返回与windows环境有关的信息
( z! {1 f/ ~- O- u8 DGetSystemPowerStatus 获得与当前系统电源状态有关的信息 0 q5 l2 p1 ?! O0 Z0 p8 E$ M: ^* L
GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式
' d7 u6 I7 [5 Q1 }9 T w) eGetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步 . h# X+ M5 m% @/ l6 h5 o& h
GetThreadLocale 取得当前线程的地方ID 8 G0 \4 ]4 j6 A4 ^/ _) ^: y
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
% ~! b, Y7 V2 {% {! d2 ~5 v9 f( nGetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间 7 }- W% | m) r, o
GetTimeZoneInformation 取得与系统时区设置有关的信息
( [ w( c* T: U0 b/ Y8 VGetUserDefaultLangID 为当前用户取得默认语言ID 0 x& h n$ C8 F% X! j C& n
GetUserDefaultLCID 取得当前用户的默认"地方"设置 5 |2 y, m0 f' w7 ^- }' g
GetUserName 取得当前用户的名字
, H6 I# z2 I) s4 E5 PGetVersion 判断当前运行的Windows和DOS版本
! W0 g, S! U* {GetVersionEx 取得与平台和操作系统有关的版本信息
5 R9 x+ B$ x& N6 Q8 {* P# AHideCaret 在指定的窗口隐藏插入符(光标) - M" U3 C t4 @. P1 o' y3 g2 [
IsValidCodePage 判断一个代码页是否有效
7 X3 J M# C [IsValidLocale 判断地方标识符是否有效 9 s6 C- L; ~* i
keybd_event 这个函数模拟了键盘行动
) I4 J5 U% F+ Y$ J0 L2 n2 }, iLoadKeyboardLayout 载入一个键盘布局
5 r) k9 b( r0 h& ~9 N1 a/ L1 ^MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换
2 Z, U$ n- n) B5 z) K9 f: EMapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换 $ M s: ^5 r2 Q6 v' _; y/ v) }
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的 . q) t+ t8 W) K W* Q
mouse_event 模拟一次鼠标事件 4 _; ^, B! w' `; p
OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态 , s6 P$ I( w3 N3 J; @, J, A
OemToChar 将OEM字符集的一个字串转换到ANSI字符集 4 C2 _5 t. r: \1 m! \) _
SetCaretBlinkTime 指定插入符(光标)的闪烁频率 ( @5 i& I3 M; G( O" ^" Y
SetCaretPos 指定插入符的位置
* w( W$ j. e8 i4 j' U% ISetComputerName 设置新的计算机名 * p! _, \9 L! j2 ^
SetCursor 将指定的鼠标指针设为当前指针
+ {( B6 {1 U( Y+ d( n8 Z0 \SetCursorPos 设置指针的位置 E0 q! E l$ n# @
SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 % A6 S9 |$ u1 v- x- _
SetEnvironmentVariable 将一个环境变量设为指定的值 / b0 _, x5 M1 b7 \4 v
SetKeyboardState 设置每个虚拟键当前在键盘上的状态 - a- N: ?# ~" k2 c
SetLocaleInfo 改变用户"地方"设置信息
5 d0 h1 E# q2 B/ E' X' _) ySetLocalTime 设置当前地方时间
- v+ w+ G6 S0 nSetSysColors 设置指定窗口显示对象的颜色
) [! u" ?( f3 ^0 e' u2 x! }9 ASetSystemCursor 改变任何一个标准系统指针 ( Y6 ^" F& o, J* e ?3 W
SetSystemTime 设置当前系统时间
# q4 n* n4 l, S4 m" USetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 / m: P% c/ |8 U" W
SetThreadLocale 为当前线程设置地方
) H5 X9 e$ N. o: a. J% pSetTimeZoneInformation 设置系统时区信息 4 M" q2 k8 T2 W0 W0 i
ShowCaret 在指定的窗口里显示插入符(光标) 7 C% T. h, P' R( ?. z
ShowCursor 控制鼠标指针的可视性 2 m" V$ q6 m0 q' \, y) V6 k% |7 N
SwapMouseButton 决定是否互换鼠标左右键的功能 ! c" n4 r4 ~3 c& ?% s' Y( [6 [
SystemParametersInfo 获取和设置数量众多的windows系统参数
( |4 ^6 \+ {8 Z( d& DSystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
& ?# }/ ~% @9 T+ ]9 p! O* dToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符 ) M0 |" ?) a& K9 @2 u. f4 a+ Q6 x
ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
( s8 j4 l. N9 B/ Z* cUnloadKeyboardLayout 卸载指定的键盘布局 [8 q: Z- u) x. A" A w. s1 z2 K
VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态
% h7 l, X5 D8 {" E ?) j0 L11. API之进程和线程函数
( q Y; S0 \; m: k! G& [4 QCancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作
2 k( [) e! Q/ }- K. q1 pCallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 9 B% u& e1 p, L9 a" l9 M9 u2 s4 n! ~
ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接
! k+ }" C' `' u) v1 H: S- |CreateEvent 创建一个事件对象
+ C6 b/ N( G2 vCreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人) - B, n# c3 b2 h- \$ g" ]0 G
CreateMutex 创建一个互斥体(MUTEX)
4 w# o Q5 p- H& ^+ KCreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用
! D1 R+ N( l( y- W3 x1 pCreatePipe 创建一个匿名管道
a/ v( u/ I& g* C2 WCreateProcess 创建一个新进程(比如执行一个程序) " w' d) w6 S* A* }9 A$ Z
CreateSemaphore 创建一个新的信号机 ; K# F+ X/ W, ~; V7 E6 j
CreateWaitableTimer 创建一个可等待的计时器对象
4 v$ t7 Y6 G9 f% J4 WDisconnectNamedPipe 断开一个客户与一个命名管道的连接 # z% P M8 b5 t3 f
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄
& u( P; W0 V! O) s/ q, UExitProcess 中止一个进程
6 P6 y+ a* O$ U3 V' [FindCloseChangeNotification 关闭一个改动通知对象
' J1 a$ R+ t0 ]& b! l- u9 eFindExecutable 查找与一个指定文件关联在一起的程序的文件名 : Y- y. {% h9 `
FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化 6 t& h7 k! A! a. r% x9 o
FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化
; q X8 V1 W7 Q# ]( GFreeLibrary 释放指定的动态链接库 7 |9 L! w. [6 Q& A% p& ]
GetCurrentProcess 获取当前进程的一个伪句柄
, t4 D- u1 [8 E# r3 lGetCurrentProcessId 获取当前进程一个唯一的标识符
* D$ y1 p4 W3 ~8 i% K' {GetCurrentThread 获取当前线程的一个伪句柄 ( s8 E/ p5 T& C* B8 l
GetCurrentThreadId 获取当前线程一个唯一的线程标识符
+ e O; e! {- `* _: v4 zGetExitCodeProces 获取一个已中断进程的退出代码 : ~% ~) N* @* o2 w/ a+ ?1 [
GetExitCodeThread 获取一个已中止线程的退出代码 5 X3 n6 g. [9 K% R$ x8 ^
GetHandleInformation 获取与一个系统对象句柄有关的信息 / `. F; [3 |2 P. ^% g
GetMailslotInfo 获取与一个邮路有关的信息 - l' l, g7 q" N8 ]: W* P
GetModuleFileName 获取一个已装载模板的完整路径名称 ; s6 @0 j0 P/ d
GetModuleHandle 获取一个应用程序或动态链接库的模块句柄 4 o1 d8 o2 a; C2 ?" [1 s! f
GetModuleHandleA(LPCSTR lpModuleName);$ u1 o' f9 _# P3 H2 I
GetPriorityClass 获取特定进程的优先级别
5 w2 }! g$ O. WGetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 4 x$ Z$ P0 D& k6 t/ D1 ]% h% ~
GetProcessTimes 获取与一个进程的经过时间有关的信息 6 F( V6 D3 k5 U7 c) w4 g x; {2 C
GetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存
3 j5 m4 A9 V- x; C0 e, J3 zGetSartupInfo 获取一个进程的启动信息
; a5 H$ Z% ~8 nGetThreadPriority 获取特定线程的优先级别 * S" ^) T' Y I u9 I( [& t! ]
GetTheardTimes 获取与一个线程的经过时间有关的信息
`6 d3 S: k# M+ m. N/ E1 ]GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符 1 ? X& G: h. s4 X: ?2 f: v* C0 E( j
LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间 0 \" i- [2 z8 i+ I m
LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间 + C' X' t X+ B- E: C; S( c
LoadModule 载入一个Windows应用程序,并在指定的环境中运行 4 Z: Z i' e2 `
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回
4 f% V2 @2 K7 ASetPriorityClass 设置一个进程的优先级别 / t3 \4 @1 ?9 R ^4 o; [
SetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
3 K5 {# B, `: n6 lSetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量
) T: `0 ~* j. ]% lSetThreadPriority 设定线程的优先级别 7 s$ Z. l! ]( v) E6 a! c
ShellExecute 查找与指定文件关联在一起的程序的文件名 . i' ?3 n( l* I5 X* T
TerminateProcess 结束一个进程 # T% `) p% c5 D% S# N7 r h! g* s
WinExec 运行指定的程序 , p- J6 }) g; B1 f+ M/ k) W
12. API之控件与消息函数 + y% C/ f( u% Y# X7 K$ G/ l
AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小
& h2 H( ]! `$ l2 C5 X/ N. t+ tAnyPopup 判断屏幕上是否存在任何弹出式窗口 2 b" d5 t% ]; a- W1 W3 j) @
ArrangeIconicWindows 排列一个父窗口的最小化子窗口 8 p1 A3 g$ J" s" z& n0 n; ]
AttachThreadInput 连接线程输入函数
5 k' w* r8 e2 k# i9 IBeginDeferWindowPos 启动构建一系列新窗口位置的过程
: ^& [+ i7 s8 j2 t4 OBringWindowToTop 将指定的窗口带至窗口列表顶部
5 x. @0 U2 G t5 Q$ K; `# x5 uCascadeWindows 以层叠方式排列窗口 ( _6 z a! g9 W) ]) U6 d
ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄
! H6 [% h( b( Y1 g fClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标 7 X- ^& K) V! B7 t0 G' }1 R
CloseWindow 最小化指定的窗口
5 e: P" c( P, l$ {$ p* B0 k5 OCopyRect 矩形内容复制
* |1 N7 K! \; m# QDeferWindowPos 该函数为特定的窗口指定一个新窗口位置
# \/ ]- w! \8 d# k' q4 ZDestroyWindow 清除指定的窗口以及它的所有子窗口
# T3 _0 R6 n* |% g% h' U3 @DrawAnimatedRects 描绘一系列动态矩形
4 L2 j$ w. ?% r2 m- ]EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入
5 L: h: v4 ~. Q7 \% WEndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态 " i* E' C) {; b a3 C! a7 `, @: [
EnumChildWindows 为指定的父窗口枚举子窗口 , R8 s7 e2 o4 ~1 \# b
EnumThreadWindows 枚举与指定任务相关的窗口 ! \- \( t* V; o# }, E0 X# r
EnumWindows 枚举窗口列表中的所有父窗口 ; J6 }: X% W$ x+ r
EqualRect 判断两个矩形结构是否相同
, m8 f8 c( {+ G5 QFindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 8 _: o2 N+ B9 \
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
. Q# e) q5 S2 H6 bFlashWindow 闪烁显示指定窗口 % W/ ]9 I) E; s, C y' M2 Y
GetActiveWindow 获得活动窗口的句柄 1 W3 g/ `- G1 B8 U' P6 E. R
GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收) , z+ P/ D+ l' w0 R# R# K- X/ G- _. Q; f
GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息 " C5 R/ Y x7 o$ h4 D, m$ b5 N6 \9 ]- H
GetClassLong 取得窗口类的一个Long变量条目
5 R* l, ?/ {5 {$ R9 hGetClassName 为指定的窗口取得类名
5 B2 Y4 I0 J" W2 Q+ aGetClassWord 为窗口类取得一个整数变量
. O& T: ]" G. B- x' b* E& JGetClientRect 返回指定窗口客户区矩形的大小 # v$ e. [, O: G5 V4 y" Y
GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
/ @; E; X; Z9 P J2 W& {/ Z7 S+ {" a. IGetFocus 获得拥有输入焦点的窗口的句柄 % U/ f* V. ]9 D* K8 V2 y4 D
GetForegroundWindow 获得前台窗口的句柄 1 d- S7 s/ {0 Y; L2 D' a5 u
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄 + O# ^! t: @0 O$ p, }- Z
GetParent 判断指定窗口的父窗口 0 [! a$ c% f6 h" b& B9 f( w! n7 N) D
GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄
9 R7 S9 _0 L l) AGetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分
" `4 O. Y @8 Q8 T9 ?GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 0 S4 @) y( K) W) `2 U
GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
$ ?; s" R- @/ P/ W, ]3 p' M! b- eGetWindowLong 从指定窗口的结构中取得信息
9 S+ ], l" Q4 X' AGetWindowPlacement 获得指定窗口的状态及位置信息 3 _* f/ v! B. o" i8 z2 E0 X v* N
GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
1 u; C u, C- r# |GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容
9 U! B6 R# k- A* u7 [- tGetWindowTextLength 调查窗口标题文字或控件内容的长短
0 P1 O1 p2 Q6 n8 z% H4 dGetWindowWord 获得指定窗口结构的信息 $ T, \ d: p9 n
InflateRect 增大或减小一个矩形的大小
0 o) W- t( R0 C2 Z/ A: e% o; PIntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 , }9 I4 C3 a5 u: j4 y+ r
InvalidateRect 屏蔽一个窗口客户区的全部或部分区域
5 h6 D) S8 \0 ^IsChild 判断一个窗口是否为另一窗口的子或隶属窗口
5 b: A$ s- g" n, `/ i7 ]IsIconic 判断窗口是否已最小化 ' H/ w) K |4 {2 Z
IsRectEmpty 判断一个矩形是否为空 ' Z7 k% D, n) \ ~7 j3 [5 w2 P: A& }
IsWindow 判断一个窗口句柄是否有效 8 p6 \, h m7 M4 E" y
IsWindowEnabled 判断窗口是否处于活动状态 # U! I/ u6 ^4 t$ Z
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 . b: Z1 ?# x% {9 W. M
IsWindowVisible 判断窗口是否可见
' P2 t* b: X/ N D* ]' C& a3 ?6 SIsZoomed 判断窗口是否最大化 / {' K Q% m& [1 a7 |$ J1 J
LockWindowUpdate 锁定指定窗口,禁止它更新
+ S. g$ B$ N# ^MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统
! z' h0 F9 X& _9 {2 ~# NMoveWindow 改变指定窗口的位置和大小 G/ h2 Z' v0 m3 _0 ]7 O6 ~
OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来 / F, h0 f5 O/ X) M+ w4 N6 `
OpenIcon 恢复一个最小化的程序,并将其激活
6 @ @3 z: b' G, Z5 i$ i* [; m9 V hPtInRect 判断指定的点是否位于矩形内部 " Y: V7 ^7 D$ g: W9 l& V$ r6 M
RedrawWindow 重画全部或部分窗口 0 Y, L6 C2 w1 u M$ M* }
ReleaseCapture 为当前的应用程序释放鼠标捕获 ) _, B \ f: @1 C
ScreenToClient 判断屏幕上一个指定点的客户区坐标 5 ^ \6 W1 x; i a5 @ [, P
ScrollWindow 滚动窗口客户区的全部或一部分 7 b- w8 t$ w6 U. ^6 f, A8 l* M
ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分
/ P0 ^- O! |: w- s K) V1 _SetActiveWindow 激活指定的窗口
# k3 S4 u; N4 [; o( O( cSetCapture 将鼠标捕获设置到指定的窗口
4 R8 y8 m* d F* @! W( d) QSetClassLong 为窗口类设置一个Long变量条目 9 [/ `4 H' T! `! i2 u$ C
SetClassWord 为窗口类设置一个条目
/ Q; n2 e) b$ p$ P; a# OSetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口
' v* h- ]5 ^8 {' r2 N# }. _& sSetForegroundWindow 将窗口设为系统的前台窗口
! x" E5 G4 K& QSetParent 指定一个窗口的新父
+ ]$ Q: L5 k: I7 u! s2 jSetRect 设置指定矩形的内容 * K# O5 H5 x+ V# {- q6 ]4 b
SetRectEmpty 将矩形设为一个空矩形 / k' L1 B' X/ x- e
SetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
" u; O% P- N& R& B1 c; N' dSetWindowLong 在窗口结构中为指定的窗口设置信息
$ `9 r' y$ R; H* E: lSetWindowPlacement 设置窗口状态和位置信息 . \& Z6 J: X: v! Y- E ]# r
SetWindowPos 为窗口指定一个新位置和状态 ( P6 Q+ n r* S9 ]7 \4 L# ^' E
SetWindowText 设置窗口的标题文字或控件的内容 2 H7 s* E6 Q* {
SetWindowWord 在窗口结构中为指定的窗口设置信息
7 M4 r0 }- ^! UShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口 ; d( z9 r7 p+ p1 R5 I! [
ShowWindow 控制窗口的可见性
* U) w% \# [8 k6 ?) v& b& SShowWindowAsync 与ShowWindow相似
9 Z" C; @! |/ `# p# ^SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果 ) K$ A. ]; e7 u
TileWindows 以平铺顺序排列窗口 3 M4 }8 t$ U6 H* |
UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果
/ X& X$ s) q1 I5 b! bUpdateWindow 强制立即更新窗口 + n! i) s5 J" b4 G
ValidateRect 校验窗口的全部或部分客户区
- G; _- G. G6 Q# M @4 N; A9 GWindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口
2 a9 v, j- ^. l) T1 q+ I高级音频函数—参看《VC++ 编程指南.chm》11.6" h3 Z: c5 j0 X6 y3 q
Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。
6 \3 q3 [) i9 @& _ BOOL MessageBeep(UINT uType);, Q, }2 R) I. d; p* j5 }
该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。, T* x0 P% @0 m B% s
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。9 R- O" F$ J0 i$ |' X: A" L
级别 % u3 H: l$ v# y* y
| 描述 8 U( Q4 C' R: \" f
| -1
+ |. }4 E5 g/ l! `7 n0 F- e" [; n | 从机器的扬声器中发出蜂鸣声。 % I4 d$ T. ^' {* x
| MB_ICONASTERISK - ?2 X# s) U- ?
| 播放由SystemAsterisk定义的声音。 ) c9 s' `/ n* T+ G
| MB_ICONEXCLAMATION ; |3 n$ e' |: E7 I7 G
| 播放由SystemExclamation定义的声音。 0 V$ C7 E$ W1 B
| MB_ICONHAND
% q& t1 y: P. n6 H. E& | | 播放由SystemHand定义的声音。
- a( d' P+ }0 O3 e5 m. s3 K' _5 ~ | MB_ICONQUESTION 2 N3 o% @& r0 S0 P ?5 j" g
| 播放由SystemQuestion定义的声音。
8 o {8 t! J3 \ z A4 \6 ?/ D3 Z ~ | MB_OK
# h9 z0 E1 u2 m5 x" r' V6 W | 播放由SystemDefault定义的声音 / A0 }8 W) @) V6 f6 D: o
| BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);# D$ Q# Q) f) s# w; E
参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。" C! w' Z2 t8 y3 A0 Y D
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。
. `5 ^# ]5 R$ D- Z4 U参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。
% a4 x' F' k4 Q3 I, e标志 * E8 Y4 V& l1 S5 B
| 含义
( R0 e! t8 R) P/ M1 t7 r | SND_APPLICATION
' C. {0 Z7 x) U6 |7 p! u0 c A. S! V! s | 用应用程序指定的关联来播放声音。
( j- l% S6 B- y2 p. E$ Z( C | SND_ALIAS
+ o' c) i4 }7 @2 J: L" l | pszSound参数指定了注册表或WIN.INI中的系统事件的别名。
* C8 m" u3 h2 l7 P) G4 m/ f b | SND_ALIAS_ID ) a. G, i b& X8 z- O0 N
| pszSound参数指定了预定义的声音标识符。
1 i1 H3 m$ R0 Q D8 Q$ p' g u! r | SND_ASYNC + ], q& z$ `+ `) m; q& \0 t
| 用异步方式播放声音,PlaySound函数在开始播放后立即返回。
% g: p, a! N# a, | g5 Q | SND_FILENAME 1 i0 B0 g& F7 ]( O2 l1 |1 X
| pszSound参数指定了WAVE文件名。 - f) l8 l& `9 P$ k) N1 X
| SND_LOOP
8 u; W! Y9 k" ~# N | 重复播放声音,必须与SND_ASYNC标志一块使用。 9 F& ~/ y0 K8 r! G: Q. \
| SND_MEMORY
2 a# a) b- C( ]0 d; e1 g* I- L | 播放载入到内存中的声音,此时pszSound是指向声音数据的指针。
5 X' | g. H5 @: Z4 C1 J0 w. K- Q | SND_NODEFAULT
1 r, H! z1 X0 k- p$ Y% L8 m | 不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。 7 f" ]; T8 z7 n7 [3 T" y
| SND_NOSTOP . A: S: N+ [/ y
| PlaySound不打断原来的声音播出并立即返回FALSE。
% j# N3 {- O0 Q9 p | SND_NOWAIT
, }; E7 c! N8 L | 如果驱动程序正忙则函数就不播放声音并立即返回。
+ S: ?5 O1 c+ Y2 N | SND_PURGE
- P$ m, \5 X0 Q! Z% M8 v) [ | 停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。
* _% h6 \- f5 ? J) h6 T/ P2 { | SND_RESOURCE ( @$ q" R7 Y# f- G# g5 d0 |) I- L
| pszSound参数是WAVE资源的标识符,这时要用到hmod参数。 7 S. _0 M! x8 D
| SND_SYNC * T( Z O" A/ d
| 同步播放声音,在播放完后PlaySound函数才返回。
6 S& `) r! t( R# z$ \* D5 ^0 a! @5 r | BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);
( e9 {1 ]; A |) I' W函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。) S M% s" R/ u( ?
MCI播放4 J' C% M( a, t; ~9 w6 G- F- F! \
所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:7 L) X4 b8 p {# ?& Y! H: b
MCIERROR mciSendString(
' L1 {0 Z( K! i# J K# wLPCTSTR lpszCommand, //MCI命令字符串& ]) B0 o X0 z
LPTSTR lpszReturnString, //存放反馈信息的缓冲区& L* b3 @- B" e' |3 z9 Q' ?
UINT cchReturn, //缓冲区的长度7 A! u {7 o, F/ g& l
HANDLE hwndCallback //回调窗口的句柄,一般为NULL
" b$ x$ n8 B# ~* O); //若成功则返回0,否则返回错误码。
+ ~8 c; j6 Q9 J3 p! _该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:
- H" G" l8 t) sBOOL mciGetErrorString(( e C; f& M G% v
DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码
. x6 Z r8 L8 h; eLPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区
- e. R- N8 P. F x) F7 lUINT cchErrorText //缓冲区的长度 h5 l" t# [+ {' q3 C6 z* r' ` L
);
/ a( X" G9 M0 x. J& W' z |
|