找回密码
 注册
搜索
查看: 4238|回复: 0

Windows API函数大全

[复制链接]
发表于 2011-5-19 20:42:51 | 显示全部楼层 |阅读模式
原文:http://www.cnblogs.com/cltsq/articles/api.html/ ?) t7 o9 u# S% G: s( T- a3 U9 I
1. API之网络函数
% `0 \; Z' w) q0 v. iWNetAddConnection 创建同一个网络资源的永久性连接
: `/ q8 L1 ^, e8 AWNetAddConnection2 创建同一个网络资源的连接 * \$ F! d" p9 E) g
WNetAddConnection3 创建同一个网络资源的连接
1 N+ @1 _; H& A' |- H* vWNetCancelConnection 结束一个网络连接
3 r* v# \' s4 PWNetCancelConnection2 结束一个网络连接 $ t3 y6 P$ j; l. C4 Z, L0 r% |5 q" \
WNetCloseEnum 结束一次枚举操作 4 A* T8 Z0 H% |0 O. I6 H
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 ! ]5 d% ^0 A4 S! T
WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
+ H) |6 D3 {/ e& {, E: iWNetEnumResource 枚举网络资源
  F& Y/ `6 O' T2 Y. z3 _5 jWNetGetConnection 获取本地或已连接的一个资源的网络名称
# ?. L3 {+ T; V+ f* MWNetGetLastError 获取网络错误的扩展错误信息
% c. M" Z+ e5 \# XWNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称
* h& p) D' I1 T$ [$ WWNetGetUser 获取一个网络资源用以连接的名字 4 Q1 k+ s: F, V
WNetOpenEnum 启动对网络资源进行枚举的过程
% m: l5 {( b$ w) \$ b# O$ ?2. API之消息函数
& \2 h3 i) P4 }BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
( h2 a+ j  g1 T4 w' F& j, PGetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 8 j+ i/ |7 k/ N+ O2 m
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 ( k0 O( }( U- `9 a( I$ K
PostMessage 将一条消息投递到指定窗口的消息队列
+ ^% t9 L+ V2 X4 ~0 v1 k3 [* FPostThreadMessage 将一条消息投递给应用程序
1 V. ~/ U" V# P' A3 ?RegisterWindowMessage 获取分配给一个字串标识符的消息编号 ' s2 ~. M% d6 w
ReplyMessage 答复一个消息
/ v# a. J; ?8 {& r3 ^SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口
. h2 ~5 m! U% e1 Z# p0 w0 g! MSendMessageCallback 将一条消息发给窗口
8 X: w  z9 F9 ?6 _# y7 Q9 JSendMessageTimeout 向窗口发送一条消息
2 O: |; g  i, h6 W; K, L# ^8 {SendNotifyMessage 向窗口发送一条消息
9 [9 J' J5 o0 l/ R  N# ]3. API之文件处理函数
# x, [4 h/ o- R- h, K, H1 c. MCloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 & c& j! W! p5 i3 G+ |) v$ C
CompareFileTime 对比两个文件的时间 7 t" B$ f3 n# O, U0 \0 d
CopyFile 复制文件
  Z/ b; l) b/ `3 D% o! O2 }CreateDirectory 创建一个新目录 & ?# z' H3 H/ M$ d8 k3 {/ _. G
CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 6 |% w6 ^9 d6 j$ I" l
CreateFileMapping 创建一个新的文件映射对象
" Q- ~: \9 u9 B' I+ nDeleteFile 删除指定文件 $ v% w: {3 Q7 x6 i/ K+ v& X. E
DeviceIoControl 对设备执行指定的操作
! p. E4 _0 ~8 o* X; \5 U- G. cDosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值 0 o6 Q* q& R# |6 R  \, r) u2 u; _8 X  g
FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值 3 z2 n. u% e- i+ @* ^8 M- I2 ]8 A3 [
FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
' D  T5 Q3 c1 vFileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构
* Z% |& n. d! Z$ Y6 s1 {FindClose 关闭由FindFirstFile函数创建的一个搜索句柄 5 }# H, y0 a; B: y" T0 Q$ d
FindFirstFile 根据文件名查找文件
- t9 T0 M! ]7 DFindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件
" Q* ]& c( O, w5 H" ~FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 4 Q8 x# y. n4 i+ C. X: L
FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘
3 U$ [6 x& e  R# }/ S+ B( Q- \GetBinaryType 判断文件是否可以执行 & i0 [, i, z1 M, y& T
GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 , w+ D2 a5 t2 L% o7 \) {% B( w/ g3 {
GetCurrentDirectory 在一个缓冲区中装载当前目录
* G8 `1 Y7 @& m; lDWORD GetCurrentDirectory(
! k5 W5 q) C% ~" Z' c    DWORD nBufferLength,    //缓冲区大小
* j5 c' S9 N9 s6 p# a    LPSTR lpBuffer          //缓冲区的首地址! q6 j, j) m* U+ ?
    );
/ z% W1 m* @) l/ I! e+ Q3 oGetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 ; K9 |2 }4 v3 {0 U, e
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息 8 J. o4 N/ J* M6 x4 ^
GetDriveType 判断一个磁盘驱动器的类型
8 a4 F$ C; f4 ~" VGetExpandedName 取得一个压缩文件的全名 ) _1 U+ G2 w0 l( n) B2 _
GetFileAttributes 判断指定文件的属性
! @4 C+ h# d6 r6 e1 ~3 W  mGetFileInformationByHandle 这个函数提供了获取文件信息的一种机制 % M; _; |4 R. Z; t2 ]
GetFileSize 判断文件长度 . ^1 H5 q7 ]) p6 |& ?
GetFileTime 取得指定文件的时间信息
( E4 j, a% o- h+ L- S* Y/ T1 ~GetFileType 在给出文件句柄的前提下,判断文件类型 8 K0 X# p* D% c" ^
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息
4 \" R  w# j# ~" [) ?% j* IGetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区
8 q8 c' I- {1 v9 vGetFullPathName 获取指定文件的完整路径名 ' x$ c% H  I! ]# }8 S) }* w
GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母
, t& ~- J1 A* X3 g/ w" rGetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 + w2 s! y4 s- u9 O6 H
GetOverlappedResult 判断一个重叠操作当前的状态 " `5 w1 z& K9 g0 X
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 / {" T: [* A7 I
GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 ! W+ I2 k. a+ a
GetPrivateProfileString 为初始化文件中指定的条目取得字串 , w$ ^1 w9 s0 i. j4 d  Z" w2 P
GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
7 [7 J/ e  M/ o( l4 O3 uGetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
9 M& Z  C2 h! `9 Q1 @5 m+ m1 mGetProfileString 为win.ini初始化文件中指定的条目取得字串 ! n6 D; d# S& p! ^! v% f
GetShortPathName 获取指定文件的短路径名
3 n0 }9 k# }2 f8 a$ q4 U5 P2 Z9 v. IGetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 ' e& G& i( o; r
GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用
! `8 J. j7 h0 g# h. R; zGetTempPath 获取为临时文件指定的路径
2 y  r/ n0 k/ `) oGetVolumeInformation 获取与一个磁盘卷有关的信息
! m: m% w% j: D% E- L4 _# jGetWindowsDirectory 获取Windows目录的完整路径名 9 e$ u5 \, {* P2 H
hread 参考lread
/ U- m( _; r, b# C+ Khwrite 参考lwrite函数
  m6 G& n' d7 alclose 关闭指定的文件
) L( E( N! l0 r6 [, Elcreat 创建一个文件 3 \1 n/ B) W  _8 n$ N$ I! ~) ~6 i5 s, ]
llseek 设置文件中进行读写的当前位置 : y9 q& z% K3 ]9 u  S
LockFile 锁定文件的某一部分,使其不与其他应用程序共享
: h, @0 z  o% Z" BLockFileEx 与LockFile相似,只是它提供了更多的功能
6 p. C; L, v1 ilopen 以二进制模式打开指定的文件
/ q7 Z: `( g7 }  V9 S1 olread 将文件中的数据读入内存缓冲区
/ b6 C- k% h- K' w) klwrite 将数据从内存缓冲区写入一个文件
# ]  Q, F4 e2 V, K6 |- n; BLZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
" Y% ^- R' p1 GLZCopy 复制一个文件 ; W" k8 j8 A/ y: |8 W
LZInit 这个函数用于初始化内部缓冲区 ( a1 I7 Z7 k% e  a- b* S
LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
$ H% X3 Z7 Z! ~  LLZRead 将数据从文件读入内存缓冲区 % W( b: o& L' Z8 I) z! x
LZSeek 设置一个文件中进行读写的当前位置 4 m6 G) h) `& S9 V% F
MapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间 + P% ^% U  _" O8 o
MoveFile 移动文件
4 E. l# h* N; B1 C7 e, K' YOpenFile 这个函数能执行大量不同的文件操作
# k4 P2 K6 C  ^: p) `8 J% W2 DOpenFileMapping 打开一个现成的文件映射对象
, @3 f' f" g# d5 e2 A# o) F$ [QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
7 C" X5 A' W$ I" l) _' E( N8 e5 cReadFile 从文件中读出数据 / L6 A) W; z# ~  W1 z
ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
9 W4 Z/ {2 D1 c0 `4 R& r2 ZRegCloseKey 关闭系统注册表中的一个项(或键) 4 A! ~& \1 p( ~" b4 g) @
RegConnectRegistry 访问远程系统的部分注册表 5 A" N8 j3 R, O8 U3 A# Z
RegCreateKey 在指定的项下创建或打开一个项 8 }* E. {0 q  a
RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数
% g0 F/ P+ q; q# L# B1 DRegDeleteKey 删除现有项下方一个指定的子项 : i7 W0 Y3 D' ~/ _: `/ w, m4 S/ l) U: Y1 W
RegDeleteValue 删除指定项下方的一个值   \$ G' I; @- ~0 q, ~) L$ _7 G
RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx
- h/ R6 A  U# l. P) ]- |4 E5 L( VRegEnumKeyEx 枚举指定项下方的子项 ( U& H1 m- Y% W' i) {! o6 F/ a
RegEnumValue 枚举指定项的值 $ _& o8 E- ]: x. Z# S
RegFlushKey 将对项和它的子项作出的改动实际写入磁盘 7 P' F6 O- u2 n+ F
RegGetKeySecurity 获取与一个注册表项有关的安全信息 1 ~' Q0 N  C  M9 K" y( O  O
RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息
4 \$ ]5 |3 K$ B0 l7 S- l' V, TRegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制
5 q3 p* S% n5 N# N  eRegOpenKey 打开一个现有的注册表项 . H3 q1 U6 y. N" y5 r4 z, T
RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
* ?0 u) `8 E% \, M( H! O6 l6 vRegQueryInfoKey 获取与一个项有关的信息
. C' s' q. ^3 _RegQueryValue 取得指定项或子项的默认(未命名)值
5 b6 T+ f3 Q2 i+ HRegQueryValueEx 获取一个项的设置值 1 ~1 C& ~5 ^, s  ]- L
RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
- b' Z& K" V, r% A* RRegRestoreKey 从一个磁盘文件恢复注册表信息 % _- n6 ]% C. D" r" c. y3 R
RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件
/ p. f0 ]- N4 b9 c0 VRegSetKeySecurity 设置指定项的安全特性 5 m. Q, j; `' [, n9 z: ^' B2 y
RegSetValue 设置指定项或子项的默认值
+ y. Z- L1 A. l3 cRegSetValueEx 设置指定项的值 1 I- n9 p4 x% I) y( ^/ \0 r
RegUnLoadKey 卸载指定的项以及它的所有子项
- T7 e/ ~) n6 ]4 {5 O$ S! i/ E: WRemoveDirectory 删除指定目录
4 i8 |# X1 W0 D% @+ w2 ESearchPath 查找指定文件 ) r5 T( b& E/ t$ f8 X7 x- @
SetCurrentDirectory 设置当前目录 - Z( f6 y* q$ ~
SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾
$ p  E8 M1 T5 s/ \) f9 w" [SetFileAttributes 设置文件属性   {6 m" W$ D) Y! V9 y7 I( r
SetFilePointer 在一个文件中设置当前的读写位置
. O, t9 j( X: m& J7 D, {SetFileTime 设置文件的创建、访问及上次修改时间 : u  N( ]8 d+ j8 \5 O; x
SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果 " D2 J+ L  V9 H. M) ]) ]
SetVolumeLabel 设置一个磁盘的卷标(Label) ! N, y  j, B- }* u8 ~+ ]
SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构 & j0 F  w! c/ [& W; x! I! I5 E" v
UnlockFile 解除对一个文件的锁定
, ~9 Q6 }2 D( C: \- OUnlockFileEx 解除对一个文件的锁定
/ L8 ^; `6 ?, [6 u$ n- i5 QUnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射 ' k9 I5 [$ b, k1 g
VerFindFile 用这个函数决定一个文件应安装到哪里
, d' A, M( G- v" X9 ^$ m0 |4 dVerInstallFile 用这个函数安装一个文件
+ W4 g+ H  Y/ z4 q9 {VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称 9 I: d4 N* h: @  ?3 q* Q
VerQueryValue 这个函数用于从版本资源中获取信息 " N( L6 G# h2 _% x( \$ j: ^0 p
WriteFile 将数据写入一个文件
0 P1 b) ^* W/ c+ @. [. b4 C0 y' dWriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调 , c+ L3 d& R, Y; r+ r: T& Z
WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值
$ l- _  d: M1 `: n+ T/ H' {WritePrivateProfileString 在初始化文件指定小节内设置一个字串 . `( f- D0 a7 P2 G' `! N0 h
WriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值 * s: f8 e  e; @$ t. I( U2 ]
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串
+ X( O/ H0 j( N. a( d- E9 q4. API之打印函数
9 r! u. e: Y3 b" N6 K' y6 e3 K) ZAbortDoc 取消一份文档的打印 9 o& m" `- q/ O- X* d, i
AbortPrinter 删除与一台打印机关联在一起的缓冲文件
4 o1 q  \* f' `" |4 e8 s1 LAddForm 为打印机的表单列表添加一个新表单
& i: c& i8 y2 Z- K* x( jAddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
# S' X* P( h7 u, qAddMonitor 为系统添加一个打印机监视器 : @8 b1 c9 P) t' {. a5 v
AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口 7 w& M. O0 d9 \( _" ]% B" \4 y
AddPrinter 在系统中添加一台新打印机
3 C5 R( t6 ?( ~- JAddPrinterConnection 连接指定的打印机
% u& m/ R' M, d* PAddPrinterDriver 为指定的系统添加一个打印驱动程序
4 [! y) u" g/ hAddPrintProcessor 为指定的系统添加一个打印处理器
' f1 z  y, ^9 XAddPrintProvidor 为系统添加一个打印供应商 : |1 ~; D8 ~- n9 B! W' k# S
AdvancedDocumentProperties 启动打印机文档设置对话框 8 z% x- p7 n( q6 v. p; M: K) j% w7 _- c
ClosePrinter 关闭一个打开的打印机对象 9 X7 o% f3 r% \/ e7 D7 d4 Q
ConfigurePort 针对指定的端口,启动一个端口配置对话框 3 [+ |$ F% e$ ?: ?2 w' \  e
ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
2 O! z1 c& P/ `: u# ~; mDeleteForm 从打印机可用表单列表中删除一个表单 # Z* A, ?, @1 ~' y3 c5 \0 r
DeleteMonitor 删除指定的打印监视器 5 o4 F0 r* X/ }8 `3 ]) T. L
DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口 . Y/ T$ a! ^( F$ X# {
DeletePrinter 将指定的打印机标志为从系统中删除 4 U4 N- |3 [3 m! {0 j( G3 G
DeletePrinterConnection 删除与指定打印机的连接
3 q" o, s9 k" |) v8 sDeletePrinterDriver 从系统删除一个打印机驱动程序
5 E( u3 \9 _: s, iDeletePrintProcessor 从指定系统删除一个打印处理器
' b/ D6 L0 A8 I4 F$ o2 V" HDeletePrintProvidor 从系统中删除一个打印供应商 8 H; c" f9 |3 t1 m* O1 `+ i
DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 ( i2 s: t5 r' V
DocumentProperties 打印机配置控制函数
( I6 a' l3 s' E# n1 m! }9 sEndDocAPI 结束一个成功的打印作业
2 \3 c' T( N# k! b# NEndDocPrinter 在后台打印程序的级别指定一个文档的结束 ; A1 {6 i" G6 `
EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页
7 Y8 H8 Y% m3 Z/ [/ ^' GEndPagePrinter 指定一个页在打印作业中的结尾 - ?, X% D! O3 a
EnumForms 枚举一台打印机可用的表单 9 f1 Z( y) ], v9 A! S
EnumJobs 枚举打印队列中的作业 * O$ ]2 N0 ]1 c8 V7 A
EnumMonitors 枚举可用的打印监视器
) R* P0 a. n" `6 p' ^EnumPorts 枚举一个系统可用的端口 " `8 `' c* y- B6 P; _5 U, U
EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序
7 \* P: h% W/ A% t6 GEnumPrinters 枚举系统中安装的打印机
0 Z) A6 D# q4 h" O5 r% G% UEnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型 5 t8 c3 r, D6 v! q2 [6 p
EnumPrintProcessors 枚举系统中可用的打印处理器
7 @3 T& s% B2 |- K$ U% SEscape 设备控制函数
* \- l; L9 j  vFindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 * J& W# L  a5 p/ G' Q
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化 - C8 ?8 ~* g1 w& g
FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
1 c  Q. A$ I% X  W8 F4 c& l  @FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区
  `. H5 m9 `" C  Y, M- d* cGetForm 取得与指定表单有关的信息 + T- k/ y) N, g- F
GetJob 获取与指定作业有关的信息
/ e1 q, z: M: t* t+ |: T7 P9 gGetPrinter 取得与指定打印机有关的信息
. R( ~) R5 `' C* n7 nGetPrinterData 为打印机设置注册表配置信息 & p- Z; @  ~/ x
GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 3 V1 g- l1 _0 f# B: e
GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么 , F% \5 `9 y8 V1 z! V( R& @8 i* d
GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录 , k' s$ \7 b2 C6 j7 B
OpenPrinter 打开指定的打印机,并获取打印机的句柄
) }5 I! f' L% A. g2 mPrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框 ! v$ i( \. V& Q$ H) M7 P3 u9 H2 u
PrinterProperties 启动打印机属性对话框,以便对打印机进行配置 1 u  D! B& E* _9 [
ReadPrinter 从打印机读入数据 & L5 C  f' k' V
ResetDC 重设一个设备场景
: N5 e, k- [7 c4 l7 O* NResetPrinter 改变指定打印机的默认数据类型及文档设置
4 f+ T/ B0 N9 R" A4 O5 _- V) ]ScheduleJob 提交一个要打印的作业
- f  _% T1 W' jSetAbortProc 为Windows指定取消函数的地址   K9 _- B& y* X& a. L! x
SetForm 为指定的表单设置信息
8 B/ ^' X5 b: v5 }# @0 M& S% zSetJob 对一个打印作业的状态进行控制
3 k( W* f- E  C! h3 nSetPrinter 对一台打印机的状态进行控制
, S; p! o7 [' R- ~  H/ OSetPrinterData 设置打印机的注册表配置信息
" S- a5 Y2 W) ^5 ]) z# NStartDoc 开始一个打印作业 . I% f9 P% C$ W8 ~2 ^
StartDocPrinter 在后台打印的级别启动一个新文档 4 m5 P* }) _& w$ y
StartPage 打印一个新页前要先调用这个函数 . L; r3 P7 ~2 w0 }0 g
StartPagePrinter 在打印作业中指定一个新页的开始
( ]4 l$ |2 l5 L8 Q, {* Q( Q! r6 eWritePrinter 将发送目录中的数据写入打印机 % o" |; ~/ r, E- m  v% S
5. API之文本和字体函数
5 z- I, A1 l7 uAddFontResource 在Windows系统中添加一种字体资源 ' `$ n, J: {# [2 [0 k% K, Q" t
CreateFont 用指定的属性创建一种逻辑字体 , s8 l" k; C5 V  m
CreateFontIndirect 用指定的属性创建一种逻辑字体 * i9 V0 y/ {3 n& x5 e
CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统
6 t) R0 x1 X$ qDrawText 将文本描绘到指定的矩形中
/ y) f6 @( Q8 B- h1 K, H9 g7 W1 f- \DrawTextEx 与DrawText相似,只是加入了更多的功能
' k! a- E7 _0 @. eEnumFontFamilies 列举指定设备可用的字体 6 B& K2 Y3 L$ h0 H0 E
EnumFontFamiliesEx 列举指定设备可用的字体 / k. c. ?" t9 a8 e
EnumFonts 列举指定设备可用的字体 # e2 q, n: u7 `* R8 J
ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
) Q3 o* K' d+ r5 lGetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 # y8 B6 g) K& h- S1 j! G( U) y, @
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 " K( v( }, v' \9 o
GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸 ( O. U4 M4 O' F* \. h
GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串 8 {  j7 e" H  F: [" `7 f3 Y, W
GetCharWidth 调查字体中一个或多个字符的宽度 5 U' \/ p9 m5 j$ z$ W
GetFontData 接收一种可缩放字体文件的数据   v, g& ^4 A2 f% k$ H
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
* O0 u, g1 K# O& E. bGetGlyphOutline 取得TureType字体中构成一个字符的曲线信息   Y) K. ~/ s: p6 Q
GetKerningPairs 取得指定字体的字距信息
( E: Q. n- ^$ i$ aGetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息
, V6 d# c5 C0 I* D; I+ jGetRasterizerCaps 了解系统是否有能力支持可缩放的字体 8 E5 n; k9 H, ^7 p- X
GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 1 ?4 B3 D- u9 T
GetTextAlign 接收一个设备场景当前的文本对齐标志 + q/ U. P& N2 r5 u4 H! Z
GetTextCharacterExtra 判断额外字符间距的当前值 6 R" e$ z' V6 V! T# X: k. `
GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符 . u. y' V0 L  _1 S- a8 }
GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息
  z5 b0 e& R0 \; E' l3 fGetTextColor 判断当前字体颜色。通常也称为"前景色"
* K; P$ ~: k5 Z% RGetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
& R' p, N: n, v) }& U) vGetTextExtentPoint 判断一个字串的大小(范围)
% f0 R/ M# G* mGetTextFace 获取一种字体的字样名
' N  C4 e2 q- {, yGetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 # |8 ~: k6 X& A0 ~. z
GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 ! P: K* N/ n7 N' {7 j& N* I
PolyTextOut 描绘一系列字串
5 s/ I: k* {, Q  l6 t) Z  mRemoveFontResource 从Windows系统中删除一种字体资源
) G  g7 g+ c6 w7 O0 w3 B3 n  y8 vSetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 3 z8 `3 {4 Z3 D
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置
. b' S3 f6 e4 K& ^1 {SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距
4 f" N* ^5 H, }9 |4 lSetTextColor 设置当前文本颜色。这种颜色也称为"前景色"
. \' `3 m* h7 I- d, HSetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理 5 K( ^" \! |4 ^; U
TabbedTextOut 支持制表站的一个文本描绘函数 ' l) g  B9 b/ U$ E+ w
TextOut 文本绘图函数
( ]3 [# G2 L% K, WWINGDIAPI BOOL  WINAPI TextOut(
7 L3 k" H3 K# x+ dHDC,     //输出设备
% W6 x* h% A# _* p7 bint,     //输出的横坐标
% Q# i: v. f& y- J! r9 C' w9 `7 ?int,     //纵坐标2 v) V: W- g2 }9 F  K2 y5 h
LPCSTR, //输出的文本str( m' F' b2 M/ `+ R# s
int);    //文本的长度:lstrlen(str)
$ M5 |1 }. i2 W+ V0 y, Q6. API之菜单函数
" z9 n# E- [: V( M6 u7 P, ^AppendMenu 在指定的菜单里添加一个菜单项
- ]/ M0 U) @. Y& y6 dCheckMenuItem 复选或撤消复选指定的菜单条目 8 N( d9 a1 t3 u$ y  @& c
CheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目
* Z# Y$ v/ e# g3 n3 S. uCreateMenu 创建新菜单
  L8 M/ I! {3 P( tCreatePopupMenu 创建一个空的弹出式菜单
  w5 a7 b" S) ~3 }9 e6 P* F. mDeleteMenu 删除指定的菜单条目 ! \: T- c& ~+ N, Q5 y3 q8 M
DestroyMenu 删除指定的菜单
6 r% I+ d/ _3 D+ w1 v; YDrawMenuBar 为指定的窗口重画菜单
8 y5 J1 m( L; LEnableMenuItem 允许或禁止指定的菜单条目
( O. {, J9 A- ~$ O7 ?GetMenu 取得窗口中一个菜单的句柄 : {( f4 f" |9 L6 P$ }/ W/ \+ i
GetMenuCheckMarkDimensions 返回一个菜单复选符的大小
& S% L% m1 T/ o: @: e, rGetMenuContextHelpId 取得一个菜单的帮助场景ID : J- N. @. o! a( G/ U; t
GetMenuDefaultItem 判断菜单中的哪个条目是默认条目
9 r8 H+ L0 x% @$ D( }GetMenuItemCount 返回菜单中条目(菜单项)的数量 & n3 S* D# }( \1 W  R
GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID
4 ~3 x- f1 ^2 @3 IGetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 6 D' @0 K9 Z0 ^, ]  u; k
GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 6 t" `$ K& f! q( H! s
GetMenuState 取得与指定菜单条目状态有关的信息 8 ]. @6 B" T" P* _# \7 ^9 z
GetMenuString 取得指定菜单条目的字串 # t" o: k7 L! z6 Y" l7 |
GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置
+ [2 c% t% |4 ?2 Z# ]: bGetSystemMenu 取得指定窗口的系统菜单的句柄 . ]; c7 @+ S! A3 D% O" d# D! m
HiliteMenuItem 控制顶级菜单条目的加亮显示状态
6 ^# c9 x: S) a3 Q) l4 H, H" cInsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动 % D( X- b0 x. ~( I
InsertMenuItem 插入一个新菜单条目 , s1 f& z% N8 f% [. h3 T
IsMenu 判断指定的句柄是否为一个菜单的句柄 : S' S$ O* f% K% O
LoadMenu 从指定的模块或应用程序实例中载入一个菜单
* b' P1 j) c2 Q+ R! ALoadMenuIndirect 载入一个菜单
, C4 w8 [2 u. \  E& z/ yMenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点
; t& U/ |% d5 E& [: ^+ SModifyMenu 改变菜单条目 & M4 z7 Q3 k3 K% w2 @& V1 A/ b
RemoveMenu 删除指定的菜单条目 2 H+ z" U; S7 m+ a' M) B
SetMenu 设置窗口菜单
( v' s! {- m. J$ K- ^4 U9 m  [SetMenuContextHelpId 设置一个菜单的帮助场景ID
( C; Z- O7 |! R7 |1 @SetMenuDefaultItem 将一个菜单条目设为默认条目
- }8 ~" j$ N% }, }% l8 E* j( u0 Z3 cSetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)
1 i, S% B+ W( z: s7 r" n& aSetMenuItemInfo 为一个菜单条目设置指定的信息
) M3 i  ^" G3 U) P" pTrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单
  l- [" K7 v3 ^TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 - P& m) `: s/ [; s; X/ y
7. API之位图、图标和光栅运算函数
- L! {% t& T# ?6 V& P3 h$ s: _BitBlt 将一幅位图从一个设备场景复制到另一个
0 V8 R0 _0 |5 k& w1 i3 f     WINGDIAPI BOOL  WINAPI BitBlt(
0 i0 H! h; z. A) }+ `HDC,     //目标HDC
# _# p: n7 |% i/ |" |, |int,     //X17 l+ A* G( o- P$ J' R! [  \+ h6 P
int,     //Y1
6 K+ _* J2 {1 G. d4 _int,     //width+ _$ |, t9 Q4 T" t) r) P2 s- u
int,     //height4 d8 Y/ \: X) t! F# m7 S( ]
HDC,     //源HDC
5 \5 Y/ }5 g7 _; Xint,     //右边的距离
. i# C) @- @) E8 T6 Cint,     //??
- }3 A& s% C0 w, wDWORD);  //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
) w) K+ P* U+ L& c& M7 TPATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS/ w5 J* L$ S8 g7 X! @, C- c
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序 ) M4 G$ y: m1 z. d/ ^3 S. v) }
CopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作
5 k4 C# V+ S9 bCreateBitmap 按照规定的格式创建一幅与设备有关位图
: U7 p5 L' R8 z( _CreateBitmapIndirect 创建一幅与设备有关位图 2 E8 `2 m$ ]' I% O( B, e" |
CreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容 $ p  a$ O% H" n$ B# x1 G
CreateCursor 创建一个鼠标指针
* P  @4 O& l6 K. q4 g* c# A, P* ~CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图
; _% s% K0 t0 V. H3 @CreateDIBSection 创建一个DIBSection
3 D# G; k* N$ a" m& UCreateIcon 创建一个图标
6 V4 ^$ S6 u# W2 t% C9 q3 p. R: bCreateIconIndirect 创建一个图标
0 Q2 m9 r  f8 O5 [DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 / a  O. {$ c5 O9 Q$ d) q) T
DestroyIcon 清除图标
1 G) P, ?: G5 b9 A) iDrawIcon 在指定的位置画一个图标 ( N. a" X/ ~9 u- B; Y
DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能 1 y* X. C( w0 f$ D* m  @7 r. K
ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之 , a' _4 w( R3 p$ R/ f5 g9 D! w
ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来 4 a2 a6 x/ P% f' P3 ?/ Y0 G3 Y4 M
GetBitmapBits 将来自位图的二进制位复制到一个缓冲区
& i4 T; m* U. ]# [" l! |, A  \GetBitmapDimensionEx 取得一幅位图的宽度和高度 2 \* I6 J+ D% a  ]8 c
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息 ! Y( i. n+ [8 p. K# M, n2 T6 q
GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里 * W/ O$ t" W  e+ k
GetIconInfo 取得与图标有关的信息
& {5 C4 p( H5 n1 J8 y3 @GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式
+ n0 e/ B7 o8 K3 YLoadBitmap 从指定的模块或应用程序实例中载入一幅位图 8 J  z7 F) N) \6 M8 c! e4 W
LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针 6 e6 [0 Y/ K4 C8 i, M
LoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针
% Z( G: H) n' E8 i2 I$ {LoadIcon 从指定的模块或应用程序实例中载入一个图标 5 D6 g9 _+ K' F% u" S$ N8 o
LoadImage 载入一个位图、图标或指针 ! J  g& K% I- Z6 J* I& N
HANDLE LoadImageA(
) y, Z4 E8 p, i. g; }* ~  L+ QHINSTANCE,            //当前实例句柄:AfxGetInstanceHandle()1 H9 B4 K/ P. C# a) d0 [
    LPCSTR,               //资源所在的目录:c:\help.bmp
4 w3 ^. ?8 F1 j% P( M* }    UINT,                 //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE
7 O1 K3 O6 a+ V' I% _    int,                  //
( k# _9 \0 t* _0 c7 L) ~    int,                  //
3 L6 w. d2 v2 o" w. y3 P* {UINT);                //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|( X& x: C9 b3 [+ ?+ |. V
R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|
0 L5 X  d1 J1 E9 ~$ M# S3 A7 Y) bLR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED( K0 d5 S; u2 {; N
MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理   F$ M4 K* M1 W1 [
PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景 7 ?, g2 `  ^$ g. x
PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理 7 d( o: ~  B: G0 q8 W
SetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 , i$ Q9 \4 F) |
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 , m. w/ M  W1 F: r. v
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息 - y: k3 u3 y3 o9 E
SetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里 * d) o8 G# e6 a9 m/ ^6 w
SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
. C# U" L) p: T8 I% lSetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式
4 }- j2 K6 L! \: N0 rStretchBlt 将一幅位图从一个设备场景复制到另一个 7 `5 k7 ~: w6 H) J& I
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
" v: x* J, g1 u; C8. API之绘图函数
2 [- B( w, ^# w* o6 n' s. F5 i1 GAbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
  Y( M+ M6 R3 A3 d4 pAngleArc 用一个连接弧画一条线 ! ~  ?( T, E; [0 _( V& D" c7 ]. }3 h
Arc 画一个圆弧 2 O- [4 M" h- Q' Y, H
BeginPath 启动一个路径分支
7 E4 v0 d0 n6 m( o  q+ cCancelDC 取消另一个线程里的长时间绘图操作
9 `$ B/ Y. h& s5 {* y4 ]Chord 画一个弦 - `. j% A; c8 X0 Q
CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 $ A/ T9 U0 e) v; F2 X
CloseFigure 描绘到一个路径时,关闭当前打开的图形 % y/ Q4 w9 p1 L7 p- c
CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 # G+ u* q9 v! A+ Z' G
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
9 A" N1 y5 ]9 r! V! c6 Y, DCopyMetaFile 制作指定(标准)图元文件的一个副本 ! Z: W9 i7 B2 J4 D7 ?5 }
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子 ; E8 _  E/ d' }. {- `
CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) % R& G; l+ w" L1 z( p
CreateEnhMetaFile 创建一个增强型的图元文件设备场景
! G) L* I8 E, V0 bCreateHatchBrush 创建带有阴影图案的一个刷子
+ u: |, u9 Z% p* p( B. rCreateMetaFile 创建一个图元文件设备场景
3 b. E$ |6 k9 c4 P* s/ U* U5 F" xCreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子 & `; x4 w! V" g
CreatePen 用指定的样式、宽度和颜色创建一个画笔 $ F4 w' i- z2 Y% V
CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔 , }& v' }! j/ f4 U2 N- y
CreateSolidBrush 用纯色创建一个刷子
8 ~- O* l' S8 v9 F2 o, g( ?DeleteEnhMetaFile 删除指定的增强型图元文件
  c# l5 w3 d9 J8 I4 J- ADeleteMetaFile 删除指定的图元文件 # i# X; X: @& X$ Z8 L4 U
WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放" x" n  U7 T) g7 i( k# a( k8 I0 s
DrawEdge 用指定的样式描绘一个矩形的边框 - y; J; i! n* i  x" q  }  Q* ]
DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
( ~) v7 E2 I- c, E  e% J' [5 ?DrawFocusRect 画一个焦点矩形 % E/ u4 l2 O4 x* F, M
DrawFrameControl 描绘一个标准控件
- W7 x1 \7 x! D# k  X$ ?- kDrawState 为一幅图象或绘图操作应用各式各样的效果
% f6 L' k& X) }4 {- R5 R# p! _& vEllipse 描绘一个椭圆,由指定的矩形围绕 ( u& N0 G  {8 p' Q& {( z2 N0 y- S
EndPath 停止定义一个路径 3 H& ^3 R" z" d$ d; O; S8 q
EnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录 ( \: k0 o0 x8 U" r: i  s# A
EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
2 Y3 o9 O; J7 h* J' H( T6 }& ~EnumObjects 枚举可随同指定设备场景使用的画笔和刷子
6 [& F: Z# s, U! FExtCreatePen 创建一个扩展画笔(装饰或几何)
- ~3 K5 o1 |6 ]: t! pExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域 / O5 }; v7 K1 ]4 q+ a, `2 N
FillPath 关闭路径中任何打开的图形,并用当前刷子填充 ' F* H, b1 }6 H  A
FillRect 用指定的刷子填充一个矩形 1 Y- K4 Q1 N( A9 E" f! u
FlattenPath 将一个路径中的所有曲线都转换成线段 * W% }' Z& e" g
FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
2 p7 e  t! P8 S9 F0 }, w1 ]FrameRect 用指定的刷子围绕一个矩形画一个边框 6 i6 k; K0 U; X3 ?6 M
GdiComment 为指定的增强型图元文件设备场景添加一条注释信息 + N  w! g' Z+ |, T9 y
GdiFlush 执行任何未决的绘图操作
( \/ i/ K, u7 F8 v7 _! ~5 QGdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中
) Q2 B6 y4 `9 ~8 _5 BGdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列 2 T- G# x2 K% s0 v6 O
GetArcDirection 画圆弧的时候,判断当前采用的绘图方向
& G8 F* V$ M; C* q4 fGetBkColor 取得指定设备场景当前的背景颜色
8 I6 D0 `, O* s& d- sGetBkMode 针对指定的设备场景,取得当前的背景填充模式 0 D' n5 K, r3 R5 A  b
GetBrushOrgEx 判断指定设备场景中当前选定刷子起点 & C( v) ~9 M5 w; L1 a
GetCurrentObject 获得指定类型的当前选定对象
# `& s) o' ^* _! ]* `GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
% h4 R6 [8 E" x2 K5 pGetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄 + o) C; @  m( _
GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里
" a9 n  G1 L) FGetEnhMetaFileDescription 返回对一个增强型图元文件的说明
* w3 H) \. ~1 d( uGetEnhMetaFileHeader 取得增强型图元文件的图元文件头 8 r; A5 V- w( C8 J' @+ k/ f9 V
GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板
; |1 i! R! I! ^# QGetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 + O' ]: J( T1 ~: H
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区
3 n4 \- K" l0 E& Y' }2 i1 lGetMiterLimit 取得设备场景的斜率限制(Miter)设置
5 f3 ]8 i; W. ]' J) A/ w' R5 gGetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
# Q6 i0 d- k* ?GetObjectAPI 取得对指定对象进行说明的一个结构
- t8 s' u; W+ E/ IGetObjectType 判断由指定句柄引用的GDI对象的类型
  B- w( G9 I0 N! YGetPath 取得对当前路径进行定义的一系列数据
, F) }6 j5 o% b% N8 a+ e# p$ Z+ KGetPixel 在指定的设备场景中取得一个像素的RGB值 ' e, E/ z* {6 u+ J* M' z
GetPolyFillMode 针对指定的设备场景,获得多边形填充模式
9 O, ^5 J8 l# WGetROP2 针对指定的设备场景,取得当前的绘图模式
- a: |6 }1 P; eGetStockObject 取得一个固有对象(Stock)
  r- f% U( W9 X3 Z/ n; C: z' fGetSysColorBrush 为任何一种标准系统颜色取得一个刷子
4 J  M, R- G9 ?* S6 j% K7 V. yGetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件 9 e* U+ ]! X; @9 _% t# n
InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形 4 w; i+ ]0 s8 M6 b$ l
LineDDA 枚举指定线段中的所有点
5 C$ Q1 i/ Z! o; }, D/ W# X& D$ dLineTo 用当前画笔画一条线,从当前位置连到一个指定的点
  r( l2 h0 n; n" w3 `9 f" mMoveToEx 为指定的设备场景指定一个新的当前画笔位置
! R. d+ q0 B0 X" }: |PaintDesk 在指定的设备场景中描绘桌面墙纸图案
5 x3 q9 z1 J' W' A8 j8 |' C: ?PathToRegion 将当前选定的路径转换到一个区域里 2 W* n7 _5 `" P- U
Pie 画一个饼图
+ M+ I& W* Q( v7 E; tPlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件
" c1 i" b5 b" H, c4 VPlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 2 q$ Y" \( A' b; Y' Z0 y
PlayMetaFile 在指定的设备场景中回放一个图元文件
8 ?% t$ c; y) S& Q1 N8 a" q9 `+ vPlayMetaFileRecord 回放来自图元文件的单条记录 ; J5 Z) U- c7 _9 r4 V3 J) i
PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线 , u8 d) F1 ?* z/ a' \1 h  y2 j
PolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
  k0 O% e1 k/ zPolygon 描绘一个多边形
$ Q9 k$ h- k7 o$ P( r! RPolyline 用当前画笔描绘一系列线段
" \! E) |+ T! K$ T# v2 Y# I, [1 TPolyPolygon 用当前选定画笔描绘两个或多个多边形
" d9 C  b4 M9 m: B9 NPolyPolyline 用当前选定画笔描绘两个或多个多边形 ! D3 C* F0 C5 s# J& N" D1 ~) y. l( i
Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充
, K0 Z( w; t9 mRoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充
- U: c  b7 Z6 QSelectClipPath 将设备场景当前的路径合并到剪切区域里
% N& a8 P' p, f9 E. D) D' `SelectObject 为当前设备场景选择图形对象
6 R; \, ?) d% C! {# ]     WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);  r: R& @0 z" Y7 x: D% g
SetArcDirection 设置圆弧的描绘方向 % i4 i% X+ A9 Z4 J2 S! q. E  Z& h
SetBkColor 为指定的设备场景设置背景颜色 $ F- Y8 f; P2 p
SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式 - k# i9 C/ |; b- b: l0 [; T& G& ~, z9 D
SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
' T+ ?. T3 U1 q% K9 ~" W; X$ ISetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
1 S6 Q1 G/ Z& [5 T* D, M+ B: vSetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件
' }  X) M9 @9 l* U" p  iSetMiterLimit 设置设备场景当前的斜率限制
/ X8 X9 v& b4 z7 c. ?SetPixel 在指定的设备场景中设置一个像素的RGB值 ; A0 f( @2 k4 \; F' m
SetPixelV 在指定的设备场景中设置一个像素的RGB值
* i+ w. S1 ^# Q9 y& y8 ?. OSetPolyFillMode 设置多边形的填充模式 : q3 f2 ~4 |6 x5 R  K! ?  h
SetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致 ) c( o# t. ^8 G2 U) S$ Q5 y
SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件
8 z: ~+ w3 D4 `. oStrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域 0 K5 K) @7 J% W1 }- a. w6 y" N
StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭
5 [  `# O- }* n& @  f4 EUnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数 $ J& e! ]/ K& [
WidenPath 根据选定画笔的宽度,重新定义当前选定的路径 # c5 _- G' \1 f/ G% D, f% p
9. API之设备场景函数
0 i/ L( P7 H; BCombineRgn 将两个区域组合为一个新区域 % T2 T1 L6 L. v2 S# D1 K
CombineTransform 驱动世界转换。它相当于依顺序进行两次转换 " N4 D/ h/ i9 G$ s8 t
CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景 7 h" U; _6 Q; B9 \0 a4 e
CreateDC 为专门设备创建设备场景 , Y) V$ {, V! \* x
CreateEllipticRgn 创建一个椭圆
$ k( d4 p4 V: c  R- e0 x2 pCreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域
; [, z( c* D  W% G( V. o/ TCreateIC 为专用设备创建一个信息场景 ) D3 a& O) P  P$ w* ]; o$ \
CreatePolygonRgn 创建一个由一系列点围成的区域 0 Z8 M4 u: }' [, Y
CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的 7 s, s. v! F6 m& l: x( U/ X
CreateRectRgn 创建一个矩形区域
: @; I$ u0 X2 K- q. LCreateRectRgnIndirect 创建一个矩形区域
9 |' W6 o, T- V* g/ G" NCreateRoundRectRgn 创建一个圆角矩形 # Q/ s9 @, M, H4 q2 H$ w1 i" |
DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源
) I1 G" N6 C; r' oDPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标   [3 l* I) O( [6 e
EqualRgn 确定两个区域是否相等
. b) |' l4 _3 I: l+ u7 SExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图
( n  ]. N# U( FExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域
5 Q4 J& w3 S3 ]' t% W, ^ExtCreateRegion 根据世界转换修改区域
& g. i3 h5 K6 L$ p" xExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
/ j! P: U& G) B: q! hFillRgn 用指定刷子填充指定区域
/ W9 V7 y; p3 Q7 JFrameRgn 用指定刷子围绕指定区域画一个外框 # |2 W0 Z# N( G; k- p* [& p  n
GetBoundsRect 获取指定设备场景的边界矩形 ' H" Q/ b4 u4 K1 I' P$ L' [; _9 `
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 * f0 G- j. B$ g  G6 Q5 K! z" w  e
GetClipRgn 获取设备场景当前剪裁区
* ^( r' V( P. b$ ^" n: \' }GetDC 获取指定窗口的设备场景 1 z7 j- i8 h1 Z' P1 O* [- m
GetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 ( W. g, ], X2 ]* q% B: c" v
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示)
! r- p& F: B. Y3 O6 \6 E3 MGetDeviceCaps 根据指定设备场景代表的设备的功能返回信息
1 n8 ~9 ^- H; L! V. Y0 |; @; NGetGraphicsMode 确定是否允许增强图形模式(世界转换)   s$ z5 ~" _- U; A: [3 v
GetMapMode 为特定设备场景调入映象模式 + @0 l( @/ Q' n! x) }& D4 o
GetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
2 t8 x4 i4 e7 C4 V* BGetRgnBox 获取完全包含指定区域的最小矩形 1 t% H# f& D0 w" U1 W
GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新
; A5 [' X& G& J; ?GetViewportExtEx 获取设备场景视口(viewport)范围
! p8 i  c7 {' UGetViewportOrgEx 获取设备场景视口起点 6 p, n* p$ Q0 o! O# V5 \. j1 Y& W: u
GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景 $ j4 a. A- X2 z$ l" h- R) I
GetWindowExtEx 获取指定设备场景的窗口范围 4 ^$ S% }) W! F$ y# p7 L! X: Y
GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点
* w3 F7 }4 ~' a6 {GetWindowRgn 获取窗口区域 8 n. g9 y  v0 j/ a( K3 k2 D! r. s7 L
GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换
- k; Y5 G! q# n$ c4 t8 NIntersectClipRect 为指定设备定义一个新的剪裁区 ) N0 X/ x( b6 Z) N  V* c9 m9 W
InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画
, ~* G0 U- G- W& z" U( tInvertRgn 通过颠倒每个像素值反转设备场景指定区域
$ |) C1 J4 S) J) l1 ~$ uLPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标 + ]+ Z* I! X2 w- B4 z! B' K: K
ModifyWorldTransform 根据指定的模式修改世界转换
. m7 N3 O! @, M8 |OffsetClipRgn 按指定量平移设备场景剪裁区 2 H1 G+ P% L% k' Z! C1 v. ~
OffsetRgn 按指定偏移量平移指定区域
9 |6 R* G8 o6 `0 n) F0 w5 rOffsetViewportOrgEx 平移设备场景视口区域
8 ^% F9 ]% C; J/ aOffsetWindowOrgEx 平移指定设备场景窗口起点
1 J) g  U% Y+ f  E& iPaintRgn 用当前刷子背景色填充指定区域 : ~  c3 U1 s& e
PtInRegion 确定点是否在指定区域内 / f# M$ I4 \6 e! y( X
PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)
  L  B* N3 r9 K! X# G  ^& m" JRectInRegion 确定矩形是否有部分在指定区域内 0 ~" [) ?3 Z, |5 [# p3 x9 t3 N
RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内) , B# C7 M( b, U4 k8 b  E
ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
7 U7 J7 c4 s# c8 P: jRestoreDC 从设备场景堆栈恢复一个原先保存的设备场景 # K4 D. d& \0 w5 M
SaveDC 将指定设备场景状态保存到Windows设备场景堆栈
0 f. t6 W. m9 y3 L- c. N7 m0 eScaleViewportExtEx 缩放设备场景视口的范围 4 w# X$ n0 \: Z+ C6 E+ r: B
ScaleWindowExtEx 缩放指定设备场景窗口范围
) N3 q' G/ j- h8 M6 WScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
$ e4 g) c0 [! Q; ^- C) I' ?9 FSelectClipRgn 为指定设备场景选择新的剪裁区
0 m0 E8 e3 C! b' O6 z0 ]+ ]SetBoundsRect 设置指定设备场景的边界矩形
/ O5 K& O$ J  M( USetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换)
8 n2 A5 e) x# a7 o  pSetMapMode 设置指定设备场景的映射模式
0 A/ ]4 Y7 Z$ k# ySetRectRgn 设置区域为指定的矩形 2 c+ b7 ]5 k0 {7 k2 `
SetViewportExtEx 设置设备场景视口范围
% T: j5 s  j$ P- Y) w$ uSetViewportOrgEx 设置设备场景视口起点 % z/ _% L7 U9 z
SetWindowExtEx 设置指定设备场景窗口范围
; B6 c: ^" D' G2 }% ESetWindowOrgEx 设置指定设备场景窗口起点
" n% A  g- I$ C( t+ G1 p/ nSetWindowRgn 设置窗口区域
' R" Z$ B) ^" q8 ?3 K# P# HSetWorldTransform 设置世界转换
0 ]. b6 i0 M6 x" u# O6 S7 QValidateRgn 激活窗口中指定区域,把它从刷新区移走
0 }6 h- L( M9 S$ KWindowFromDC 取回与某一设备场景相关的窗口的句柄 , ]1 C0 n0 J9 `
10. API之硬件与系统函数 # [9 E3 y, l) q$ ^' N# _
ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义
$ B# L0 d, h1 j5 G  ~Beep 用于生成简单的声音
+ n& O; f, `0 B# O! |/ ]2 ?/ s- LCharToOem 将一个字串从ANSI字符集转换到OEM字符集
0 e% b% p0 C7 g* h, tClipCursor 将指针限制到指定区域
4 s- P: J8 g# E& E" {ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
9 Q9 Q9 G/ P! |* z9 H* {+ }CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符
  Q. }& M4 j0 N+ o0 N% }DestroyCaret 清除(破坏)一个插入符
: u; e* H( H) O. }& }: u8 GEnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息 " L3 u' P# z6 N
EnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式 , s# {' l8 w5 w: C! a/ a1 [. l# H& [
EnumSystemCodePages 枚举系统中已安装或支持的代码页
0 ?( x5 V6 `, E7 w8 _" S( CEnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置 1 D6 y# e+ l0 a: ]
EnumTimeFormats 枚举一个指定的地方适用的时间格式 2 V. n1 o; x  E' `( H% D0 J3 O. G
ExitWindowsEx 退出windows,并用特定的选项重新启动 3 J( k$ d+ Y5 n2 J
     WINUSERAPI BOOL WINAPI ExitWindowsEx(
, P, g% @1 N8 xUINT uFlags,       //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG
% n$ a. N3 t0 e, q& ^     DWORD dwReserved); //0, _6 X. ?& u$ }2 v
ExpandEnvironmentStrings 扩充环境字串
. r% z" \6 P1 P  e& p$ ZFreeEnvironmentStrings 翻译指定的环境字串块
! I/ s2 _2 k: hGetACP 判断目前正在生效的ANSI代码页 ( ]- ]7 b- b/ \4 n8 \
GetAsyncKeyState 判断函数调用时指定虚拟键的状态
0 G1 e: h8 i& R' H! BGetCaretBlinkTime 判断插入符光标的闪烁频率 / l+ ^. J+ r3 q& C) P& T) H2 B7 t/ X
GetCaretPos 判断插入符的当前位置 7 M+ s/ j. i) C# D4 [
GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域
) ^! F0 e' R2 n2 a4 M1 uGetCommandLine 获得指向当前命令行缓冲区的一个指针
4 n& C, L3 Q/ Z% MGetComputerName 取得这台计算机的名称
- G7 e) \. z& r) J. e+ rGetCPInfo 取得与指定代码页有关的信息 3 j" P3 }- H, j5 f8 u- T7 v) Y. Q
GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字 . g! q) B+ P* `# v3 ~
GetCursor 获取目前选择的鼠标指针的句柄 : i# ]6 z; i* R
GetCursorPos 获取鼠标指针的当前位置
3 Q* G9 s8 P( v* p# ~GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化
& a0 k2 \8 O. \  K; C* a2 m2 }GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 - `+ r( L& S. q% u
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄
- a, s  l" b/ I" L( D6 ?/ b" ^GetEnvironmentVariable 取得一个环境变量的值
7 y4 d( J# b4 W/ }: z( p  XGetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件 * `; M% d' c8 T3 _4 V
GetKBCodePage 由GetOEMCP取代,两者功能完全相同 6 H2 @8 Z" R4 y8 `5 M; m* _# c
GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
, Q/ L* A: @' w9 rGetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
! ?7 n! P4 a' J1 PGetKeyboardLayoutName 取得当前活动键盘布局的名称 ; N8 v5 A7 q2 d$ j: f5 |- l9 x% i
GetKeyboardState 取得键盘上每个虚拟键当前的状态 - z% d& v! j) c, z4 w
GetKeyboardType 了解与正在使用的键盘有关的信息 % j% ~8 H0 o) i7 j+ E& t+ Y0 }
GetKeyNameText 在给出扫描码的前提下,判断键名
: v# `* X# e& O' a- pGetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态
5 E0 n4 X! |2 I9 x8 R0 \! I4 E, ^GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
8 S# t0 n  H# m  k8 j" }+ fGetLocaleInfo 取得与指定"地方"有关的信息
* ]. J5 c) i& \9 q; w: r" b. wGetLocalTime 取得本地日期和时间 % r' E# c. z6 U: g! M
GetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字 1 m6 I7 o1 j2 k& b
GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页 ' H4 _- G$ d6 c  ]0 j" _4 R7 H6 E
GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型 7 t5 o8 D& N4 n
GetSysColor 判断指定windows显示对象的颜色
% k4 l& K& S- U* F, a1 dGetSystemDefaultLangID 取得系统的默认语言ID
$ j/ c0 P( \9 f1 ^GetSystemDefaultLCID 取得当前的默认系统"地方"
) r& {; C/ l5 xGetSystemInfo 取得与底层硬件平台有关的信息 / u9 P6 b( k$ X: ?
GetSystemMetrics 返回与windows环境有关的信息 8 F6 W0 m  s5 E* w% I: u) G
GetSystemPowerStatus 获得与当前系统电源状态有关的信息 1 q/ o# I: o% `0 y; Y$ D: Y
GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式
6 c2 h. B- M) y4 i4 h6 b4 h7 eGetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步 / o* F. l. V* }# c" Y/ ^
GetThreadLocale 取得当前线程的地方ID % k0 g* G7 L/ U/ a3 h6 e  v
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
, Y4 A) f3 P% P( K7 m- BGetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间
+ n! f( S: A# j+ EGetTimeZoneInformation 取得与系统时区设置有关的信息   O6 Q# l" l/ A6 K$ P& h: \8 L
GetUserDefaultLangID 为当前用户取得默认语言ID
' r; e" z; U" U/ Q9 `3 gGetUserDefaultLCID 取得当前用户的默认"地方"设置
# Q6 r. F( ]& G1 VGetUserName 取得当前用户的名字 % W. G9 d( y, c' q' X
GetVersion 判断当前运行的Windows和DOS版本 + I5 ?. _) E& w6 {9 O( d
GetVersionEx 取得与平台和操作系统有关的版本信息 / P. ~/ {7 I- }  h
HideCaret 在指定的窗口隐藏插入符(光标)
% [$ l4 o" A+ a. p( b& |3 C( p. AIsValidCodePage 判断一个代码页是否有效
& I& `& b+ c- l' |. E  TIsValidLocale 判断地方标识符是否有效 ; |2 G6 E' m& u5 y1 r
keybd_event 这个函数模拟了键盘行动
- h/ ?3 @. G9 @0 f) s/ HLoadKeyboardLayout 载入一个键盘布局
1 l9 Y+ ^# @8 |0 d  Z* V: gMapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 8 s4 O/ b* @8 Y/ i: y7 q0 n* }
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换
( w# T" ]: T7 M* d& g1 ~) HMessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的 : F0 D1 l/ c1 F* T& R
mouse_event 模拟一次鼠标事件
- c& D& Y4 N- {OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态 $ @# f  [: k' {& V- p; Q! n
OemToChar 将OEM字符集的一个字串转换到ANSI字符集
- A% M# M% J" m8 wSetCaretBlinkTime 指定插入符(光标)的闪烁频率 ' ~* ^$ m/ i& d& m- Y
SetCaretPos 指定插入符的位置 1 v/ [. @+ V( L8 p+ i# r
SetComputerName 设置新的计算机名
* m1 f4 o1 F* O; R/ V: iSetCursor 将指定的鼠标指针设为当前指针
1 @$ S* }+ i6 H2 n4 R2 m  i$ |' _SetCursorPos 设置指针的位置 5 Q# q. s* i& f  X! S
SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 8 _8 N6 c+ V5 G9 M5 a" w
SetEnvironmentVariable 将一个环境变量设为指定的值 % C8 Q5 }1 K. T/ B
SetKeyboardState 设置每个虚拟键当前在键盘上的状态
$ k+ ~3 B- j5 e7 ]9 @& ^SetLocaleInfo 改变用户"地方"设置信息 + Y& v. x5 B9 @9 n4 |! J
SetLocalTime 设置当前地方时间 2 v% z$ T' o& F0 G/ |
SetSysColors 设置指定窗口显示对象的颜色 ' L" D3 x2 T' V% {& G
SetSystemCursor 改变任何一个标准系统指针 $ X& t5 [7 u2 C, H
SetSystemTime 设置当前系统时间
) _1 }1 D) r3 ^/ MSetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 & E! l; _& a: P, P! k5 u6 T
SetThreadLocale 为当前线程设置地方 " ?6 l9 i. w' y, D8 P( g+ _
SetTimeZoneInformation 设置系统时区信息
4 {* p7 i4 }' Y/ h8 fShowCaret 在指定的窗口里显示插入符(光标) 6 c! K( c) j+ w0 n. E
ShowCursor 控制鼠标指针的可视性
5 P! h, F( U& T3 U" NSwapMouseButton 决定是否互换鼠标左右键的功能 7 n9 f& I8 i8 I2 X
SystemParametersInfo 获取和设置数量众多的windows系统参数
+ q: J3 v. X5 N4 |/ m! N/ x) J$ }$ a' KSystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间 : Q* }+ \9 C( v/ `
ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符 4 Y5 b4 ^& [; f" _# X$ I
ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符 $ v" ^/ p6 M# [1 f- Q9 |8 {
UnloadKeyboardLayout 卸载指定的键盘布局 . b: Z) H5 n4 ^7 Y+ z6 b
VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态 , k/ v* I( s; t  j% V9 p7 x0 t
11. API之进程和线程函数   W3 V4 s' y2 u# n1 L- Z
CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作 , B0 A+ D: G. t, z, X; b! ^' Y
CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用
' o; Q; u; P$ n( u0 `+ TConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接
' y; \1 B- Y9 wCreateEvent 创建一个事件对象 8 J/ |. b) k- n2 [* T1 t
CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)   Z% P! u  E, x& e; \1 V: K9 T
CreateMutex 创建一个互斥体(MUTEX) ( r/ @$ X3 W2 D
CreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用
- u9 ^% X1 u+ y/ vCreatePipe 创建一个匿名管道
  [0 d& q3 {0 N8 C; h8 e0 BCreateProcess 创建一个新进程(比如执行一个程序)
8 G4 P6 V9 U7 x) O" `6 k+ pCreateSemaphore 创建一个新的信号机
8 g" D& r' k% u+ K" I1 b9 yCreateWaitableTimer 创建一个可等待的计时器对象 2 @/ U' t0 i* J: P1 `, r( R
DisconnectNamedPipe 断开一个客户与一个命名管道的连接
$ r( s8 _  v8 sDuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄
$ s8 V7 |$ B( [# _3 }ExitProcess 中止一个进程 " N& B/ R) k+ d4 \' J# c
FindCloseChangeNotification 关闭一个改动通知对象 7 ~: g' P4 ?4 [9 k
FindExecutable 查找与一个指定文件关联在一起的程序的文件名 ( Z4 x! C3 h6 Z! r' G3 L
FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化 & [7 O3 O7 ]' D/ y
FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 # P. R& V1 h# d) Q* O. V
FreeLibrary 释放指定的动态链接库
; @- f# C5 G' C$ ^/ W% aGetCurrentProcess 获取当前进程的一个伪句柄 6 I3 f1 D9 D' v6 r( h+ k
GetCurrentProcessId 获取当前进程一个唯一的标识符 3 g7 M, f  B8 ~$ g' b8 q
GetCurrentThread 获取当前线程的一个伪句柄
4 I# E* \+ W0 kGetCurrentThreadId 获取当前线程一个唯一的线程标识符
/ T1 Q( j6 L  nGetExitCodeProces 获取一个已中断进程的退出代码 ; p  y7 r/ Z" o& R8 d
GetExitCodeThread 获取一个已中止线程的退出代码 # D  l# i% \& ^) N8 ?' Y3 D- y# G
GetHandleInformation 获取与一个系统对象句柄有关的信息
$ H  ?+ e/ G4 y6 H: ~GetMailslotInfo 获取与一个邮路有关的信息
& ^) [/ }; q5 F. x- {; n* t4 lGetModuleFileName 获取一个已装载模板的完整路径名称
3 I1 ?8 [6 ?; T, dGetModuleHandle 获取一个应用程序或动态链接库的模块句柄 9 T) S0 j: D  M6 I
     GetModuleHandleA(LPCSTR lpModuleName);+ \' S; x- ?9 \/ U8 @" r- i
GetPriorityClass 获取特定进程的优先级别
; R8 ^4 B- p! g! _. Y2 S+ }GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 0 C& c4 B2 }+ \' R! Y+ J
GetProcessTimes 获取与一个进程的经过时间有关的信息
9 ^4 p" H2 p5 x3 hGetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存 * ^, D# B" J" S; F9 @6 n9 P3 X1 ^8 ~
GetSartupInfo 获取一个进程的启动信息 + w/ f* r7 F8 y$ Y
GetThreadPriority 获取特定线程的优先级别 2 p& }3 k& f% Q. U+ X  F6 j
GetTheardTimes 获取与一个线程的经过时间有关的信息
, j& @* x* @( k2 y: u7 NGetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符 ' E  {3 d% m1 k6 ?& A
LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
& i) O* ~! v0 j6 D2 ~LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间 & C9 s$ W' N2 v" o
LoadModule 载入一个Windows应用程序,并在指定的环境中运行 2 u- Y% D; W) d. ?2 u: i
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回
1 [+ x* A9 v1 y: ^8 }SetPriorityClass 设置一个进程的优先级别 , }+ P" g* Z, k1 a7 L
SetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序 4 Z$ U, L, y% U+ l! Y- h& p
SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量   G3 s) X$ z4 O1 T
SetThreadPriority 设定线程的优先级别 8 g+ s* r& A2 j
ShellExecute 查找与指定文件关联在一起的程序的文件名
5 ?$ y: R: S8 f4 k. {6 k7 J6 ~TerminateProcess 结束一个进程 * n0 L& I' t: I2 W' A
WinExec 运行指定的程序 ) h4 U( e, r& X% T- c
12. API之控件与消息函数
) T4 m$ W# B, R; IAdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 / H- g0 i# b1 T* [; i
AnyPopup 判断屏幕上是否存在任何弹出式窗口
0 I3 ~$ H# }! A6 I  J+ m8 W0 {ArrangeIconicWindows 排列一个父窗口的最小化子窗口
  `0 P4 d; _: p; lAttachThreadInput 连接线程输入函数 9 p# L4 g% M* Z4 \5 K3 @5 d
BeginDeferWindowPos 启动构建一系列新窗口位置的过程 . _; F1 i& [$ e1 b
BringWindowToTop 将指定的窗口带至窗口列表顶部 $ L8 @9 s( o4 L- o1 d6 z
CascadeWindows 以层叠方式排列窗口
0 X, b  ~. Q, {9 ^; ^ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 1 v0 L5 x3 H$ s! @0 Z4 i
ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标 ! x* a# x, r9 l6 M* j; c4 [
CloseWindow 最小化指定的窗口 % T! F& U0 v. b0 h" q
CopyRect 矩形内容复制 ! d5 x' y+ a2 T, P+ M0 {
DeferWindowPos 该函数为特定的窗口指定一个新窗口位置
, h; o- O4 a& u' oDestroyWindow 清除指定的窗口以及它的所有子窗口
: e7 x5 `7 V, R1 A  I0 h. wDrawAnimatedRects 描绘一系列动态矩形
8 Q3 }  {1 b+ R" g7 z6 [, E8 LEnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入 ) ?* G; \/ R7 q2 Z
EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
" [0 @: }/ H" p2 x, y# a5 ~" D6 q& g+ ?EnumChildWindows 为指定的父窗口枚举子窗口
7 U& g8 k9 W5 C6 r2 TEnumThreadWindows 枚举与指定任务相关的窗口 0 C: v4 K1 j/ \% P. q& Z+ F
EnumWindows 枚举窗口列表中的所有父窗口
1 e& X' j; ~) t6 G) wEqualRect 判断两个矩形结构是否相同 0 N2 ?. U7 y  t/ d
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 , j1 D1 Y' n- d9 d* a  m  s
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口 " h7 O7 j; B! ]; o! q
FlashWindow 闪烁显示指定窗口 8 M5 T/ ]+ _' ]( b
GetActiveWindow 获得活动窗口的句柄 ; P' A" i. M! s- Y# ]% n6 d/ X
GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
9 A' Z/ V$ `7 L+ I1 \5 f0 [GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息 " v2 d; h* n6 Z) s8 ?# I# S
GetClassLong 取得窗口类的一个Long变量条目 2 N# }) t  z" u# w$ B
GetClassName 为指定的窗口取得类名
- S" O+ K+ O1 gGetClassWord 为窗口类取得一个整数变量
6 j. A2 H& o5 R# d+ P& y5 jGetClientRect 返回指定窗口客户区矩形的大小 + a3 F/ E1 X1 n. k/ }8 i
GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄 $ C6 w$ V6 }& |, }, ?
GetFocus 获得拥有输入焦点的窗口的句柄
% F! \; V+ B5 U6 t9 y: F5 nGetForegroundWindow 获得前台窗口的句柄
/ D* r/ M3 L6 k/ m6 c" i# ?" \GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄
" h2 z* \, Y* KGetParent 判断指定窗口的父窗口
0 o; J; j: D* c0 x: n3 k" mGetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 % H9 a4 W9 T+ W+ P% P. A1 `
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 & ?, v7 W, m, q$ b
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 ; Y/ z" l1 k4 v* g' p
GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID % C1 {" D  T$ N) X& Y' A3 ~
GetWindowLong 从指定窗口的结构中取得信息
0 q+ A6 y$ @+ jGetWindowPlacement 获得指定窗口的状态及位置信息 ! d. m: e9 ^2 E1 y& ~+ E& F
GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
0 O# e( \9 J+ G: ^  ~0 Q- |* ]$ `GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容
, M" q" f9 R* Z! C  |; T6 H! [GetWindowTextLength 调查窗口标题文字或控件内容的长短
9 Z( `& w! Q2 C' m' P  l. ]  y/ OGetWindowWord 获得指定窗口结构的信息 : P$ L& F" M+ C
InflateRect 增大或减小一个矩形的大小 ; b2 `$ Q! M' C5 r
IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 + f$ |* h! H/ y, ~. R: A. y5 c# w
InvalidateRect 屏蔽一个窗口客户区的全部或部分区域
# c. K$ v  W- {, [4 y, i. R$ oIsChild 判断一个窗口是否为另一窗口的子或隶属窗口 / z4 K3 P' _2 d& T9 U7 x9 _6 {# v0 o
IsIconic 判断窗口是否已最小化 & d: h5 L8 |: \
IsRectEmpty 判断一个矩形是否为空 * o6 h; [/ c$ t5 T" \# s; Q6 u, k- v
IsWindow 判断一个窗口句柄是否有效
( c! o5 t/ v" E( WIsWindowEnabled 判断窗口是否处于活动状态
8 c# V6 P& I1 {7 iIsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字
$ t1 q3 K7 I; h5 [: c+ JIsWindowVisible 判断窗口是否可见 3 u6 b7 Z: h. g1 M) A- |  a6 F
IsZoomed 判断窗口是否最大化 + Q  ]4 Q- O: N8 l" Q3 K6 Q
LockWindowUpdate 锁定指定窗口,禁止它更新
* }7 s5 u5 D$ p1 q6 t$ u) U- l; GMapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统
8 K  N( e+ P8 y9 VMoveWindow 改变指定窗口的位置和大小 ( v% K8 |- Q+ S- t2 h) n* v
OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来 / U$ `9 G4 z6 C
OpenIcon 恢复一个最小化的程序,并将其激活 1 P: l- W5 c5 U$ d) X+ n
PtInRect 判断指定的点是否位于矩形内部 ( @' P5 ]' |, H+ L0 V
RedrawWindow 重画全部或部分窗口
2 W* \; j1 O! i6 e- g! xReleaseCapture 为当前的应用程序释放鼠标捕获
  ?# I# X$ _3 ?" r' mScreenToClient 判断屏幕上一个指定点的客户区坐标 6 F; V; x6 h7 L5 {" O+ A6 T
ScrollWindow 滚动窗口客户区的全部或一部分 8 m+ D( w* Q6 U; c& q  D6 e$ p" u
ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分 & [) o& z% X4 J. ]7 J( Y
SetActiveWindow 激活指定的窗口
) P+ c/ g: b' t1 y, aSetCapture 将鼠标捕获设置到指定的窗口
1 Q( G% W$ r8 U5 SSetClassLong 为窗口类设置一个Long变量条目 , V1 o1 \  X- k' w9 }/ f
SetClassWord 为窗口类设置一个条目
" h6 i5 j! |+ z0 z. ^/ V2 YSetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口   w3 B: T; G& J
SetForegroundWindow 将窗口设为系统的前台窗口 ' y" k' Q- ~+ \( V# U& a
SetParent 指定一个窗口的新父
3 b, s$ r: c7 ^) {) }SetRect 设置指定矩形的内容
2 Z: R7 d5 _0 c4 A6 M) n# fSetRectEmpty 将矩形设为一个空矩形
* o  d- W; W5 @- ZSetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
4 u; B$ V+ A/ {& N( rSetWindowLong 在窗口结构中为指定的窗口设置信息 * E5 M% w$ S, G. t
SetWindowPlacement 设置窗口状态和位置信息
  W7 w- c* ~: \7 Z% E' z  e5 bSetWindowPos 为窗口指定一个新位置和状态 7 P* j8 _1 w! K8 I
SetWindowText 设置窗口的标题文字或控件的内容 6 m8 f* O6 ^) e" l) H9 g
SetWindowWord 在窗口结构中为指定的窗口设置信息 : s8 i. e! s. i8 C/ D/ j
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口 9 D4 }& m, a: `& j, s
ShowWindow 控制窗口的可见性 3 X; f) `. }# ~; L
ShowWindowAsync 与ShowWindow相似 1 E: \! D. A( ]! {/ s6 g2 u
SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果 ! N; c' q0 G# i8 |6 }$ K9 T
TileWindows 以平铺顺序排列窗口 # f# d: h- C( _/ @# `" F* L8 b2 l8 e2 d
UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果
3 B/ t. L8 O: m6 \2 q! T( w# a0 B8 w: hUpdateWindow 强制立即更新窗口 ( Z  \3 ~: C/ K3 x
ValidateRect 校验窗口的全部或部分客户区 6 ]. @' h1 V4 N6 U  y
WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口5 h) D( G6 A. m1 i! W0 x
高级音频函数—参看《VC++ 编程指南.chm》11.6& U% c6 D3 r5 a0 U
     Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。- M( K1 }+ {: X- w/ [/ F
     BOOL MessageBeep(UINT uType);8 R" w- z. {+ e' b5 i# r
该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。% d0 s% E: a) r2 I7 e) S& Y
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。- {8 Q! c! c) n2 z: P; U. P
级别 + b- L/ ^. U! t" k: }  O
描述 4 G0 c' ~& k0 ]7 e2 I
-1
8 x; h5 H6 ^6 T+ f% s
从机器的扬声器中发出蜂鸣声。 + v5 `1 I0 |) L- L  I  B
MB_ICONASTERISK 6 u* \2 z  j4 Q% |
播放由SystemAsterisk定义的声音。
4 g0 f8 g. ]# Y. ]. c: m
MB_ICONEXCLAMATION 9 {' \. S$ F# a1 u: ^
播放由SystemExclamation定义的声音。 # N1 ^5 M* S( U4 d' f& A- n
MB_ICONHAND ( o3 L3 h- H; z
播放由SystemHand定义的声音。
6 b! l& b2 c) F% f
MB_ICONQUESTION * x3 ?' Z$ I6 P4 ?+ P2 \
播放由SystemQuestion定义的声音。
: _- f6 J7 p& Z
MB_OK ; x7 H- o5 h' N  I3 a' ]& `' F
播放由SystemDefault定义的声音 1 O* Z7 j$ R! M  S4 k/ o0 @
BOOL PlaySound(LPCSTR pszSound,     HMODULE hmod,      DWORD fdwSound);% n4 M% N2 L, k6 b, R+ ^" F  g& u
参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。
3 @# r$ c4 y) D0 m参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。! }% G# x8 f: Y! x% ?0 U; |
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。, {" }/ ]5 O/ U) S' z. l
标志 % |: Q$ ^) `/ C0 \3 ^- t# j
含义
) v, S3 f2 \6 e. e( D1 n2 [& a
SND_APPLICATION
6 v; b$ R$ [* T2 e* ?6 z' e# a
用应用程序指定的关联来播放声音。 , U1 q1 W( |# m3 o( w
SND_ALIAS
1 }' K  G- F- k! B
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。 $ b1 j! P; i0 e5 }' r0 K
SND_ALIAS_ID
# h: M" F+ X# J$ d
pszSound参数指定了预定义的声音标识符。
% _: b& H( i2 v; r' l
SND_ASYNC 0 c  V- |1 Q- c  _0 n3 c/ T# A" o1 f- D
用异步方式播放声音,PlaySound函数在开始播放后立即返回。 ; ?  z, n  q  G+ X2 f' ]# h/ q4 d
SND_FILENAME - i1 P% \* y  {% g+ F( x7 ?# V( N
pszSound参数指定了WAVE文件名。 & `' B6 c7 V8 y, I, y. x
SND_LOOP
. J0 |& X, s5 m( h- x# ~) @
重复播放声音,必须与SND_ASYNC标志一块使用。 ' P( Z& V$ T+ y# d1 r
SND_MEMORY ; W' I, a. y+ w/ w# u& d
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。
* u; j; v  J3 \& e9 J! m
SND_NODEFAULT
0 T  r5 o# \  q, ]# `
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。
' g  j" Z4 J6 b- e8 q
SND_NOSTOP
, t% Z0 E( W" k9 V) k8 a! I
PlaySound不打断原来的声音播出并立即返回FALSE。 : I& S6 S0 a- o; J5 t' Y. |
SND_NOWAIT ; M) U# z7 {, l3 V& M+ Q) u+ O, x
如果驱动程序正忙则函数就不播放声音并立即返回。 8 [6 |( O0 F4 y) p
SND_PURGE 9 d. X  C# }5 L. O
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。
, c+ |- J, u9 Z5 a3 u
SND_RESOURCE
8 f  P) n& C. Z6 N$ V9 v
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
9 Y; f+ J: g2 K, f5 Q
SND_SYNC
. o6 ~$ N% ], r' j% h6 y$ D5 `+ t# V! q
同步播放声音,在播放完后PlaySound函数才返回。
7 ]9 N8 N  C/ {# R( ?( |
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);
: v+ y( Q  J/ P' e( T, [& v0 Q函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。" l. f2 L1 S9 @& [% ^
MCI播放) H6 Z) }. k* D& Q6 @3 \& f9 c
所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:1 U. A  W; ]7 O1 J7 U. \  C6 o2 [% p
MCIERROR mciSendString(( J* s% y' D. \% p
LPCTSTR lpszCommand, //MCI命令字符串
) }+ }0 X7 w* N# C% XLPTSTR lpszReturnString, //存放反馈信息的缓冲区
6 z7 `' J! y8 Y, ]7 y* Q! hUINT cchReturn, //缓冲区的长度
, t3 r+ i1 l6 U  O0 {HANDLE hwndCallback //回调窗口的句柄,一般为NULL
& Y. y8 M) W! Y9 v0 @3 v); //若成功则返回0,否则返回错误码。1 M4 Y% g- v! Q
该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:
/ F/ I5 ?2 p9 F, E# O' B6 HBOOL mciGetErrorString(
5 C# _" y9 J/ @  XDWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码
' A" `  Z2 q8 e0 t7 Q1 i( RLPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区) M2 M: B% \6 |. }  M
UINT cchErrorText //缓冲区的长度& n1 d* Q7 E! n7 r- `# O" S& n+ Y2 ~
);
0 U6 {& Y! F* m4 f
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|宁德市腾云网络科技有限公司 ( 闽ICP备2022007940号-5|闽公网安备 35092202000206号 )

GMT+8, 2026-1-27 17:48 , Processed in 0.023401 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表