找回密码
 注册
查看: 4679|回复: 0

Windows API函数大全

[复制链接]
发表于 2011-5-19 20:42:51 | 显示全部楼层 |阅读模式
原文:http://www.cnblogs.com/cltsq/articles/api.html0 Q: c$ o& B' l+ ]7 c0 t& J
1. API之网络函数
% V- G! I+ t2 A! hWNetAddConnection 创建同一个网络资源的永久性连接 & g" Q6 Y6 f4 y) f% O& M6 \
WNetAddConnection2 创建同一个网络资源的连接
, R7 n/ Z' h! l2 h5 m5 p5 k' @WNetAddConnection3 创建同一个网络资源的连接
5 ?2 J7 ?, s) K3 X% jWNetCancelConnection 结束一个网络连接
# O3 t: h& B8 z7 A# R+ P2 @: kWNetCancelConnection2 结束一个网络连接 # C0 L% t, P- X6 J0 {
WNetCloseEnum 结束一次枚举操作
/ `' f0 R& A7 B; y- |/ f+ NWNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
6 n: j& G' u& U3 D& VWNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
& w% y+ s& r# o" `# K4 [WNetEnumResource 枚举网络资源 & O) V5 ~5 S& g( M6 J
WNetGetConnection 获取本地或已连接的一个资源的网络名称 9 J$ L6 X6 P) s' v
WNetGetLastError 获取网络错误的扩展错误信息
" ?* n, l- p8 i, i. V5 z- cWNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 . k, ~/ W0 x# [  Q2 f
WNetGetUser 获取一个网络资源用以连接的名字 - A" q* n# I1 n
WNetOpenEnum 启动对网络资源进行枚举的过程
" ~1 U& W7 Z! S3 u7 E$ }6 u" {' z2. API之消息函数
) U+ s5 {; D# k. ~# g, uBroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
1 f2 R# V4 S) h; b! NGetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 # ^, U) m- t. q' ?) {& B8 @
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间
5 Y5 M4 {* z1 vPostMessage 将一条消息投递到指定窗口的消息队列
8 R- r" Q) r# x& N5 v2 e% L; @# D. HPostThreadMessage 将一条消息投递给应用程序 2 C+ C. I/ g# N, P+ F' k
RegisterWindowMessage 获取分配给一个字串标识符的消息编号 ; \7 V8 e: {' E' ~6 Z8 p2 f4 B0 P
ReplyMessage 答复一个消息 " b5 P6 W; a+ L1 e9 p& W
SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 - |2 P2 x  [8 b, e1 j8 R
SendMessageCallback 将一条消息发给窗口
& \  `9 j/ }5 Z" @. _SendMessageTimeout 向窗口发送一条消息
0 B0 P+ l( e" e7 }8 B. U4 ASendNotifyMessage 向窗口发送一条消息 - u* w6 P, X/ q; z! X6 i
3. API之文件处理函数 / m! {; r6 l0 A; P
CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 7 V9 |. @4 o' q, M! X
CompareFileTime 对比两个文件的时间 " q0 W2 P% D. F, {/ {1 L
CopyFile 复制文件
& W9 i: T, k3 j  {. c0 f* GCreateDirectory 创建一个新目录 / _0 d0 q" z/ b7 Z
CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 / l; y: J( K' E% Q9 g
CreateFileMapping 创建一个新的文件映射对象
6 ~- n* C- Y0 q: \4 _DeleteFile 删除指定文件 ; G  D8 c4 `6 W: d( }
DeviceIoControl 对设备执行指定的操作
7 |1 ]" ?5 x& n2 V! xDosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值
- W( i- r. n8 w, @FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值 9 z( e- k- U2 ~; T' Q9 P
FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间 . g4 U1 U0 S. N0 O
FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构
1 ~( Y& Y) D9 ]FindClose 关闭由FindFirstFile函数创建的一个搜索句柄 $ Q2 S5 F7 _- J- E; h
FindFirstFile 根据文件名查找文件 , i& K+ M# n2 A
FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 $ P! j" |: y8 j0 c: u8 f8 _
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区
7 A. D# S3 k) A' v" YFlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 $ K/ Y& N& _; S6 ?) B
GetBinaryType 判断文件是否可以执行
$ }1 H3 J6 s- V3 l$ kGetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数
- Y, J* i; b0 P1 R2 S3 ?$ }5 dGetCurrentDirectory 在一个缓冲区中装载当前目录 ; G9 r1 O; O# n5 C
DWORD GetCurrentDirectory(
, v) E% A# k' S6 Y7 {% K- |  P    DWORD nBufferLength,    //缓冲区大小  J7 o4 ^. ^, _  k  p, \
    LPSTR lpBuffer          //缓冲区的首地址) n4 r# P& {3 f  K# I
    );* d& I' I: {* [* l: U  I4 B1 u
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量   ^/ A& s5 h7 ]3 K& n
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息
" V2 x2 B5 Y7 x2 U& ~7 \GetDriveType 判断一个磁盘驱动器的类型
5 ^4 F0 s% M, t/ XGetExpandedName 取得一个压缩文件的全名 ) j/ }+ g" _' S1 O: R6 I
GetFileAttributes 判断指定文件的属性 3 }! \- H8 R: P& |2 F3 F) `( G
GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制
8 U2 T- ^( g1 Y: \$ x' lGetFileSize 判断文件长度 + q5 }( E2 H1 _& O7 S0 d$ Z
GetFileTime 取得指定文件的时间信息
. P9 L  T, ^5 [' P: ?$ V7 Q6 F* U8 pGetFileType 在给出文件句柄的前提下,判断文件类型
1 o" ?" ^& C7 Z; q  Y% jGetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息 . F: q" A# ?5 ?
GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区
' ]7 k- m) s1 c* a8 q; o' [3 AGetFullPathName 获取指定文件的完整路径名 . M# D# r7 x* S2 ]9 T# f  u
GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母
! g5 A/ {8 J$ w1 h# wGetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径
$ {4 E9 D: a2 U" {) E4 sGetOverlappedResult 判断一个重叠操作当前的状态
" ~) @$ _( v: L% I/ V: fGetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值
; G: D& S: U  o  r& P  o  U/ HGetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 8 |0 z5 r1 Z4 P( n0 W
GetPrivateProfileString 为初始化文件中指定的条目取得字串 5 p+ i; O9 J% i  I; h( f5 R
GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
/ I2 m7 P( O' y! I% d1 ^GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
4 O# V( U3 G0 S+ g7 @  U2 j' [: oGetProfileString 为win.ini初始化文件中指定的条目取得字串
' n6 Y% S& e- K0 e" UGetShortPathName 获取指定文件的短路径名 1 u0 {. W9 G3 I" h! d& G# p
GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 9 X0 g9 @/ J# L+ g, q
GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 * l7 k1 u9 \( a" b+ z
GetTempPath 获取为临时文件指定的路径 9 I  d& d1 g9 j& o7 C& l
GetVolumeInformation 获取与一个磁盘卷有关的信息 7 U& c3 U# F7 P3 J; d: S5 d2 M
GetWindowsDirectory 获取Windows目录的完整路径名 8 h" o! y! }. a0 |6 j  g
hread 参考lread
7 S" [& r" f: @hwrite 参考lwrite函数
* @7 B+ Z- i( P7 O9 Zlclose 关闭指定的文件 0 L: u% M  B- W
lcreat 创建一个文件
9 Y& i3 V: v; x+ X! _  L' hllseek 设置文件中进行读写的当前位置 ; ?9 b9 k" y9 C% K0 l
LockFile 锁定文件的某一部分,使其不与其他应用程序共享 ' l2 g* o7 |8 c$ X, n# Q/ T4 \3 t
LockFileEx 与LockFile相似,只是它提供了更多的功能 - @# d7 L  N- ~- y% \
lopen 以二进制模式打开指定的文件 2 J! w: p1 a  W1 ?# m
lread 将文件中的数据读入内存缓冲区 5 C/ X: ?6 M; [4 _; d+ l
lwrite 将数据从内存缓冲区写入一个文件 8 I% C* Y: M9 z
LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
5 z0 a7 f- n- M! y. nLZCopy 复制一个文件 ) q4 O& E9 D/ W! B- a: Z+ X, ]% C
LZInit 这个函数用于初始化内部缓冲区 0 `9 U& o9 Y6 B3 H" M
LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件 * s# _  t8 a  R9 L" }7 h# C. d; [
LZRead 将数据从文件读入内存缓冲区
2 E6 H! e9 x3 {! |$ P$ [5 OLZSeek 设置一个文件中进行读写的当前位置
5 N7 J, p, W& j$ I7 Z+ l' vMapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间 9 _$ [1 [+ }) v: S
MoveFile 移动文件
4 g) @& |8 i5 g- K4 l4 zOpenFile 这个函数能执行大量不同的文件操作
9 K8 H( l9 `2 G- ]' S5 ROpenFileMapping 打开一个现成的文件映射对象 3 I( N# {0 o' k1 Z
QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况 ) L# H/ i/ Z) w) p9 {( h
ReadFile 从文件中读出数据 ! c- w9 o# W! u
ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
! y. v' Z+ l% F2 f9 W' R. M9 S" ?1 `RegCloseKey 关闭系统注册表中的一个项(或键)
1 ~7 B, |6 }1 aRegConnectRegistry 访问远程系统的部分注册表 ; o7 v% R0 O% L+ |( ~
RegCreateKey 在指定的项下创建或打开一个项
2 e0 [+ ~& s$ C! G! I) JRegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数 ; p  e; L: i8 x- b) t' Z5 ?" ?" C
RegDeleteKey 删除现有项下方一个指定的子项
  h' i6 w" S- h4 QRegDeleteValue 删除指定项下方的一个值
4 ~- H0 R: G; z" X8 ^RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx   _& I. ~9 c3 T$ j
RegEnumKeyEx 枚举指定项下方的子项
% R! K: K: b/ nRegEnumValue 枚举指定项的值
$ v# i/ F3 v% i6 o- X. R4 d4 kRegFlushKey 将对项和它的子项作出的改动实际写入磁盘
( V9 q. h9 h+ P  q& N- O' `RegGetKeySecurity 获取与一个注册表项有关的安全信息 4 S- c7 r! ~; s% Z" b8 R; O
RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息
9 |+ C7 c- Y" ^RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制
& v* b5 d4 q: P: q0 Y& i+ v% PRegOpenKey 打开一个现有的注册表项 9 k) d7 h  N" p% M" s
RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
+ e. c3 n0 J0 ?) @  _RegQueryInfoKey 获取与一个项有关的信息
/ X2 t0 n1 m; l1 ]9 O8 ?. ^" bRegQueryValue 取得指定项或子项的默认(未命名)值
4 V  Y. h" W8 \4 L; b& R- \RegQueryValueEx 获取一个项的设置值
, @  \7 n% Z/ }RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息 $ U, w6 a: I& _# S, t, k8 O
RegRestoreKey 从一个磁盘文件恢复注册表信息 8 Q" [* _( `  O/ }3 f
RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件
$ V, |$ i% f8 Y9 D) Q! r3 f, ~) e: }RegSetKeySecurity 设置指定项的安全特性 / H- L1 o! `" ^: H
RegSetValue 设置指定项或子项的默认值
3 X& g) |+ p* ~% T/ ARegSetValueEx 设置指定项的值
4 o4 Y# @  O% o  nRegUnLoadKey 卸载指定的项以及它的所有子项
0 a4 [, I! c8 g" z: V. FRemoveDirectory 删除指定目录
2 A4 n) v5 |2 P' I% T" CSearchPath 查找指定文件 , S0 S' `! I: r/ T" C2 B8 J+ Z0 ~
SetCurrentDirectory 设置当前目录
* c  N7 u; a- h( KSetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾 9 {0 G: c3 m- Q, o, S
SetFileAttributes 设置文件属性
7 X8 l9 h1 u8 N6 u1 C) T4 fSetFilePointer 在一个文件中设置当前的读写位置 ! S  D* X5 ^. x* z+ N
SetFileTime 设置文件的创建、访问及上次修改时间 - x- R" z" k/ b4 T' d/ P
SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果
: F8 }' r- u- Z3 x2 GSetVolumeLabel 设置一个磁盘的卷标(Label)
8 Q/ n  C1 S  t! k  RSystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构
$ |# |' y% v/ }, {& ]8 ^UnlockFile 解除对一个文件的锁定 / k$ j  j! ?% c) r% W+ X; `
UnlockFileEx 解除对一个文件的锁定
3 V( Z" y+ t  Q: FUnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射 6 B: D9 K9 ?# X( L" k
VerFindFile 用这个函数决定一个文件应安装到哪里 ( n3 G' l+ y& H
VerInstallFile 用这个函数安装一个文件 % U) `7 r, @7 q
VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称
# m5 L+ E+ c* g% A" qVerQueryValue 这个函数用于从版本资源中获取信息 ( d+ U# k0 X, ~" T3 Z+ v
WriteFile 将数据写入一个文件
% v- @3 N3 t, M: v: WWriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调
. ^1 g2 [7 d! h! x0 |+ ZWritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值
& n7 E4 T+ _9 ~8 Q+ Q! g5 dWritePrivateProfileString 在初始化文件指定小节内设置一个字串 : X8 _+ ]' g6 h* j; K- H
WriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值 ( O8 b* [' G7 P$ y' S
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串 4 U( s7 L' Z  Y3 u8 k. \) z: p$ ^3 p
4. API之打印函数 ; U8 [. m! |4 @# E/ v- f- P, @: d% ?
AbortDoc 取消一份文档的打印
) x& [" b. l8 yAbortPrinter 删除与一台打印机关联在一起的缓冲文件
$ Y0 r% A1 W7 a, e( ^AddForm 为打印机的表单列表添加一个新表单 - C$ G( h4 A: ]# d) g3 Q) `
AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号 5 k) Z  G. O" [
AddMonitor 为系统添加一个打印机监视器 # p2 T0 k' z* N' f
AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口
+ X9 R4 ]! s7 p4 wAddPrinter 在系统中添加一台新打印机
- K7 j+ m4 W/ j1 Q* aAddPrinterConnection 连接指定的打印机
# O/ C' E8 C; `% T! zAddPrinterDriver 为指定的系统添加一个打印驱动程序
* ~9 @; u4 @" G5 p, o+ `# l- F( XAddPrintProcessor 为指定的系统添加一个打印处理器 & b- [  ?7 I! T8 v+ s
AddPrintProvidor 为系统添加一个打印供应商
  O1 z  z' E2 M" ]" C/ u6 HAdvancedDocumentProperties 启动打印机文档设置对话框
$ G' t- Y$ ], E/ i! E! lClosePrinter 关闭一个打开的打印机对象
# l, J1 T, M4 v! O6 D& @ConfigurePort 针对指定的端口,启动一个端口配置对话框
# H$ A. r- ~" MConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
/ F+ n% N" h8 p- SDeleteForm 从打印机可用表单列表中删除一个表单 2 T0 G( }2 U; _
DeleteMonitor 删除指定的打印监视器
0 U2 f% {$ v. U( [' m  a' RDeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口 8 Q0 |  b8 X1 z6 E( s  k* d2 f
DeletePrinter 将指定的打印机标志为从系统中删除
8 R" U8 w/ b! c9 _- M) q$ MDeletePrinterConnection 删除与指定打印机的连接 # t8 l+ s: m2 z0 g! A
DeletePrinterDriver 从系统删除一个打印机驱动程序 $ ?8 _8 q' R; }& F; j) b3 k/ I
DeletePrintProcessor 从指定系统删除一个打印处理器
; s9 w, \& r" s9 {& ^2 wDeletePrintProvidor 从系统中删除一个打印供应商
7 |7 }' e/ b8 x, c: u, @8 KDeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息
! W4 Y& X# Y+ DDocumentProperties 打印机配置控制函数 ! q, Z$ X6 d- s) G3 o- n4 C  h! H
EndDocAPI 结束一个成功的打印作业
# g" ^( h$ k- D9 LEndDocPrinter 在后台打印程序的级别指定一个文档的结束 4 P/ N/ q$ y7 M. z0 I
EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页
& r! D9 _$ T: u9 r3 cEndPagePrinter 指定一个页在打印作业中的结尾
9 C* J7 U% ^! a1 n% YEnumForms 枚举一台打印机可用的表单
6 D- I; p  W* xEnumJobs 枚举打印队列中的作业
& R& q6 Y0 Z  d; |1 t  aEnumMonitors 枚举可用的打印监视器
0 ^2 {$ ~1 n1 |/ d5 QEnumPorts 枚举一个系统可用的端口
$ r: H1 O/ {, C1 MEnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序
! |* [& x: f+ i& J& oEnumPrinters 枚举系统中安装的打印机 & f' `9 k' J( s
EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型
/ e( @- _5 u: FEnumPrintProcessors 枚举系统中可用的打印处理器 ( C( P( h! t# z+ g! v
Escape 设备控制函数
& @- ~5 {  k: @! ], P3 _FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象
7 i$ a) Z! ]9 P, o: eFindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化 1 X6 J2 ]" ?; k6 ~: U; d! a. f
FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因 2 m$ W/ D+ F$ E" b6 `
FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区
  l( X2 t( p& A- ]' j9 OGetForm 取得与指定表单有关的信息
& B: N; r7 K2 aGetJob 获取与指定作业有关的信息
- c) E7 C( a- e9 n: [; mGetPrinter 取得与指定打印机有关的信息 , r& `/ c) c4 s) k7 M0 R
GetPrinterData 为打印机设置注册表配置信息 $ _4 I0 [9 J% C6 R
GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息
0 c, f  ]' |0 LGetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
/ \$ d) D! S. x. c" n: B$ BGetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录 " g) h5 A) K$ ~( n0 v" o# D
OpenPrinter 打开指定的打印机,并获取打印机的句柄
  f( I& C5 P! r, ^1 A0 w, IPrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框 ' w0 e) `" H* f2 e4 i" ]4 C
PrinterProperties 启动打印机属性对话框,以便对打印机进行配置 2 q0 l8 u- ?/ d9 H4 S
ReadPrinter 从打印机读入数据 * i/ s) ^  l) j; E0 d
ResetDC 重设一个设备场景 & }+ L7 |, g! r) z# J
ResetPrinter 改变指定打印机的默认数据类型及文档设置
6 c4 }" }# ?- N1 H# |3 rScheduleJob 提交一个要打印的作业 & L" H2 k$ Y4 z
SetAbortProc 为Windows指定取消函数的地址
9 o9 w: P( @9 Z' G8 aSetForm 为指定的表单设置信息 , u3 \- z& l3 h" b. g0 x6 b6 V# G) l
SetJob 对一个打印作业的状态进行控制
. D6 Z) d: ~# m/ S1 j7 DSetPrinter 对一台打印机的状态进行控制 + W: A% |- K/ W
SetPrinterData 设置打印机的注册表配置信息
8 i% z5 G( g1 `4 ~; y# ]( V9 S. IStartDoc 开始一个打印作业
! Q! X7 l8 g! n' O4 o- M' i" h. fStartDocPrinter 在后台打印的级别启动一个新文档
7 o* f$ _% u" Q2 `& K4 @StartPage 打印一个新页前要先调用这个函数 4 ?' B8 Z. x) z& Y' M+ [$ ^  |
StartPagePrinter 在打印作业中指定一个新页的开始
- Q4 ^, w% r* h5 EWritePrinter 将发送目录中的数据写入打印机
% w! h# X6 h5 N. [5. API之文本和字体函数 ) K9 }4 r) h9 [/ s* X5 W) @
AddFontResource 在Windows系统中添加一种字体资源 " p) {0 E! n, _2 }9 ?4 A
CreateFont 用指定的属性创建一种逻辑字体
# x0 {2 L" G8 Q$ \7 `3 {CreateFontIndirect 用指定的属性创建一种逻辑字体
3 U2 Z3 b: I/ x) M# m9 hCreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统
4 k+ w; Z& z' {$ r% yDrawText 将文本描绘到指定的矩形中 - F- K. O7 Q) |3 s0 s2 _9 x8 Z. t. E
DrawTextEx 与DrawText相似,只是加入了更多的功能 $ q/ |% N. `1 M( @: t# w
EnumFontFamilies 列举指定设备可用的字体 # S0 D3 Y1 d9 ^
EnumFontFamiliesEx 列举指定设备可用的字体 3 X5 A" [: }3 t( l0 @% F
EnumFonts 列举指定设备可用的字体 ! l, S  A' n  e2 `4 x% I
ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数 6 o$ U$ {6 D6 s* X5 Q# O/ f& }
GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 4 [2 n  r/ a8 i9 s+ M
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 ' O$ p6 Z3 E! n& N
GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸
0 T; n$ E6 }/ ?( [- p; n; RGetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串
8 r8 n3 ]& q0 x9 C% H8 W$ Z- IGetCharWidth 调查字体中一个或多个字符的宽度 * d9 b% e* `, x" y3 L& c
GetFontData 接收一种可缩放字体文件的数据
  N$ e4 s0 v* }3 w& m( BGetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息 : c% q" [! _3 V- l0 M* K
GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息
; v6 \5 C5 @/ o+ tGetKerningPairs 取得指定字体的字距信息 / f. _7 W7 v- m1 s
GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息
9 Y9 `0 D1 `  ~/ QGetRasterizerCaps 了解系统是否有能力支持可缩放的字体
) X6 N  H1 }4 v! pGetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 3 w, M. u+ L; j4 C
GetTextAlign 接收一个设备场景当前的文本对齐标志
( d* k! \" j: S! r+ b$ k2 kGetTextCharacterExtra 判断额外字符间距的当前值 * K1 J" B9 G" w% a2 }, J/ F0 O
GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
0 ]% g  Z( b! Y; L3 K$ DGetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 2 J* k3 ]% c, g6 ~- j  N8 H
GetTextColor 判断当前字体颜色。通常也称为"前景色" 4 x6 a/ H! X  J/ Y* O( `6 K
GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息 4 E: r2 ~' O! P$ w+ b. ?3 v
GetTextExtentPoint 判断一个字串的大小(范围)
$ k, L; Z$ l8 F# _1 d1 N, iGetTextFace 获取一种字体的字样名
4 s& @2 R0 c: ?7 \: T/ b' H* k3 N+ LGetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 . z& z8 ^$ {- M" L, V
GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态
+ @5 f/ B. W' ePolyTextOut 描绘一系列字串 * u( L4 ]6 [* L$ L2 K8 |6 e( K, ^
RemoveFontResource 从Windows系统中删除一种字体资源 " C' {% `" _+ H3 t0 r$ G' j; N4 \
SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 5 |) K; r& _3 N$ D& o
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置
5 g0 ^7 v! ]7 o8 GSetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 5 k% g. `- C& z5 ^# F3 u& H4 U& D0 W
SetTextColor 设置当前文本颜色。这种颜色也称为"前景色" ! @3 f( m- [' b" i: Z! Q$ U
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理
) r; P( c/ H* S+ T, G9 a0 n  XTabbedTextOut 支持制表站的一个文本描绘函数 & G; [0 r- K8 s0 i1 e: b
TextOut 文本绘图函数
6 Y' p$ @- r( |  OWINGDIAPI BOOL  WINAPI TextOut(
) J. A: H2 ]0 GHDC,     //输出设备# U7 A* Y' K8 I& S# O, z
int,     //输出的横坐标
4 p( u+ M$ {: x1 s2 \8 Nint,     //纵坐标6 r/ _) v- T+ P
LPCSTR, //输出的文本str
1 n/ x# c" v/ G4 ?# Z' Uint);    //文本的长度:lstrlen(str)4 j( n# E8 B& f- O1 R
6. API之菜单函数
" L) G6 K: P2 Z6 C# t  o. Y) zAppendMenu 在指定的菜单里添加一个菜单项 ! a7 l5 a7 j& l4 y# b4 x3 k
CheckMenuItem 复选或撤消复选指定的菜单条目 * |3 v8 f' @% S3 L8 ~" A+ W
CheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目
  h4 k% R' v5 x. E# NCreateMenu 创建新菜单 ) D, m. a2 P3 v; x- w
CreatePopupMenu 创建一个空的弹出式菜单 7 I% G: N5 H3 p; s4 x1 c* ~! o
DeleteMenu 删除指定的菜单条目 $ K& {6 v2 m' ~
DestroyMenu 删除指定的菜单 , N7 b/ {0 E* Q; M  C
DrawMenuBar 为指定的窗口重画菜单   S3 U7 [% H6 e' n
EnableMenuItem 允许或禁止指定的菜单条目
" o3 {6 B3 L8 a$ V0 u7 ~GetMenu 取得窗口中一个菜单的句柄
, B3 }) H0 ~& C- k6 IGetMenuCheckMarkDimensions 返回一个菜单复选符的大小 9 i5 W- f$ n- y2 n/ k3 J) G
GetMenuContextHelpId 取得一个菜单的帮助场景ID
: g; n; b6 a/ A& S- pGetMenuDefaultItem 判断菜单中的哪个条目是默认条目 3 r* p  c6 [& g- `+ U9 Q
GetMenuItemCount 返回菜单中条目(菜单项)的数量
; U  I$ M2 h/ Y' a1 }GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID ! S  q0 B: P, W, U7 W: x4 h6 e
GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息
) o& Q, ]: K9 X" n7 G( mGetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息
( b4 p% r& j0 n" }& a4 vGetMenuState 取得与指定菜单条目状态有关的信息
, o4 n+ r: U: w, {: I6 e3 e) iGetMenuString 取得指定菜单条目的字串
3 M- {3 U3 W; @" T6 sGetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置
- |4 o8 J2 l1 r7 a5 L# ~0 RGetSystemMenu 取得指定窗口的系统菜单的句柄
) d  a2 G0 y3 ^: h' t, I7 [4 oHiliteMenuItem 控制顶级菜单条目的加亮显示状态
7 A* N* k0 U$ I1 H2 x: m2 b  |InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
3 z* a- P# b* p$ V& I. yInsertMenuItem 插入一个新菜单条目 2 D! b7 o+ S. [6 _! L
IsMenu 判断指定的句柄是否为一个菜单的句柄 ! A+ \* g! j5 z" u5 m5 ^) f
LoadMenu 从指定的模块或应用程序实例中载入一个菜单
) c7 C: N% b. t- z" CLoadMenuIndirect 载入一个菜单
1 b# [6 v! r2 S1 Y4 g$ ^" J# lMenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点
' Q6 r5 N( C/ e) I# P* ZModifyMenu 改变菜单条目
7 ^+ Y' J3 D/ `RemoveMenu 删除指定的菜单条目 0 v. ]! {. g/ s) m; ]+ W+ q
SetMenu 设置窗口菜单
. O6 }1 J* ^0 \3 b& b. gSetMenuContextHelpId 设置一个菜单的帮助场景ID 7 k+ \3 w9 V8 j
SetMenuDefaultItem 将一个菜单条目设为默认条目
$ e/ T2 v- R1 c1 _SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)
4 @( D% k9 B+ c9 q' i+ [SetMenuItemInfo 为一个菜单条目设置指定的信息
/ W3 n% l( d; [8 j8 JTrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单 ! x% z% p( K# }. I3 o
TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 / [" l7 U% r3 p) U! ?) P. Z
7. API之位图、图标和光栅运算函数 % _5 V* ^4 z5 r+ B
BitBlt 将一幅位图从一个设备场景复制到另一个& Y9 H/ E3 r2 g1 u
     WINGDIAPI BOOL  WINAPI BitBlt(2 L" z7 Y* J7 I7 J$ G7 `( F
HDC,     //目标HDC2 y# F( Z5 b/ \; H
int,     //X1: ?* Y0 M2 F8 z0 v8 ]) j' [- m# g, a
int,     //Y1
7 q- W7 }8 s- U! C7 d9 I2 Cint,     //width
" L( z- p' w/ ~* t! Sint,     //height9 w9 p% n/ w& [5 r3 s% j# i
HDC,     //源HDC
- T+ n9 W+ X7 J+ T. B% j& ?int,     //右边的距离* s# Q, u5 {, A" z' b3 \7 I4 `
int,     //??
6 S! ~, g6 |' P! Z2 b1 M- S7 DDWORD);  //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
3 j) ]6 W( v- d6 s9 TPATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS2 g4 @' {! y  c9 g, h
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
! q7 g9 l  \7 h/ ICopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作
; ]) i4 Y! E$ D- FCreateBitmap 按照规定的格式创建一幅与设备有关位图 ' m: {* u% M" v9 L
CreateBitmapIndirect 创建一幅与设备有关位图
$ q, Z' T. L# `; f5 tCreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容
6 H% r4 i' }6 W  I8 U2 b; fCreateCursor 创建一个鼠标指针 ; C1 J+ P0 T* w. b3 J
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图 0 Y. M" t) `0 Z
CreateDIBSection 创建一个DIBSection 2 \; H2 n' c7 C$ n
CreateIcon 创建一个图标 ! O+ R! s0 A5 r. q- q7 ?
CreateIconIndirect 创建一个图标 7 u3 n7 G1 Z. F
DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源
, ~6 y# P# E+ U4 C$ {1 U/ r  lDestroyIcon 清除图标
# |+ y1 n7 l1 T+ h% v" yDrawIcon 在指定的位置画一个图标 $ ~, p+ C8 O3 i5 D+ R
DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
7 t8 U/ `3 U$ a9 |+ J& s/ Z. @ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之 * X0 D8 `0 Q' X- e# z$ S
ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来 4 o0 ~1 p5 |  a7 L# M; ~
GetBitmapBits 将来自位图的二进制位复制到一个缓冲区
2 M; e  l" T* Z. Y8 l0 TGetBitmapDimensionEx 取得一幅位图的宽度和高度 3 R- n) S0 _, k$ U( x5 F# k: \
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息 , \7 ~/ l. j7 P" x. E: v
GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里 9 S  U6 s4 X2 p. P+ i
GetIconInfo 取得与图标有关的信息 % v5 Y, Z6 @  H) y/ `* o
GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式 % S) G% h* g0 f. w
LoadBitmap 从指定的模块或应用程序实例中载入一幅位图 : L9 s, E0 y& b& u
LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针 # E, o1 ?1 L$ R1 f! ^
LoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 7 F5 h: O6 |- ?1 p- k
LoadIcon 从指定的模块或应用程序实例中载入一个图标 : h2 \& M  j+ o/ g
LoadImage 载入一个位图、图标或指针
' F5 F9 P9 P% p3 oHANDLE LoadImageA(: ?( o/ }( Q9 |" L3 Y* z
HINSTANCE,            //当前实例句柄:AfxGetInstanceHandle()
" k& ?3 s1 C) M. |( k    LPCSTR,               //资源所在的目录:c:\help.bmp
: I5 P: r$ y5 v  ?" n    UINT,                 //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE; p* ?! P( m2 c
    int,                  //3 g) t. L% R: r- V
    int,                  //% U( x& j7 i7 |
UINT);                //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|- b- @+ e: e* |9 e+ g+ }' J
R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|8 g7 w6 N" Z2 Z5 A
LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED  _/ N- ~* j! ^
MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理 $ z. C! Z0 i6 P3 E* k8 o; \- H
PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景 $ E) z+ ~& N3 m6 ^' ^5 a
PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
) J6 r  x8 {) Q" J. k: ISetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 ( ?5 A! D- }- O( P" Z0 J4 q
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 6 V% F8 _6 H: q1 O3 A6 H
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息
: c/ M; n7 i* gSetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里   c# z" R) O# A, _$ T5 C
SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备 ; L% b. @. m1 D# _/ M6 n5 K
SetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 ! I3 J8 e( U' w; F
StretchBlt 将一幅位图从一个设备场景复制到另一个
7 Z- b" @. R+ kStretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
. `, C! u% v; Z8 L* T, w$ K% N4 {8. API之绘图函数 - {# I  V: I2 i6 l% _8 E* \
AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作 ! J( k* D5 B2 \* J: J, s
AngleArc 用一个连接弧画一条线 0 s6 x5 J4 t' ^& S4 @
Arc 画一个圆弧
  ~; L( z. _2 KBeginPath 启动一个路径分支 1 t# P1 [) {& `& n' c0 K( m' d
CancelDC 取消另一个线程里的长时间绘图操作
! S+ j5 E$ \3 ], \4 tChord 画一个弦 ! W* m* i1 G, s" k
CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄
/ R! m2 R' X5 Q* x7 U; kCloseFigure 描绘到一个路径时,关闭当前打开的图形 9 K8 M; T* g) H" R$ L: n' f$ K
CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄
$ n- C. O9 Y- Y6 {0 W8 q0 s2 x$ bCopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
: ]1 l2 l/ j* Z9 |CopyMetaFile 制作指定(标准)图元文件的一个副本 + P* T0 V7 B+ U. \( w
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子 * Q" g. b/ t9 g: W# j
CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) 6 G6 Z# v+ o; `! K
CreateEnhMetaFile 创建一个增强型的图元文件设备场景
+ z. K7 U- _# i5 aCreateHatchBrush 创建带有阴影图案的一个刷子 5 s2 j' H6 D. m* {
CreateMetaFile 创建一个图元文件设备场景
1 P5 O% p: W( S% j4 j  j( Q0 PCreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
( z5 d5 Q4 G& k! rCreatePen 用指定的样式、宽度和颜色创建一个画笔
* F, B& P4 \6 V9 OCreatePenIndirect 根据指定的LOGPEN结构创建一个画笔 & n. n) Z4 ]  A4 A( R6 o& E
CreateSolidBrush 用纯色创建一个刷子
& I! C" Q0 @. BDeleteEnhMetaFile 删除指定的增强型图元文件
* q/ s4 a8 d& N( BDeleteMetaFile 删除指定的图元文件
- I0 \7 Z) Q  }$ s/ t. LWINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放' ]. g& ]+ x' V7 V9 H* `8 W
DrawEdge 用指定的样式描绘一个矩形的边框 & w4 q" t5 ?4 U6 q/ a0 p
DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
1 k4 G3 O6 S9 f$ V9 r# \9 mDrawFocusRect 画一个焦点矩形
( l4 z/ p: {& @! z/ `" F5 T5 j/ n! uDrawFrameControl 描绘一个标准控件 4 T  l6 R: n$ U/ F
DrawState 为一幅图象或绘图操作应用各式各样的效果 9 L* o5 c: b9 Y/ S- a3 {% O) D. Q
Ellipse 描绘一个椭圆,由指定的矩形围绕 % H: p. ]0 _3 Q, b
EndPath 停止定义一个路径
0 x' Y5 I2 _: ?  W% n+ ^; i1 {& Q' nEnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录
7 W7 M0 a+ [- v# A3 v6 `, X3 AEnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
- m/ ?" o& T3 Z1 R9 d2 v! rEnumObjects 枚举可随同指定设备场景使用的画笔和刷子
1 Y" X6 V, j( h  B# d5 E1 _" uExtCreatePen 创建一个扩展画笔(装饰或几何)
& c9 N" W6 ~* Q7 W) @% fExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域 9 F" m2 n0 O# s' Q4 l; d" }' E- w
FillPath 关闭路径中任何打开的图形,并用当前刷子填充 % c3 i0 G6 B: q, ~
FillRect 用指定的刷子填充一个矩形 8 F9 o4 ^6 z& E* n2 k) e7 H* s
FlattenPath 将一个路径中的所有曲线都转换成线段
* \6 y7 L  l, N7 O9 h8 a, {* NFloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
  {, N& k# S1 ?5 w5 E. F, C( aFrameRect 用指定的刷子围绕一个矩形画一个边框
- L. r5 i1 k; W. f4 R$ jGdiComment 为指定的增强型图元文件设备场景添加一条注释信息
$ m( A2 g& W, I' H6 `9 Q' LGdiFlush 执行任何未决的绘图操作
: T; r' T0 V% [! E5 oGdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中
" C  v2 f% `" }GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列 $ Z8 Z$ ^1 J: [8 M5 N+ @" Q
GetArcDirection 画圆弧的时候,判断当前采用的绘图方向
0 A- \# G. J/ X4 y8 cGetBkColor 取得指定设备场景当前的背景颜色 ; B% |3 V& ~' F4 g2 g- {9 ?
GetBkMode 针对指定的设备场景,取得当前的背景填充模式 % G- s' a) j  P- }
GetBrushOrgEx 判断指定设备场景中当前选定刷子起点
) F; t, T/ d( C2 g# mGetCurrentObject 获得指定类型的当前选定对象
1 O& k" p5 c) z% u  E9 UGetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置 0 L8 k4 X  e# _; \# N. D& K  V
GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
  P% w/ ]- }2 Z4 eGetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里
- x+ y/ P9 Z/ f5 G' NGetEnhMetaFileDescription 返回对一个增强型图元文件的说明 4 {! L  _) z! ?2 ?. g
GetEnhMetaFileHeader 取得增强型图元文件的图元文件头
% X% @1 j( Z8 V. tGetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 $ S! M! r' L$ U+ X, k/ E% I. t# U. z
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄
7 \- d# I* c! i( j8 A6 |GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区
; \6 T2 s' ^  \1 kGetMiterLimit 取得设备场景的斜率限制(Miter)设置 7 m9 E! i% Q: K2 {2 C) e. |
GetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
6 O/ ^0 b+ C. }0 }. NGetObjectAPI 取得对指定对象进行说明的一个结构
5 r4 `) z, [+ w2 w2 s" j9 f* V1 {GetObjectType 判断由指定句柄引用的GDI对象的类型
. t& Y. U9 i- W3 J! r, XGetPath 取得对当前路径进行定义的一系列数据
; H9 \7 E9 X+ w3 I' f% U- \; iGetPixel 在指定的设备场景中取得一个像素的RGB值
0 ^1 S* m3 u4 _* }7 B) Z, nGetPolyFillMode 针对指定的设备场景,获得多边形填充模式 $ X/ C; I3 c- @0 t/ i) N
GetROP2 针对指定的设备场景,取得当前的绘图模式 7 |) N  M: H* @* M: Y" t) K
GetStockObject 取得一个固有对象(Stock)
! E6 A. F: \0 V- h( P: C8 KGetSysColorBrush 为任何一种标准系统颜色取得一个刷子
6 n5 I  \% r5 H: O# xGetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件
( J& d; \9 W* d) tInvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形 - |& f# H( q2 J( p/ L5 Y
LineDDA 枚举指定线段中的所有点
2 @* F; j" t# TLineTo 用当前画笔画一条线,从当前位置连到一个指定的点 5 _6 n9 J5 q2 }( A
MoveToEx 为指定的设备场景指定一个新的当前画笔位置
8 Q1 s- y2 D1 G3 PPaintDesk 在指定的设备场景中描绘桌面墙纸图案 3 J, f$ g% N$ B. J5 N$ H; r0 X
PathToRegion 将当前选定的路径转换到一个区域里
8 R8 Y  ?8 f/ K& v8 E* H1 h: qPie 画一个饼图 + ^! D! k0 L0 W8 U% K6 P: B
PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件
' E# \& K3 r+ h& h" |# lPlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 6 j' A8 R; A. g+ ~3 |: \3 [! w2 b: P
PlayMetaFile 在指定的设备场景中回放一个图元文件 ! y- e; d/ z0 ?
PlayMetaFileRecord 回放来自图元文件的单条记录 6 R, {4 ~0 q! n
PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
% {9 B- k. ~  i) r  xPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
: M! X4 S' O% d. l7 {; I2 Z* wPolygon 描绘一个多边形
# y, n& Q$ S. W7 i5 [8 \' cPolyline 用当前画笔描绘一系列线段
6 T3 @7 l$ d7 t$ H, m1 i; R5 @$ dPolyPolygon 用当前选定画笔描绘两个或多个多边形 * M& `( N) k+ m' o0 E6 v/ V
PolyPolyline 用当前选定画笔描绘两个或多个多边形
  u' k1 ~  x+ I" T! E$ WRectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充
$ [- q6 p; a( H- |  q- ^RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充 ( m# _6 O' o9 T
SelectClipPath 将设备场景当前的路径合并到剪切区域里 6 ]4 E# e) L; W
SelectObject 为当前设备场景选择图形对象
) c, }9 w6 K0 V! |+ W- E1 b     WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);8 a0 M1 b& \, l( t2 H2 \
SetArcDirection 设置圆弧的描绘方向 7 q6 L! j. T4 }* Z) i
SetBkColor 为指定的设备场景设置背景颜色 ( i$ ?5 {* m  l$ W3 {" n, o
SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式 2 r$ u) f3 n( w8 B* S6 R  X7 \8 F3 W" W! b
SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
6 J: l! S6 s# Q. e3 {SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
5 y+ X9 W* W& v9 Z2 N- ?SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件
) J/ [! b; P, s  u$ t7 y" [SetMiterLimit 设置设备场景当前的斜率限制
; c" r0 S) v" A; fSetPixel 在指定的设备场景中设置一个像素的RGB值 * z; V1 _3 y  ?1 k0 p
SetPixelV 在指定的设备场景中设置一个像素的RGB值 , j- U7 s4 {. r& o  f
SetPolyFillMode 设置多边形的填充模式
( [2 B9 P$ H2 |6 GSetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致
: F6 M; y- p6 I$ mSetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 ' v9 z% n) s3 {. x
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域 4 ^9 O  D2 t/ L* n" \6 ^% J; _" z* `
StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭 . _# o  z2 @! d( F/ [5 e% S: W
UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数 # M' ^- {  D: L" F: `3 j. v: ?
WidenPath 根据选定画笔的宽度,重新定义当前选定的路径
+ r3 b. h. \- b0 v6 c6 H9. API之设备场景函数
* a* Y/ K( j% w+ y# SCombineRgn 将两个区域组合为一个新区域 / C7 A8 i9 M$ K* L) p3 T! k
CombineTransform 驱动世界转换。它相当于依顺序进行两次转换 $ h/ p" Y  G; ]- f( j8 N! e
CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景 6 n1 P3 G3 r$ E9 t0 U: H
CreateDC 为专门设备创建设备场景 ' i: N  V) u) ^# G7 F
CreateEllipticRgn 创建一个椭圆
2 o9 X- J. B4 {7 ^CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域 ' R5 F4 l# w* y+ i# f( ~
CreateIC 为专用设备创建一个信息场景
  W" @3 C8 z* L  U/ V. RCreatePolygonRgn 创建一个由一系列点围成的区域 : m& ?8 M7 k$ ^, `( r
CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的
& w- R6 `' a9 J+ @( d8 eCreateRectRgn 创建一个矩形区域
( f7 T  M8 M) z* g: R( R9 ~/ ICreateRectRgnIndirect 创建一个矩形区域
- T( f  @( a  F( x1 sCreateRoundRectRgn 创建一个圆角矩形 7 ?6 M  m8 S/ d! e* M
DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源 " B9 |) A$ `  h5 y3 i( Z' V
DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 . N  z" B) K$ D* j% }
EqualRgn 确定两个区域是否相等
' o/ a, n8 d' L3 e7 f8 \; iExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图 ; [  x0 `  W1 s8 x
ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域 $ Q: q) h8 O1 S3 [
ExtCreateRegion 根据世界转换修改区域 5 ?- h7 Y. H& a% V# j
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
3 Y( g1 g* i; J& \. _$ [  N: r% dFillRgn 用指定刷子填充指定区域
- P0 N  M$ B$ S3 hFrameRgn 用指定刷子围绕指定区域画一个外框
# q( |% ^* i3 [! O0 uGetBoundsRect 获取指定设备场景的边界矩形
. z5 \+ c  G9 LGetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 & l: e. K1 v- J7 H/ U
GetClipRgn 获取设备场景当前剪裁区
$ i4 Z9 ^# l5 H5 PGetDC 获取指定窗口的设备场景 . ]' H+ \4 F2 b1 e; E0 K$ f. z
GetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项
4 e! T+ _2 }6 A( v, U- \) O* vGetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示) ' z* v& v1 e; {# c) @+ L" X7 {4 ^  }, G
GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息
# f  H0 Q% t- q! I8 s7 rGetGraphicsMode 确定是否允许增强图形模式(世界转换)
) ?" n, |9 A7 D. U0 VGetMapMode 为特定设备场景调入映象模式
! d* S, C1 @: f8 W6 oGetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
7 ?- B- J/ t9 \8 ]' n9 pGetRgnBox 获取完全包含指定区域的最小矩形 . n; m8 O. S' ~
GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新 0 L; Q9 Y' H) R  {. S; ]1 z
GetViewportExtEx 获取设备场景视口(viewport)范围 ' S  U. ?. b0 f
GetViewportOrgEx 获取设备场景视口起点   O% |! `7 ~- i, |9 a' B" v! F( J
GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景 ! T" s5 Q/ d' X: E# f0 N
GetWindowExtEx 获取指定设备场景的窗口范围
- |9 {6 l' ^% ]1 X+ V+ K  IGetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 7 V7 L$ Z' P4 G. K. q. u. @
GetWindowRgn 获取窗口区域
9 o/ R6 ?8 C7 ?1 V' X5 K0 ]GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换
* Y3 C# K1 B8 A; R4 K# qIntersectClipRect 为指定设备定义一个新的剪裁区
% O. i4 |% ~9 B6 Z* J- O7 f+ JInvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画 - m! P  w6 Z0 _: w
InvertRgn 通过颠倒每个像素值反转设备场景指定区域 / p- K% y: A3 {% U0 Y# D
LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标 1 ?. _3 @6 P$ B7 m# ^5 u
ModifyWorldTransform 根据指定的模式修改世界转换
3 A! p- `9 R" P4 m4 Y3 EOffsetClipRgn 按指定量平移设备场景剪裁区
4 g3 I5 ?1 j3 U, S7 b2 d3 cOffsetRgn 按指定偏移量平移指定区域
- h7 o& g  n' t+ }OffsetViewportOrgEx 平移设备场景视口区域 2 X" {, N- W* O0 w
OffsetWindowOrgEx 平移指定设备场景窗口起点 ' [% Y' g' r2 y2 ?/ }. L
PaintRgn 用当前刷子背景色填充指定区域
3 Q1 t8 [& i2 D- p. O5 a& W* \. n# OPtInRegion 确定点是否在指定区域内
" @; X" C5 q  A! x6 V4 EPtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)
' T8 q( h: T$ T7 s) iRectInRegion 确定矩形是否有部分在指定区域内 $ Y% `* H* ~0 E
RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内)
7 O- q& ?3 b3 d# b% s0 t' U! \& ~. \/ wReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景 1 T( {! {7 r; T# M8 X
RestoreDC 从设备场景堆栈恢复一个原先保存的设备场景 - l! ~+ q/ ]$ U( a/ D# O7 F
SaveDC 将指定设备场景状态保存到Windows设备场景堆栈
* Q" o' Z) X$ O1 VScaleViewportExtEx 缩放设备场景视口的范围
( I: Z4 D" H2 F2 VScaleWindowExtEx 缩放指定设备场景窗口范围
" R. |' y& [( N5 c# CScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形 : p7 K+ Y, [5 h+ [( r# g
SelectClipRgn 为指定设备场景选择新的剪裁区
# A: k' E) x4 Z- WSetBoundsRect 设置指定设备场景的边界矩形 1 b8 m- L$ L1 T0 T* n. J
SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换) 9 Y% E/ q% l. C+ ]5 ]$ G8 ~
SetMapMode 设置指定设备场景的映射模式
  ^0 I; y! h7 W6 ]SetRectRgn 设置区域为指定的矩形 % T: Q. D, B, B6 K# D7 T
SetViewportExtEx 设置设备场景视口范围 6 C/ s+ H8 H" }
SetViewportOrgEx 设置设备场景视口起点 ; u0 D8 O* }  Z+ y( e
SetWindowExtEx 设置指定设备场景窗口范围
" q# G+ W' v0 n. k8 F) DSetWindowOrgEx 设置指定设备场景窗口起点 / x3 E5 F2 T' @% d0 z: s
SetWindowRgn 设置窗口区域 " Q  F* c, L4 a$ o
SetWorldTransform 设置世界转换
7 O: ^& ~( M8 \0 x9 eValidateRgn 激活窗口中指定区域,把它从刷新区移走   V. P. w9 i8 ^0 M- s  ~/ G
WindowFromDC 取回与某一设备场景相关的窗口的句柄 ) L  u- y9 n! e. B
10. API之硬件与系统函数 6 O5 I3 _& K! @4 Q" Z# ]. a1 ~
ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 / w# h9 Z- g( z5 `  d2 m' s
Beep 用于生成简单的声音 2 g# p& ^# G% w$ _8 j3 h
CharToOem 将一个字串从ANSI字符集转换到OEM字符集
8 f5 s0 O1 S( f, _' r2 bClipCursor 将指针限制到指定区域 % l  W% c9 l- w7 _
ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
7 Q: p( s0 b6 N  V8 V6 m2 E3 |CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符
  @( v1 |& X- |DestroyCaret 清除(破坏)一个插入符
7 Q6 B" l' k7 K& T# G% bEnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息   h' ~# O6 W4 D
EnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
/ }* J5 Q1 l$ \2 b' g( q; oEnumSystemCodePages 枚举系统中已安装或支持的代码页 ! P' S& g9 e3 Y0 x
EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置 ) W+ S' D) [! h
EnumTimeFormats 枚举一个指定的地方适用的时间格式
& ^1 A2 Y" ^6 l+ U0 W# sExitWindowsEx 退出windows,并用特定的选项重新启动
4 C9 Y; p0 {" R" Y/ ]* j( ~     WINUSERAPI BOOL WINAPI ExitWindowsEx(; C/ x2 w2 i; A' B6 v0 U+ q
UINT uFlags,       //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG
. A" F# J8 t& @0 Z  k     DWORD dwReserved); //0& H2 s: z/ m% }5 s. o
ExpandEnvironmentStrings 扩充环境字串
$ f. V- K5 A; Z% V& K1 Q" b% ^FreeEnvironmentStrings 翻译指定的环境字串块 . V" H/ f& M; H( i% X
GetACP 判断目前正在生效的ANSI代码页
; u7 @) Q$ {, s/ z7 @9 zGetAsyncKeyState 判断函数调用时指定虚拟键的状态
" p, [# G5 B& S/ |GetCaretBlinkTime 判断插入符光标的闪烁频率 ! _9 W% E5 ?& _# T3 z8 b4 J
GetCaretPos 判断插入符的当前位置   j  P1 @# `* e7 z3 m' n8 l
GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域 / P6 z# L2 |- m, @8 @+ k9 [" y
GetCommandLine 获得指向当前命令行缓冲区的一个指针 / _2 b8 k. T6 T+ H0 W
GetComputerName 取得这台计算机的名称
/ S: @; {2 C+ z8 y" Q8 f8 o8 z- C1 dGetCPInfo 取得与指定代码页有关的信息 . g. d' f- V+ p3 K0 K
GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字 , K* Z) x, k: }! N# x" ?
GetCursor 获取目前选择的鼠标指针的句柄
/ a0 R3 b2 U) i$ G+ N- k7 SGetCursorPos 获取鼠标指针的当前位置
0 S) I! Y6 L! n8 VGetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化 ; i, k. q8 j5 h" @* `8 x, X
GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 % U2 S6 ^$ H) [4 o8 J" `4 n
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄 " U* t; D' l& b* [, K2 Q
GetEnvironmentVariable 取得一个环境变量的值
! L# P3 {3 I7 A: W- w( p& rGetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件
* @  o9 D$ i( r' UGetKBCodePage 由GetOEMCP取代,两者功能完全相同
/ G4 T0 ~9 X5 y* d) N/ OGetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
+ ^+ x. ?8 E! d5 Q; A2 ]GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表 # p* z7 T& \( V. ^' |( |
GetKeyboardLayoutName 取得当前活动键盘布局的名称 5 K* w; K! I$ H5 [2 w8 U
GetKeyboardState 取得键盘上每个虚拟键当前的状态
& |8 v& E3 Q( L. FGetKeyboardType 了解与正在使用的键盘有关的信息
/ G; o# u; H" `GetKeyNameText 在给出扫描码的前提下,判断键名 % r( O, e# G  E! F/ i
GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态
/ {+ v7 {( J; o* F* h% y+ f8 zGetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息 4 a7 p3 q6 M- }- f; o! H: h+ ^
GetLocaleInfo 取得与指定"地方"有关的信息
! I3 F1 g4 u' jGetLocalTime 取得本地日期和时间 : W) w- ~4 c9 B8 m
GetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字
9 C  }- h4 g  z1 X/ g% xGetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页 4 S4 o3 {1 a: m% K2 u, u
GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
" f* H9 o5 X7 pGetSysColor 判断指定windows显示对象的颜色 ; w4 k1 X$ G5 G3 ?- S8 R
GetSystemDefaultLangID 取得系统的默认语言ID
( k7 }' P1 W! S* {1 N" O7 G5 BGetSystemDefaultLCID 取得当前的默认系统"地方" & s3 R6 ?4 q( U
GetSystemInfo 取得与底层硬件平台有关的信息
* Q% Q, g- r+ G; NGetSystemMetrics 返回与windows环境有关的信息
0 E  a$ E4 }% q8 `( O1 t% xGetSystemPowerStatus 获得与当前系统电源状态有关的信息
; e3 ~4 I% |( o4 yGetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式 . w' A7 r# K" V1 B* G0 G! D/ F
GetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步
/ a& o7 j: f/ s$ [  VGetThreadLocale 取得当前线程的地方ID , L. e% |4 C+ h( K! u: [3 L
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒) % e- f$ B* [$ t/ D; c- Q
GetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间 & ~1 L1 z6 s. C4 e
GetTimeZoneInformation 取得与系统时区设置有关的信息
1 Y. n! I; G: U7 RGetUserDefaultLangID 为当前用户取得默认语言ID % ~5 M3 P! A4 w) v# P
GetUserDefaultLCID 取得当前用户的默认"地方"设置 8 d( s1 `$ F, t+ _' h3 ?
GetUserName 取得当前用户的名字
9 ~; {- b/ B  y  r: l, R9 Y+ \GetVersion 判断当前运行的Windows和DOS版本
* t) B/ J; `& D" S4 m# e) b7 D5 ZGetVersionEx 取得与平台和操作系统有关的版本信息
( T1 h) D* H: A" VHideCaret 在指定的窗口隐藏插入符(光标)
' f8 L, o$ G( R  D4 \9 j( vIsValidCodePage 判断一个代码页是否有效
% |4 y* m1 m/ B) j9 IIsValidLocale 判断地方标识符是否有效
) D5 V% y* S/ h$ @keybd_event 这个函数模拟了键盘行动 & K; S) w9 u) h3 N* q5 x9 g
LoadKeyboardLayout 载入一个键盘布局 ' }- I" m% ^& G! s6 h5 r
MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换
+ z" a+ J. W. p( H0 O* jMapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换
3 m3 x' ~4 j. ?; f7 i% Z2 v' VMessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的
/ I) L% A# |2 X3 e8 c% g; nmouse_event 模拟一次鼠标事件 7 \" ]- |9 H9 s: k% y
OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态 , [, k1 V8 W$ }& a; `
OemToChar 将OEM字符集的一个字串转换到ANSI字符集
; D, d7 i- H# S' O4 WSetCaretBlinkTime 指定插入符(光标)的闪烁频率
( z7 m% Y; A3 K; SSetCaretPos 指定插入符的位置 4 ^9 A" x6 m' h% T
SetComputerName 设置新的计算机名 5 A. J# u  o5 C4 @' G
SetCursor 将指定的鼠标指针设为当前指针
& F0 O7 K: ^' mSetCursorPos 设置指针的位置   o) {* D* {, a4 y2 w
SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 8 F" v6 u. h* a0 {- L3 d" d! e: X0 s
SetEnvironmentVariable 将一个环境变量设为指定的值 2 v, Y( @4 b3 b
SetKeyboardState 设置每个虚拟键当前在键盘上的状态 3 s$ |8 s/ }+ C0 Q+ a
SetLocaleInfo 改变用户"地方"设置信息
+ a4 g. g; E, H+ Z. ySetLocalTime 设置当前地方时间
! j. z* o' z* V6 [2 BSetSysColors 设置指定窗口显示对象的颜色
7 l+ f0 j1 l/ m4 q" Z' WSetSystemCursor 改变任何一个标准系统指针 + ~+ e- l" Y7 B4 `! o2 I3 E
SetSystemTime 设置当前系统时间
' a/ A) u% S/ E& WSetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 ! s& I. k$ S1 s
SetThreadLocale 为当前线程设置地方 $ Y8 B" k+ j8 i' u' E
SetTimeZoneInformation 设置系统时区信息 . @" ?3 H/ F9 D( i* A
ShowCaret 在指定的窗口里显示插入符(光标)
$ n9 l7 s0 P; g/ F; `( d, ZShowCursor 控制鼠标指针的可视性
% Q5 g6 S" J0 h7 bSwapMouseButton 决定是否互换鼠标左右键的功能 0 o" d7 |. D$ W7 i0 \$ y
SystemParametersInfo 获取和设置数量众多的windows系统参数
4 f5 m- s3 g- v$ U; LSystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间 9 Z  C. f  U8 t3 D
ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符 8 Y! V2 G$ \8 n6 b# a8 s$ c. R
ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
4 d+ A2 l/ _8 L% y0 B" }UnloadKeyboardLayout 卸载指定的键盘布局
4 s/ t# O- s" W1 b- ^VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态 . R7 B& [5 c. B$ ?& r" ~" W
11. API之进程和线程函数
% O. Y+ M1 d8 M  nCancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作 3 u( {" ]$ G3 |$ i
CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 % Z* o. d  E8 m2 G- F
ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接
, H- l  C. j* M) `! V: v  [CreateEvent 创建一个事件对象   |1 m$ h* @+ J! s, Y) L
CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)
. L. h1 T0 T" ]# ~: E1 e9 L; JCreateMutex 创建一个互斥体(MUTEX) 2 |  d" W6 `! a/ _
CreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用
+ M/ x( O4 B) E8 xCreatePipe 创建一个匿名管道 % M9 d/ c4 T4 a8 j2 I3 f6 H
CreateProcess 创建一个新进程(比如执行一个程序)
. w3 A' @) [# O" DCreateSemaphore 创建一个新的信号机
8 C: l8 B, N& q& f1 }0 e' eCreateWaitableTimer 创建一个可等待的计时器对象 5 G& ^# R9 A& L. `" y
DisconnectNamedPipe 断开一个客户与一个命名管道的连接 / A3 X) f. V3 y3 Q9 \1 b
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄 ( `" q, \9 N" ~  m; V; n
ExitProcess 中止一个进程
. B" C" @3 V, T6 U6 c, |1 e- wFindCloseChangeNotification 关闭一个改动通知对象 - L! o2 z/ w: k# n$ C
FindExecutable 查找与一个指定文件关联在一起的程序的文件名 ) k* B+ v; S2 _2 @6 ^5 K. y
FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化 8 L2 b& l1 l! K' k
FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化
" T) e. W! V' TFreeLibrary 释放指定的动态链接库 . J4 m/ T4 A- ^2 j9 z: z- C  I  d
GetCurrentProcess 获取当前进程的一个伪句柄 0 h8 }: d1 W1 b4 q% j: |
GetCurrentProcessId 获取当前进程一个唯一的标识符 ( u+ O1 U  r, C6 m7 Q! t0 q4 U
GetCurrentThread 获取当前线程的一个伪句柄
5 f  l; x0 O4 _% D  iGetCurrentThreadId 获取当前线程一个唯一的线程标识符 $ V, _; j& ^" b  D2 v9 i% i
GetExitCodeProces 获取一个已中断进程的退出代码
2 O8 ^* Z) x9 N- B4 S0 ~GetExitCodeThread 获取一个已中止线程的退出代码
1 ^8 R( ?# Y0 m1 ~, U8 }GetHandleInformation 获取与一个系统对象句柄有关的信息 ) P+ N9 w' w4 [1 m" v& I
GetMailslotInfo 获取与一个邮路有关的信息 0 R4 t! @) U9 ^6 ?, U' [
GetModuleFileName 获取一个已装载模板的完整路径名称 % L+ q9 S+ d2 {
GetModuleHandle 获取一个应用程序或动态链接库的模块句柄
* g5 W6 ]: C4 J! a* b     GetModuleHandleA(LPCSTR lpModuleName);9 p# B  `% C  f6 `
GetPriorityClass 获取特定进程的优先级别 " E8 J; x1 e* M2 g0 ^
GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况
4 L: @  Y' Y1 @0 t3 X* UGetProcessTimes 获取与一个进程的经过时间有关的信息
% r  q  F; W# K$ nGetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存 / W; L2 ~4 D: A' l8 M: O4 e
GetSartupInfo 获取一个进程的启动信息 ' ^3 n) c+ K. r8 t  M
GetThreadPriority 获取特定线程的优先级别
2 l# |% n5 w  A+ m0 v8 ^) x7 aGetTheardTimes 获取与一个线程的经过时间有关的信息 ; W( g5 h' _: d, k. g: e
GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符 $ p/ K# A' k# u+ P5 u% c* J  N
LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
6 ?; k+ S3 A! V. I( O. CLoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间 + k2 A4 n* F* N( M6 r8 \: b
LoadModule 载入一个Windows应用程序,并在指定的环境中运行 ( ~6 x7 R/ u; P$ j$ r8 }3 Y
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回 # n" ~3 E/ O" N0 |% {
SetPriorityClass 设置一个进程的优先级别
9 e# j9 W& J2 m7 I$ n8 k- x. i' N. j7 VSetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
6 [/ ^0 _7 `) A2 I; S" O3 B& Q3 U  ZSetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量
4 M. V( e  D" W, d* Y# gSetThreadPriority 设定线程的优先级别
, q* h: A  D- K: q' T5 n9 K; m. YShellExecute 查找与指定文件关联在一起的程序的文件名 3 i. R0 W8 x7 Y9 S9 h
TerminateProcess 结束一个进程
) f$ Q) {, |$ iWinExec 运行指定的程序
$ [1 U" z) c1 i0 z& G12. API之控件与消息函数 % \  D4 _) a' q- }
AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小
3 T: D) }5 i  P# w) t" @AnyPopup 判断屏幕上是否存在任何弹出式窗口 ) E! B: l0 R! J
ArrangeIconicWindows 排列一个父窗口的最小化子窗口
7 i% E, b% Y6 h# M6 p: @AttachThreadInput 连接线程输入函数 ' l: N) `: F* H% R1 @" |
BeginDeferWindowPos 启动构建一系列新窗口位置的过程 % u2 G! x! b& \; `5 I; a( z% u- n
BringWindowToTop 将指定的窗口带至窗口列表顶部
% j' \  ^5 Y- Z6 P, _* S5 s% xCascadeWindows 以层叠方式排列窗口
" R6 b1 Z3 j% g+ WChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄
, |( }, h* I# P% xClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标
- w# T% w9 j- d6 `- l# |: |) }CloseWindow 最小化指定的窗口
% ^' |8 M. Y# BCopyRect 矩形内容复制 ( v+ j" c" o. A* }  [% I4 s0 W
DeferWindowPos 该函数为特定的窗口指定一个新窗口位置
" Y' X9 d: p. K8 k8 I, j( K2 XDestroyWindow 清除指定的窗口以及它的所有子窗口
9 ^7 S5 C2 t5 Y' _, ~* W& Z/ _DrawAnimatedRects 描绘一系列动态矩形 6 G" o/ v5 f' d$ L8 l) D9 [
EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入 ) t3 c9 Y& V6 F( w: W
EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态 - G6 J- t0 Y# F5 @
EnumChildWindows 为指定的父窗口枚举子窗口
% `" ]1 K& [! IEnumThreadWindows 枚举与指定任务相关的窗口
, z5 s6 n9 \3 T% ZEnumWindows 枚举窗口列表中的所有父窗口
5 R8 C: d  \9 i/ E6 J# iEqualRect 判断两个矩形结构是否相同 9 |  y5 U/ g. i/ y7 P. u! y6 I$ h
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口
. `& }- @+ d/ W4 Q# Q9 ~$ g; }FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
( i6 p" l& d& [8 XFlashWindow 闪烁显示指定窗口
( r" [! h" V- i% P& j5 @GetActiveWindow 获得活动窗口的句柄
+ P+ [, j4 {3 K; S9 o8 L1 g. aGetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
' W; [! I+ t1 e* ~1 ]GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息 $ X3 s5 V5 P5 L2 G& e9 ^
GetClassLong 取得窗口类的一个Long变量条目
# u# x( h( t' C' fGetClassName 为指定的窗口取得类名   T& p5 K. A7 E+ A, c+ e
GetClassWord 为窗口类取得一个整数变量
' V! m( x% p$ w) X7 TGetClientRect 返回指定窗口客户区矩形的大小
; p2 E, E% Y8 H, E' XGetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
7 m& |0 z' \5 ^( S" q" IGetFocus 获得拥有输入焦点的窗口的句柄
1 x" _8 }+ ^8 ]8 v8 ZGetForegroundWindow 获得前台窗口的句柄
- `' {; A! U" ]$ q4 [5 `# D; Q8 oGetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄
# \& _- A  n! h2 f+ s& ZGetParent 判断指定窗口的父窗口
1 o3 x1 ]) @6 u; d9 ]GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 : R, C3 J$ x4 p/ k
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分
7 M& K% n# T3 ^+ J% q9 bGetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系
- |  z9 J: C& T* p# ~+ VGetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
! ^) ^4 p: [& Y* E4 aGetWindowLong 从指定窗口的结构中取得信息
' b' M  F- b, t) W5 n4 p$ w+ uGetWindowPlacement 获得指定窗口的状态及位置信息
3 C# U2 B* @2 A5 Q. I6 WGetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 6 @8 {8 T$ e$ i; P7 Z: L) ~& C0 E
GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容
8 Q4 {5 Y  s6 h# d2 `GetWindowTextLength 调查窗口标题文字或控件内容的长短
& K* z3 a8 l7 g* iGetWindowWord 获得指定窗口结构的信息 . l2 J* ~. b, y' S
InflateRect 增大或减小一个矩形的大小 , `7 o) ?1 i6 j% ~  R
IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集
$ }1 s) p5 \9 iInvalidateRect 屏蔽一个窗口客户区的全部或部分区域
! h( ], ?, `% t1 n6 l/ }+ k) wIsChild 判断一个窗口是否为另一窗口的子或隶属窗口
$ v& b5 v4 w8 bIsIconic 判断窗口是否已最小化   W& z$ c8 b, ]* ]( f% Z8 C& v
IsRectEmpty 判断一个矩形是否为空
" u" }" k0 W4 V3 HIsWindow 判断一个窗口句柄是否有效
  w$ ?/ f0 \6 @( R" }/ fIsWindowEnabled 判断窗口是否处于活动状态 2 f# V7 @8 V& K! c+ e8 Y
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 . q3 z/ I* m2 G( `
IsWindowVisible 判断窗口是否可见   R+ N  h) ?+ P1 ^, P
IsZoomed 判断窗口是否最大化
  I( ~1 ?1 l5 B  K$ K' \! wLockWindowUpdate 锁定指定窗口,禁止它更新
/ a: y; N6 k0 N# l- B% n3 ZMapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统
" I, N- j7 B# u' U3 S8 r* ]) nMoveWindow 改变指定窗口的位置和大小
& l8 k$ |* g1 @0 x# @& WOffsetRect 通过应用一个指定的偏移,从而让矩形移动起来 5 x1 E$ q0 M' _
OpenIcon 恢复一个最小化的程序,并将其激活 . Q5 O+ E2 N  A) j  h- y' H0 R# e
PtInRect 判断指定的点是否位于矩形内部 8 r# n9 O; I, k/ h1 A! {2 H% r
RedrawWindow 重画全部或部分窗口
  B' A$ u+ @: w# Q: [: ]1 q+ @ReleaseCapture 为当前的应用程序释放鼠标捕获 5 L% m7 Q/ ~9 S, K# _( R
ScreenToClient 判断屏幕上一个指定点的客户区坐标 + C8 t5 h: ?* Q, ]4 I
ScrollWindow 滚动窗口客户区的全部或一部分 . V) h% p) D* a) u1 s4 K/ m
ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分
# E: l6 x- |- V7 z2 k. F: PSetActiveWindow 激活指定的窗口
8 x9 ], t' L  ^! R+ D  DSetCapture 将鼠标捕获设置到指定的窗口 / A; k1 W; _8 z4 _
SetClassLong 为窗口类设置一个Long变量条目
* q! P1 U( M) A- K; [! A) OSetClassWord 为窗口类设置一个条目
) q. Z4 h  r$ E4 P2 ^& GSetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口
; l2 ~& v6 v8 \5 f0 sSetForegroundWindow 将窗口设为系统的前台窗口
+ Z% l- R$ U5 L6 SSetParent 指定一个窗口的新父 4 A- g$ ^! g" _# |! j3 E! N
SetRect 设置指定矩形的内容 : F7 Y# n; d3 n" j, r& h$ z
SetRectEmpty 将矩形设为一个空矩形
; C" u/ q$ u& Y4 Z9 n8 ^/ o' P6 bSetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
. _* l5 ~7 x0 m# bSetWindowLong 在窗口结构中为指定的窗口设置信息 1 _0 F7 l" _3 V. |% A* a1 g
SetWindowPlacement 设置窗口状态和位置信息 ) @3 ?  V  u# g0 ?7 P; m; o
SetWindowPos 为窗口指定一个新位置和状态 5 X) K4 ]( N- M9 R1 J
SetWindowText 设置窗口的标题文字或控件的内容
- |# [% I, U2 z( |7 CSetWindowWord 在窗口结构中为指定的窗口设置信息 1 d3 @' u* A. S. r: a' j
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口 ( p' O! F: d6 D$ a$ v" Y
ShowWindow 控制窗口的可见性
& D% X3 L/ `$ P+ d# I8 N. ]7 k3 YShowWindowAsync 与ShowWindow相似 $ ?3 U+ t5 k8 d! ^8 `
SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果 ; X, y5 l$ r6 D
TileWindows 以平铺顺序排列窗口
! u9 X. R8 Z3 O- ^6 P" V4 jUnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果 . a, A0 v" m0 d2 q& z+ }) C
UpdateWindow 强制立即更新窗口 $ L$ E, o# S1 X9 k6 t0 D8 W
ValidateRect 校验窗口的全部或部分客户区 8 o# M6 `/ Y% r# _0 O3 z4 ?
WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口$ C" X; g5 ?) E) a. H9 J
高级音频函数—参看《VC++ 编程指南.chm》11.6
, j+ D3 `4 ?% O% `/ _- g8 e     Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。
( Q1 ]- D5 B% N7 f7 J0 K3 ?     BOOL MessageBeep(UINT uType);
( M- S" t- s( f* [" ^该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。
/ E! ~- e* H1 z+ Y! O参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。
5 q1 m. l4 f0 g* j: x, Z
级别
8 T4 x2 x# e8 z) l, @
描述 0 |0 t& e/ S$ l+ W2 x( g8 s! N7 p
-1   S6 S2 b& @- P( T1 f% V9 X
从机器的扬声器中发出蜂鸣声。 7 }% a( k* p' d5 L( ]7 ]5 H0 X8 N5 y) n
MB_ICONASTERISK
, F0 ~, _1 z; j. P
播放由SystemAsterisk定义的声音。 ) V: m# j/ R. t( n4 y
MB_ICONEXCLAMATION
* q# M9 W9 W# e3 q/ A; r1 Z: }  q& @
播放由SystemExclamation定义的声音。
0 M1 j5 q1 Z5 O$ }
MB_ICONHAND % H, B1 E! p; [
播放由SystemHand定义的声音。
7 s/ x7 m9 z( L- q7 z, s
MB_ICONQUESTION
. t; E5 o+ g: a% c! x5 Z
播放由SystemQuestion定义的声音。 4 ~* [& d& Q7 M7 m, V
MB_OK
# ]% w2 f0 M* a0 a
播放由SystemDefault定义的声音 $ D7 @  V1 f- c6 J- @/ z
BOOL PlaySound(LPCSTR pszSound,     HMODULE hmod,      DWORD fdwSound);
- ^+ ?+ o- S! R; v1 Q参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。0 P" o; R) o3 h* }
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。/ d* W0 z$ C: J$ g% q/ T' o( a
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。
3 D3 y2 s# ?3 j, ^! G' ?4 E- S% N
标志
  m: W0 }6 m2 I$ j6 Y( S' D. y: M$ T
含义 # d4 r% q; O( b) Q8 H, R- r4 ^* O
SND_APPLICATION
" P; `  o  }. N5 e6 U8 D' @
用应用程序指定的关联来播放声音。 ) l& o) y" g- Z0 M% S7 ]
SND_ALIAS 5 G5 y+ ]9 Y" b; I. X2 {
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。
% `. S, O  O0 G( ]/ @) O
SND_ALIAS_ID
3 L1 b( a7 H  c% ]& C4 G
pszSound参数指定了预定义的声音标识符。 ' k" C: e* s9 P/ `& i5 k
SND_ASYNC
& F/ r  ~/ T7 |$ g( F' d0 G
用异步方式播放声音,PlaySound函数在开始播放后立即返回。
9 a6 R0 `% o) A3 C5 h: A
SND_FILENAME
: b/ E8 \1 n4 I/ x
pszSound参数指定了WAVE文件名。 " O6 F) f7 j; E
SND_LOOP
5 z% K# _# S. s* |
重复播放声音,必须与SND_ASYNC标志一块使用。 5 Z/ ~1 r0 C4 P9 c! v  U
SND_MEMORY & e1 z0 P2 j# z6 B" m0 b
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。
: M) X* }0 ^& P  M& P1 m! s
SND_NODEFAULT 8 c- {- T: f) w4 K3 V/ R) N: N
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。 4 B8 e9 I0 \" l7 ^1 j- ~
SND_NOSTOP   j9 y, J  i* }4 `% l
PlaySound不打断原来的声音播出并立即返回FALSE。 ) `- S( t/ V( a* H1 y$ \. j6 {3 V
SND_NOWAIT ! u* t9 y/ x3 {% c/ c
如果驱动程序正忙则函数就不播放声音并立即返回。
( O$ E) v1 L' c/ w: L
SND_PURGE
1 b" N& g% d. ]$ q2 q+ ^
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。
) b5 g& v' S: Z6 s
SND_RESOURCE
/ D7 z7 W" k( `+ L& F( n
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。 , I9 J% f( L) }4 ~9 q$ P
SND_SYNC # v( {; A: D. h8 A
同步播放声音,在播放完后PlaySound函数才返回。 ) }- W4 a& |3 N) k/ K: i2 h
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);
: v; `! w: [) T$ Y9 i# z3 d; f函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。, ^9 u8 y8 P6 Z/ a
MCI播放; i- ]9 e/ _; n% z! w! X6 d
所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
! g* V$ X! }# ?9 v% _( }8 Z( rMCIERROR mciSendString(
  U7 G- j. w8 W* OLPCTSTR lpszCommand, //MCI命令字符串
9 R. Z+ G! _9 c" r6 oLPTSTR lpszReturnString, //存放反馈信息的缓冲区$ P4 Z) ~  W; P# V4 a* d
UINT cchReturn, //缓冲区的长度" |& B7 \& F; n
HANDLE hwndCallback //回调窗口的句柄,一般为NULL; `, p8 u2 l" V+ @5 N
); //若成功则返回0,否则返回错误码。
! O. e; V. v. k该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:
& b1 M3 P' P; m. k4 c/ RBOOL mciGetErrorString(& f" H7 C. `8 `
DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码$ }2 N/ s5 p) e" n* ]! K
LPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区# H* N6 f: c- |3 J; `7 W2 S
UINT cchErrorText //缓冲区的长度. ]" c8 y+ a  v+ u  g. `" h
);
2 T8 u, N3 @9 N( Q: Y8 j8 J$ j4 O
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-10-2 05:28 , Processed in 0.022842 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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