|
|
原文:http://www.cnblogs.com/cltsq/articles/api.html
& x0 E" }& S- T( a) t1. API之网络函数 r! { t) M$ r
WNetAddConnection 创建同一个网络资源的永久性连接 0 v% n. P$ z! P D& W: n
WNetAddConnection2 创建同一个网络资源的连接
f7 e7 A$ @; }" ?. AWNetAddConnection3 创建同一个网络资源的连接 & z3 O% b3 Y$ A i2 O# m3 S/ c
WNetCancelConnection 结束一个网络连接
' R- D; J- p! V/ J* ~WNetCancelConnection2 结束一个网络连接
: c, E3 `2 F! RWNetCloseEnum 结束一次枚举操作 7 F, U& z: V; V# p+ D$ S* F5 [
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 + g0 o* Y( _/ L& n( T& b$ _
WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接 % M6 s, {6 p# l, t& a
WNetEnumResource 枚举网络资源
" V1 x$ p1 t; k: P. dWNetGetConnection 获取本地或已连接的一个资源的网络名称
' Q8 S' k) h. RWNetGetLastError 获取网络错误的扩展错误信息 0 C' F, v3 i! t0 t; ~( V
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 + s9 I. M7 M% E8 k2 B
WNetGetUser 获取一个网络资源用以连接的名字
$ g/ W9 X; \$ F. aWNetOpenEnum 启动对网络资源进行枚举的过程
/ H$ f) w; R6 t4 \( X, _' s2. API之消息函数 ; I5 A: {" s# d
BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
9 s, Y/ |5 S* k/ @GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 ! R- D9 {1 h2 l I9 }" T
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 Z% P! z5 N" B5 Z8 }* r( r
PostMessage 将一条消息投递到指定窗口的消息队列
- ~% F: V5 L" g B3 Q& m# W) `PostThreadMessage 将一条消息投递给应用程序 ' b1 }6 ^, ~. _7 n7 I
RegisterWindowMessage 获取分配给一个字串标识符的消息编号 . U$ l1 ?3 j+ A& n
ReplyMessage 答复一个消息 2 h( M% @/ j4 @0 d5 @% q
SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 3 |& a' t4 {8 a: H
SendMessageCallback 将一条消息发给窗口 2 p3 _! C# y+ K8 O
SendMessageTimeout 向窗口发送一条消息 A9 {* S6 D$ ]' X" H" ~
SendNotifyMessage 向窗口发送一条消息 % j& l' x @, ?9 k5 E
3. API之文件处理函数
& G v0 ~' E/ U7 a, KCloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 ) I K+ ^, T9 ]+ Y
CompareFileTime 对比两个文件的时间
! I7 ~# U* }) J( l- F" ?CopyFile 复制文件
+ e. S& N0 K& h6 \CreateDirectory 创建一个新目录
4 E8 V. `, b0 d3 G3 f# `: g% [CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台
7 n7 P) q5 W- M. b; A1 YCreateFileMapping 创建一个新的文件映射对象 " Z- ^1 m0 {( g! d
DeleteFile 删除指定文件
# b$ e9 M/ l% l/ XDeviceIoControl 对设备执行指定的操作 ( Z5 V, T8 y- i) q
DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值
; p, I. A/ ?+ l: wFileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
( |6 e3 P8 O& T5 mFileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
' j; b3 G: d, {, [3 ^( g4 Z( C# {FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构 ; I7 Z2 H/ [2 [5 D# k# T
FindClose 关闭由FindFirstFile函数创建的一个搜索句柄 , x% g& \' p2 W: Q' a3 h2 K
FindFirstFile 根据文件名查找文件
" Z& l y t; P* y2 O2 J# F+ L& LFindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 " z. Z$ E, y5 \( I8 @: j
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 ) W3 T5 H5 Y& y. S {
FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 ( I; `: [# d7 V' o0 ?9 [( L
GetBinaryType 判断文件是否可以执行
; J' @' U/ b$ Q; U3 N3 KGetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 5 e6 g6 e; s/ F1 P+ _9 _6 A
GetCurrentDirectory 在一个缓冲区中装载当前目录
2 E* h9 j2 G) y; x/ x' R8 m D6 NDWORD GetCurrentDirectory(
* |9 Z: z0 z [" u% w" I DWORD nBufferLength, //缓冲区大小0 A! q/ Z' z7 X: [8 t6 M
LPSTR lpBuffer //缓冲区的首地址
5 K* K& v4 M4 d) z- X8 P1 f );
& V' I, O1 F# NGetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 0 ?% x9 v- A. H
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息 * I& U d& X& e& D
GetDriveType 判断一个磁盘驱动器的类型 3 i f u; ~+ w* ]0 P" l
GetExpandedName 取得一个压缩文件的全名
: G$ b/ u# U- \4 D, _' rGetFileAttributes 判断指定文件的属性
9 @' r3 Z* l$ i# v4 }7 _7 |+ JGetFileInformationByHandle 这个函数提供了获取文件信息的一种机制
9 q+ t9 z p5 x+ ~- gGetFileSize 判断文件长度
9 S3 d* I& o4 l' I+ C! _- GGetFileTime 取得指定文件的时间信息 & w4 T3 q6 K/ M9 Z7 u$ `" v
GetFileType 在给出文件句柄的前提下,判断文件类型 ) t5 i S% t4 _9 A* M& i2 `$ }
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息 ) M$ P3 T0 {! _% f
GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区 2 p$ f8 j/ y0 U
GetFullPathName 获取指定文件的完整路径名 . V& q4 m/ o7 b- i1 c
GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母
; z( q! e! w4 X0 E# UGetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径
- q4 c Z1 q1 `6 JGetOverlappedResult 判断一个重叠操作当前的状态
9 T* |3 |0 [* j; M+ E2 t/ _* u+ dGetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值
* B% D u# L# wGetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 + i0 ?3 b" K$ l: ~. G1 c
GetPrivateProfileString 为初始化文件中指定的条目取得字串 * ?4 q C9 ~; B* k# i+ m
GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值 ; N) }. }4 t6 @1 D5 N
GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
j6 A' t }$ l- m9 xGetProfileString 为win.ini初始化文件中指定的条目取得字串 8 w- ~: ?5 j, c/ z' n8 b) Q- x
GetShortPathName 获取指定文件的短路径名 ( d+ j6 n$ y1 q6 G1 u
GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 8 P& {$ P6 {2 t% T
GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用
$ w1 c8 U7 ?- u$ u/ A# oGetTempPath 获取为临时文件指定的路径
1 V& Y; V4 r+ ^+ B+ @2 B' FGetVolumeInformation 获取与一个磁盘卷有关的信息
, O% v1 R5 _" ?8 eGetWindowsDirectory 获取Windows目录的完整路径名
6 r( V& y" {- a x jhread 参考lread ) h6 v" g5 N: C8 Q$ v) o
hwrite 参考lwrite函数
9 Y' c) i( a7 K G% M! p6 clclose 关闭指定的文件
, j) K1 }5 U$ c* _1 clcreat 创建一个文件
- z! u9 |' d7 M+ n$ a* ^1 Jllseek 设置文件中进行读写的当前位置 5 q2 i+ ~5 {# e
LockFile 锁定文件的某一部分,使其不与其他应用程序共享 * Z7 E3 ]/ [, ^7 ?
LockFileEx 与LockFile相似,只是它提供了更多的功能
! }( a, g* h! ]( B2 mlopen 以二进制模式打开指定的文件 1 y7 E# [; L5 `
lread 将文件中的数据读入内存缓冲区
# ]3 Q# i" i& K# o0 U' s+ K `lwrite 将数据从内存缓冲区写入一个文件 2 J/ C! K" x& J$ @% K2 x
LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
# J" E* H$ K2 X. \1 S' I B0 T9 ALZCopy 复制一个文件 & V& p: R$ Y. s( \. B P5 {
LZInit 这个函数用于初始化内部缓冲区 0 ^$ A0 Q7 |2 f
LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件 ( J0 X$ o3 J4 \+ h. q9 L
LZRead 将数据从文件读入内存缓冲区
) L6 U1 r/ d( P: W' ~! Q3 @; vLZSeek 设置一个文件中进行读写的当前位置
1 W1 e; c/ D- uMapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间
. M" J% [, Q9 bMoveFile 移动文件 , t" e' s" k k) v; F2 k
OpenFile 这个函数能执行大量不同的文件操作
, y" `1 t+ x6 q1 J1 v; I5 @3 E! KOpenFileMapping 打开一个现成的文件映射对象
: _2 P+ o4 |2 u2 ~QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
; H* q" Q/ f: j( rReadFile 从文件中读出数据 % |, I. m/ P8 u* x- n! W
ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
6 p; A# d% z% T3 k0 Y7 l) oRegCloseKey 关闭系统注册表中的一个项(或键) ! l. f4 B1 N# Y. k$ u
RegConnectRegistry 访问远程系统的部分注册表 + |" }" |& \) Z
RegCreateKey 在指定的项下创建或打开一个项 4 X5 ^( y0 A# y1 f1 H- _% ?' b
RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数
; b N$ T- l3 E% _5 v l; vRegDeleteKey 删除现有项下方一个指定的子项
4 M" @. V) ?- kRegDeleteValue 删除指定项下方的一个值 & _% ~+ {! R/ E, g8 S t- M
RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx : M$ D- C2 N6 H+ y0 }/ p
RegEnumKeyEx 枚举指定项下方的子项 $ @# s( k* K. T! y" ^/ u+ ]
RegEnumValue 枚举指定项的值 ( t/ W* M. W% f V% ]6 M( u; m
RegFlushKey 将对项和它的子项作出的改动实际写入磁盘
* i) k! U- ^! R. TRegGetKeySecurity 获取与一个注册表项有关的安全信息 . Z/ o& I8 b- o! _& y& D! r0 x
RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息
6 D% d# B) e) d& d eRegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制
9 j( _ h) T. |8 t7 J4 n+ z/ ZRegOpenKey 打开一个现有的注册表项
1 Z d; t* k2 p0 b! F3 `' H; h/ mRegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
. i4 _- p. I" ]! @) O/ A7 KRegQueryInfoKey 获取与一个项有关的信息 6 }# o" r! P# Q0 ?
RegQueryValue 取得指定项或子项的默认(未命名)值 ' m0 D; l& Y- A) H7 [. }1 n4 C
RegQueryValueEx 获取一个项的设置值
% y$ J, j6 \' g7 @RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
/ N4 \" k: n& s- D' hRegRestoreKey 从一个磁盘文件恢复注册表信息 $ F- L/ q/ a, e- H
RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件
, P/ A7 }$ A0 S k9 M2 u, FRegSetKeySecurity 设置指定项的安全特性
& q: _$ E! X- @RegSetValue 设置指定项或子项的默认值 0 u: x1 r6 f l; M
RegSetValueEx 设置指定项的值 + n; J0 {. \* ^$ z% W+ w) c
RegUnLoadKey 卸载指定的项以及它的所有子项
5 n* b% P; ]% q6 Z; S( j+ vRemoveDirectory 删除指定目录
* f% X K1 ?9 S( ySearchPath 查找指定文件
& \' L9 c& ]2 {SetCurrentDirectory 设置当前目录
( M) q: Y4 |& m6 T/ Q- ZSetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾 7 Z7 K! c8 _# D- T5 q, v+ R
SetFileAttributes 设置文件属性
) h1 {# x2 U8 I8 X- v1 ^" K PSetFilePointer 在一个文件中设置当前的读写位置
) }2 n& W( c* Z. E# e4 _9 ?SetFileTime 设置文件的创建、访问及上次修改时间
: a" O" M- @: I. S+ JSetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果 4 d. p; o+ x& v2 Y
SetVolumeLabel 设置一个磁盘的卷标(Label) 5 J n% T& G, I/ h s, J9 s
SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构
) z- V' U( y/ @3 SUnlockFile 解除对一个文件的锁定
2 I7 C. U; y2 i: o* U3 x; H. [2 R( yUnlockFileEx 解除对一个文件的锁定
! E( m& K( A4 p$ I( c# CUnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
6 [" e* o+ v2 s- O. _0 m# kVerFindFile 用这个函数决定一个文件应安装到哪里
C$ t+ x6 e; m( u, O! P) @5 zVerInstallFile 用这个函数安装一个文件
. `, O) S' a" h3 L9 c! K* xVerLanguageName 这个函数能根据16位语言代码获取一种语言的名称 w: _; U+ L1 y' M
VerQueryValue 这个函数用于从版本资源中获取信息
t+ j: ]. l; P: \# ^9 Z) A( O6 b' F2 WWriteFile 将数据写入一个文件
2 i5 i. t6 n; P8 N V% rWriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调
$ n. B' N4 ^6 m' S3 XWritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值
7 _* e/ z) H+ U: D+ y1 uWritePrivateProfileString 在初始化文件指定小节内设置一个字串
! {/ v5 K9 t5 \! V. ]+ p% k: RWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值 ) g1 C. h+ c6 ^ k0 r
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串
; P% R1 t* T4 t/ o& _' B) N4. API之打印函数 # b( h) `2 t- m) O/ f. H }
AbortDoc 取消一份文档的打印
! }7 k% u% M* ^/ D/ C# q i# KAbortPrinter 删除与一台打印机关联在一起的缓冲文件 3 j/ n5 ~% M) e9 L7 G, \
AddForm 为打印机的表单列表添加一个新表单
/ @' l7 e7 k1 O/ ^) NAddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号 , I* j% Q9 b B
AddMonitor 为系统添加一个打印机监视器
' L* e2 z+ M) }. w' O" ^3 WAddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口 8 A- L" ?+ J6 y: }( _0 A
AddPrinter 在系统中添加一台新打印机 , Z% `* Q6 H* u9 W. b/ Q* f- I. \
AddPrinterConnection 连接指定的打印机
; `* ]9 @- |7 o. y3 [+ {+ w+ O7 dAddPrinterDriver 为指定的系统添加一个打印驱动程序 + S9 g8 k& _( H0 W i0 `9 H
AddPrintProcessor 为指定的系统添加一个打印处理器
" X4 t2 S+ \ i1 g5 F! J0 P; JAddPrintProvidor 为系统添加一个打印供应商 ; d7 g$ l \. ~! ?9 @4 ^( s4 z; f
AdvancedDocumentProperties 启动打印机文档设置对话框 : B4 l1 q" s6 k/ B" B) e
ClosePrinter 关闭一个打开的打印机对象 % D$ t, q) s$ F" I0 `9 X" b
ConfigurePort 针对指定的端口,启动一个端口配置对话框 0 v9 a# m) n) s! l" V
ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接 % ^% U3 d& n9 M% S1 o6 o" l7 |
DeleteForm 从打印机可用表单列表中删除一个表单 G) T7 }! G& T! \
DeleteMonitor 删除指定的打印监视器
" D' q8 ?" h, R) q4 d8 c' l" ?DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口 % F! M. G( |7 E2 C& g
DeletePrinter 将指定的打印机标志为从系统中删除
9 [' k& _7 W/ N' H; v6 ZDeletePrinterConnection 删除与指定打印机的连接
1 K" s) `) N+ Y7 e% ^4 }& xDeletePrinterDriver 从系统删除一个打印机驱动程序 ; }# i$ F& }0 L
DeletePrintProcessor 从指定系统删除一个打印处理器
0 O6 k" |: d$ vDeletePrintProvidor 从系统中删除一个打印供应商
& {, g4 H2 R S2 WDeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息
6 z" J& ?( n1 qDocumentProperties 打印机配置控制函数
2 ~6 u B* I4 S3 u, tEndDocAPI 结束一个成功的打印作业 - X, G e% n% A9 E
EndDocPrinter 在后台打印程序的级别指定一个文档的结束 & H2 G5 V- P5 T5 X7 h: L: }
EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页 , C% Z: c* `' b* |2 I
EndPagePrinter 指定一个页在打印作业中的结尾 $ t% B8 F; P2 Y) i& Z7 E
EnumForms 枚举一台打印机可用的表单 4 R/ s0 ~ r6 s6 p5 A v* s: O
EnumJobs 枚举打印队列中的作业
$ x! y, @$ A9 Q& V& oEnumMonitors 枚举可用的打印监视器
5 a0 U) H) r% Q9 i2 k9 `# G, i2 \EnumPorts 枚举一个系统可用的端口 6 S5 r7 M+ G( s+ f8 f
EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序
. P; k' s1 f6 v) T, i G: a& fEnumPrinters 枚举系统中安装的打印机
E( P2 D2 L1 D! v" eEnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型 ! [ b' t4 D, M* }
EnumPrintProcessors 枚举系统中可用的打印处理器
+ Y2 N- T l3 ?Escape 设备控制函数 ) \) W: O K; g
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 t t5 h# _" O1 g% V `
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化
/ V' _1 n7 I6 F& R8 x) Z$ b# Z6 WFindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
! F. }# ~; X5 i" G8 uFreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区
' E4 }8 r4 ^9 y, a* vGetForm 取得与指定表单有关的信息
, v0 L1 v7 k; C% p8 _! w5 z; q" YGetJob 获取与指定作业有关的信息 3 S. ?1 }5 {! ^6 u+ W
GetPrinter 取得与指定打印机有关的信息 * O( w6 J' z, Q% r
GetPrinterData 为打印机设置注册表配置信息
- Q* k- v: \; h* Y8 [2 {' HGetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 . H' u& v# ]$ K! n, @: _/ k
GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么 & z2 M; L# j1 k7 Z0 I& Z
GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录 2 H; M, f0 A& ^2 T+ M$ F3 q$ c' @
OpenPrinter 打开指定的打印机,并获取打印机的句柄 - b$ B( c/ D4 i% g- {5 v
PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框
, ^; U5 C; A" u* UPrinterProperties 启动打印机属性对话框,以便对打印机进行配置 % j4 A+ x6 l6 T1 b i( m" ?* E
ReadPrinter 从打印机读入数据
! F' x6 z4 ^9 b$ m1 N8 PResetDC 重设一个设备场景 7 G) K: s) a& g
ResetPrinter 改变指定打印机的默认数据类型及文档设置
7 ]1 @& I- B# P5 C8 lScheduleJob 提交一个要打印的作业 : c" x3 J8 {4 N
SetAbortProc 为Windows指定取消函数的地址 ( p& F" z3 V N' u* Q
SetForm 为指定的表单设置信息
0 `7 m. E5 D; H6 e( w% ASetJob 对一个打印作业的状态进行控制
( C& b' P- v$ o5 A$ CSetPrinter 对一台打印机的状态进行控制
6 m; o9 I8 Q$ |' w# {- p8 z8 aSetPrinterData 设置打印机的注册表配置信息 # G; E+ y$ c! k, {9 V9 {9 m
StartDoc 开始一个打印作业
5 z# ^/ L% o8 m. b. M: n7 R3 y# UStartDocPrinter 在后台打印的级别启动一个新文档
% [4 R+ \6 N8 `StartPage 打印一个新页前要先调用这个函数
' o( y% j5 N% R; ~StartPagePrinter 在打印作业中指定一个新页的开始
' G. ^1 E( p& t6 m! }WritePrinter 将发送目录中的数据写入打印机
1 `+ n* _1 [# e, x. }3 [$ b5. API之文本和字体函数
+ X5 N9 p M; c; s& W$ W' y7 ?AddFontResource 在Windows系统中添加一种字体资源 ( r1 C. E% F2 V. a/ {% X S
CreateFont 用指定的属性创建一种逻辑字体
5 u# o, ~- x V# g! YCreateFontIndirect 用指定的属性创建一种逻辑字体
' h& ~- F2 z5 gCreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 - ~% W/ ^6 l; N( c
DrawText 将文本描绘到指定的矩形中
& A: T3 o3 i, ^- ` i' pDrawTextEx 与DrawText相似,只是加入了更多的功能
0 W! o" I5 R; X: Y9 Q3 `$ c. X) JEnumFontFamilies 列举指定设备可用的字体
3 x1 M* T/ @- d, [8 N- |% aEnumFontFamiliesEx 列举指定设备可用的字体
( S3 j1 K# }8 @4 N2 D% B. }EnumFonts 列举指定设备可用的字体
+ M% H0 z3 _; p( k+ h9 iExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
* P1 c# o+ F, l: ^4 q* ?; W2 V9 oGetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小
, u4 G& Z! s& r. p& s) j$ fGetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小
; u. |. g! t* _; K: r4 F. OGetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸 3 F5 F7 K K6 Z* M N2 E% n
GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串 - L) u2 l# j: f
GetCharWidth 调查字体中一个或多个字符的宽度
0 R- Y) S" a* UGetFontData 接收一种可缩放字体文件的数据 ; L& C! N5 I2 V
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息 p1 l5 \0 ^" ?8 D! V S
GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 4 d- P3 J1 G9 G: e2 y+ _
GetKerningPairs 取得指定字体的字距信息 ( H) f# L, h1 a
GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息
' r% J% C2 J- f7 JGetRasterizerCaps 了解系统是否有能力支持可缩放的字体
, C* R2 K* S/ f5 \3 X/ bGetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 ; e: X# Y" Y# E$ x, i3 `
GetTextAlign 接收一个设备场景当前的文本对齐标志
6 q. {7 G4 J5 ^' X% b" r7 r9 TGetTextCharacterExtra 判断额外字符间距的当前值 ( _+ b `: g* x3 N2 S* U- ?( N
GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
9 n( ^5 }8 Q& [% b' d' V1 UGetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 ; z& d, G0 P R; f* O- K( p/ ^
GetTextColor 判断当前字体颜色。通常也称为"前景色" p7 `# c3 e4 P0 ~/ Q' M p
GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
: L' ?, e7 B$ r% b$ u5 DGetTextExtentPoint 判断一个字串的大小(范围)
% k5 A+ z% s) ^; M+ S* EGetTextFace 获取一种字体的字样名
" u% @. V P- _& D% T% {: m& xGetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 % k, ]( a) V; L t
GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 8 k8 @. U: Z8 S/ w/ F) G
PolyTextOut 描绘一系列字串 2 K8 i8 t! w l7 R+ E$ k" d$ F
RemoveFontResource 从Windows系统中删除一种字体资源
3 V: W/ p. ] r& o; a: ]4 hSetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 , B/ J% t, Y; V+ Q P
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置
* Z7 X4 C( z d* L6 x. ]SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 7 t; I5 y N, v! X, ~* [
SetTextColor 设置当前文本颜色。这种颜色也称为"前景色" . d" p( `0 O0 V+ p! s: B; [
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理 8 B1 q8 j. q/ B1 z3 u& N" I. {! ?
TabbedTextOut 支持制表站的一个文本描绘函数
! T% e) w( Z5 H2 l1 Z5 DTextOut 文本绘图函数 % S% h" K' K, |0 m% I
WINGDIAPI BOOL WINAPI TextOut(
! o! H" i( M& V2 ]/ IHDC, //输出设备" g5 m0 A Z- A: p0 d
int, //输出的横坐标2 b' g" x/ s) D2 G
int, //纵坐标
9 `: Z* a: Q4 RLPCSTR, //输出的文本str
9 d3 P4 ^: w; H; l+ rint); //文本的长度:lstrlen(str)
# t; V) }" T# ^9 q2 [: h4 l6. API之菜单函数 5 K# N# N Q' Y- e+ E4 P. g
AppendMenu 在指定的菜单里添加一个菜单项 6 k# L1 }# G4 E5 s7 D K- d' C
CheckMenuItem 复选或撤消复选指定的菜单条目
g# ]; t* v3 E1 hCheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 & y# {* ~+ x7 ~6 `$ h3 \! F
CreateMenu 创建新菜单 / N, q( A. U/ |$ O( G
CreatePopupMenu 创建一个空的弹出式菜单
$ |" W0 W$ {& S$ L" a1 DDeleteMenu 删除指定的菜单条目 3 h E! a! z( n# K4 f# @7 i/ q" y
DestroyMenu 删除指定的菜单 7 { M2 F4 u; u+ j
DrawMenuBar 为指定的窗口重画菜单
: m6 D4 K. p( A' c) {EnableMenuItem 允许或禁止指定的菜单条目
; `6 V+ g Z9 y. ^GetMenu 取得窗口中一个菜单的句柄 8 C# \& ?6 a1 u( c" D0 }
GetMenuCheckMarkDimensions 返回一个菜单复选符的大小
( f7 Y1 ^8 x! B- p1 d: h" ^GetMenuContextHelpId 取得一个菜单的帮助场景ID / J2 g2 U7 M! f3 `& d4 W0 T6 |. Y6 S$ T9 L
GetMenuDefaultItem 判断菜单中的哪个条目是默认条目 / Q/ f$ C+ ~9 v& O+ } {8 ~4 D
GetMenuItemCount 返回菜单中条目(菜单项)的数量 : q/ ~ x' N7 M* ?
GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID 1 o7 l% Q2 V# g& Q
GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 4 E* X: ~5 G' m
GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息
: O+ z7 y2 U& b; PGetMenuState 取得与指定菜单条目状态有关的信息 0 U6 \/ n$ W( F7 W; C
GetMenuString 取得指定菜单条目的字串
4 k, }% @# z Z. n3 Z7 O/ MGetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置 . N0 b! P; \$ ]
GetSystemMenu 取得指定窗口的系统菜单的句柄 2 ?1 [! R3 q8 D2 Q! ]& X% D
HiliteMenuItem 控制顶级菜单条目的加亮显示状态 5 V8 F8 f E g5 f. o% G3 ]
InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
; p, X. t8 ~: t/ vInsertMenuItem 插入一个新菜单条目
& b7 A4 ~# f& qIsMenu 判断指定的句柄是否为一个菜单的句柄 : j# G' g% L$ E4 [
LoadMenu 从指定的模块或应用程序实例中载入一个菜单 6 |1 O( U( G! W: U6 A4 Y( u) w
LoadMenuIndirect 载入一个菜单
( g! V/ I/ ]) ^- d' n7 A3 UMenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 % g. [ c- q) P8 _& Z1 e
ModifyMenu 改变菜单条目 ( z, [; F5 A$ \$ d- V
RemoveMenu 删除指定的菜单条目 " y1 J% i, f5 j2 D* O" t P p# d
SetMenu 设置窗口菜单
1 r% N- W3 F4 s% vSetMenuContextHelpId 设置一个菜单的帮助场景ID % h; ~# G( o5 b& h3 J- V$ O
SetMenuDefaultItem 将一个菜单条目设为默认条目 ; F1 p, ~) z0 u* c
SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√) ! A' z: S- n2 z- c
SetMenuItemInfo 为一个菜单条目设置指定的信息
, v3 B9 q' \# K# I H; \TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单
8 Y5 \; U( `3 |" m% }/ TTrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 : ^& v4 L+ Y( l( ?
7. API之位图、图标和光栅运算函数
- y; W8 @) n7 K' a2 _( A5 nBitBlt 将一幅位图从一个设备场景复制到另一个
' W, A" J. P; o9 p WINGDIAPI BOOL WINAPI BitBlt(" A! Z* S$ d) E8 w! F9 |+ s2 R2 M
HDC, //目标HDC
% h9 z; X% o; |8 }+ d) Fint, //X1
! e; O( |) r8 g4 u/ P3 D. Cint, //Y1# Z+ b5 K8 S3 L
int, //width) k; i( ^3 |. A3 c
int, //height
2 E% F( r; j8 D/ f+ p( w* WHDC, //源HDC
% r1 P# Y* m4 z( @" |5 vint, //右边的距离5 q' U" p/ ]3 g7 t5 ~# e" o2 d
int, //??
: t" H% O! K+ G6 k( t3 ?9 p* {DWORD); //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|4 x4 f( H6 o3 r2 S' w, F# d8 _
PATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS
5 X: p2 @% G! y$ CCopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序 / W+ g# m' M! B6 J7 t
CopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作 6 |' o9 F( `/ M9 m/ R5 I" Z
CreateBitmap 按照规定的格式创建一幅与设备有关位图 % [3 C/ T, k3 \* N* ^, ?$ l
CreateBitmapIndirect 创建一幅与设备有关位图
: R6 a- \5 b' ~, t& W7 KCreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容
/ x, x6 G8 v, QCreateCursor 创建一个鼠标指针 , v, q* P/ p. Y. k# b: D
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图 & S# b4 i; j! n! [* B: }8 r
CreateDIBSection 创建一个DIBSection
- Y/ g: }: o8 j2 ?CreateIcon 创建一个图标
- G1 _ @4 G) j: jCreateIconIndirect 创建一个图标 & d* b8 A- h1 E8 S! I
DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 ( `; o# r: D5 M* m+ _9 b: h
DestroyIcon 清除图标
; p4 J" v. K: A5 C. q( }5 Z5 u% wDrawIcon 在指定的位置画一个图标
' ]; b4 t8 N1 M& d1 oDrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
/ g( ?0 n5 n) V( A' ]) d6 Q; }9 aExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
' \- B o/ C) a1 q) zExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来 : u. `( z7 a [9 E* I
GetBitmapBits 将来自位图的二进制位复制到一个缓冲区
! o3 R4 e. i5 Q0 G. M, xGetBitmapDimensionEx 取得一幅位图的宽度和高度
) i+ H# x0 b# U" Q" i$ LGetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息
$ s' I# S) \; @9 m9 Q$ ~% M' lGetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里
, i* L% j5 {! x& B% y' B; D4 `" NGetIconInfo 取得与图标有关的信息
8 R) F5 q l1 F$ d% h9 y+ nGetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式
, l6 t& O0 W! g( _( xLoadBitmap 从指定的模块或应用程序实例中载入一幅位图
5 O# q- p" M) i" s [LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针 * v. q" E) ]& x
LoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 6 v6 H! i' a, j& k
LoadIcon 从指定的模块或应用程序实例中载入一个图标
. k+ H5 r8 M$ E3 _4 y% kLoadImage 载入一个位图、图标或指针 $ C& i1 y3 [- N
HANDLE LoadImageA(
& Q3 m, i9 |% g, PHINSTANCE, //当前实例句柄:AfxGetInstanceHandle()
/ A$ i4 s5 x' z, ~ N# S( [* X LPCSTR, //资源所在的目录:c:\help.bmp/ `9 W" m2 r3 B i1 j6 S
UINT, //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE& |# m/ i7 b5 h+ y# P, e. e, `6 g
int, //
& j* c& s: f6 B8 u2 s& ^8 I W int, //
0 r. A3 r9 t% @$ \' X' L. nUINT); //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|- R A' K+ Y+ l+ k2 |8 n& f; a. I! n/ D
R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|4 V2 V( ?. H# E+ H0 _
LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
4 v2 O; L9 B; Y" l9 f& i, j2 |+ e& h. vMaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理 0 f, }) n) k. K% N3 J. P* G6 z6 W
PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景
. z# D4 z* M/ g2 A! i, |) oPlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
$ n' t4 _( D: @/ u& {SetBitmapBits 将来自缓冲区的二进制位复制到一幅位图
' l. s7 s* i6 B5 Y YSetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 2 q! y3 w5 k" d: ?5 H5 N
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息
2 F) s% h! P' E. Y4 A) M" OSetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里 - P1 {. j* R2 {/ C' @5 l G
SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
% W+ k: @( a' u- y, Z+ l5 @SetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 ( Z& Z% @ f9 \3 Z6 I7 z3 j$ l( v: Y/ a
StretchBlt 将一幅位图从一个设备场景复制到另一个 ' B8 p+ F) K9 G( {. Y7 O4 f
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
2 p8 s' a- b6 T( w3 Q7 f) X8. API之绘图函数 # S! h" o. p* i H; P1 {' P
AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作 . @- g" i) Q+ y6 W6 p$ O
AngleArc 用一个连接弧画一条线 ! g$ v; E' E. J9 Z) T
Arc 画一个圆弧
4 H/ f' g& F+ q; pBeginPath 启动一个路径分支
; M$ ~9 u1 P$ Y5 {CancelDC 取消另一个线程里的长时间绘图操作
2 V0 ?# k, Z) z# q& RChord 画一个弦
3 O% T* q$ F$ F1 I- g1 ^CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄
1 M4 l1 E" Z* |+ d/ i# BCloseFigure 描绘到一个路径时,关闭当前打开的图形
4 v, X' C2 E7 ?. vCloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 - v! R) ~5 s/ v
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝) / f; X& O. ^4 W4 u/ }' n0 X% ?+ _
CopyMetaFile 制作指定(标准)图元文件的一个副本 \5 K$ u# n+ l+ O) ~7 n
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
1 d3 G( q( _# z& nCreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) ' V& x" P$ `/ n1 U! L/ s
CreateEnhMetaFile 创建一个增强型的图元文件设备场景 7 r* |, O8 u y5 I2 G. I* {0 T9 \% I
CreateHatchBrush 创建带有阴影图案的一个刷子
6 V! s) f% W5 w, ]$ f9 r% J7 aCreateMetaFile 创建一个图元文件设备场景 # R9 s2 E3 `5 v) Y7 O1 J, g Q3 z
CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子 0 I$ u& s" t* O6 ^" K
CreatePen 用指定的样式、宽度和颜色创建一个画笔 6 U6 T& |2 L2 r* V
CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔 $ p @9 v' v+ V1 g: d! w4 [
CreateSolidBrush 用纯色创建一个刷子
3 Y4 C* _4 ]" I6 _8 j2 GDeleteEnhMetaFile 删除指定的增强型图元文件
2 g- a- t9 ~8 l* ?- E1 HDeleteMetaFile 删除指定的图元文件 7 U s6 B* j4 X+ A8 [* ^+ J
WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放
& f- v5 A! V# WDrawEdge 用指定的样式描绘一个矩形的边框 % Z4 B. q+ m4 c) K$ L5 o. P' m
DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序 ) J* Z r# H- |* _5 }3 n
DrawFocusRect 画一个焦点矩形
& H2 x( R9 d5 U! H% Q4 tDrawFrameControl 描绘一个标准控件
1 O) m6 e8 D2 ^% e9 TDrawState 为一幅图象或绘图操作应用各式各样的效果 4 t8 }; | o9 ^& h' [4 v2 K
Ellipse 描绘一个椭圆,由指定的矩形围绕 8 r3 e. `# j1 U! C0 f
EndPath 停止定义一个路径
- s" ~- s, X3 z. j; G/ L- `" i9 h ^* qEnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录 4 Z8 X; Q5 v6 `% O$ I& w
EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录 7 {; L1 z5 O3 @, o! x7 p# y
EnumObjects 枚举可随同指定设备场景使用的画笔和刷子
; I6 f$ @6 E2 g7 hExtCreatePen 创建一个扩展画笔(装饰或几何) ! {: X. P) T9 O" @2 ], N" Q
ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
; b, D6 B0 ^7 W4 NFillPath 关闭路径中任何打开的图形,并用当前刷子填充
8 h; ]# f% Q! F7 Y4 OFillRect 用指定的刷子填充一个矩形
* X$ Q* ~, d7 l, }1 P* ]% `6 WFlattenPath 将一个路径中的所有曲线都转换成线段
* G- P' h2 u$ t, L3 ], FFloodFill 用当前选定的刷子在指定的设备场景中填充一个区域 - v8 B& v \8 D
FrameRect 用指定的刷子围绕一个矩形画一个边框 + y! U; {1 F$ o% p1 h# c$ v
GdiComment 为指定的增强型图元文件设备场景添加一条注释信息
- F. d: y/ F8 w4 v) {GdiFlush 执行任何未决的绘图操作 5 Z( @# Q$ [' F, r. N5 P5 g
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 3 ? E( {) ^5 O% x# A
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列 1 {! F3 M( @- b( I1 S8 N
GetArcDirection 画圆弧的时候,判断当前采用的绘图方向
/ h8 X/ _! x! M( JGetBkColor 取得指定设备场景当前的背景颜色 , m3 ]* e5 \$ Q% z6 b& ^
GetBkMode 针对指定的设备场景,取得当前的背景填充模式 & T3 s' p" C/ R7 P) W+ N3 P- x) h
GetBrushOrgEx 判断指定设备场景中当前选定刷子起点 + x& G" g0 _' a) ~% s( ^
GetCurrentObject 获得指定类型的当前选定对象 * x5 J' o/ n: X9 Z9 S1 B
GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
# _ j+ W9 n$ \3 x# [GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄 2 q: `- K+ C' O5 T+ j3 P5 B& T
GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里
! Q5 U7 u0 k- b( e V8 dGetEnhMetaFileDescription 返回对一个增强型图元文件的说明 " n7 d( p) }3 S/ v; l5 i7 X! }; H
GetEnhMetaFileHeader 取得增强型图元文件的图元文件头
1 E) o7 n2 V) VGetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 1 q4 |9 h$ I/ w" \% S7 I% _, U. o7 b
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 $ S& s1 R/ H$ T! K# U
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区 - K, I. ~% ?+ ]- O
GetMiterLimit 取得设备场景的斜率限制(Miter)设置 7 \8 v! i0 x$ C# \" v* e6 b; K
GetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色 & V+ F% a% P! f
GetObjectAPI 取得对指定对象进行说明的一个结构
/ d* e1 ?/ C; @8 g+ nGetObjectType 判断由指定句柄引用的GDI对象的类型 ! Y6 ^! c, A+ I/ j' F: _6 [
GetPath 取得对当前路径进行定义的一系列数据
( R$ A3 w# ^2 e' R1 K( Z1 lGetPixel 在指定的设备场景中取得一个像素的RGB值
' J) }6 u' c4 I+ w8 CGetPolyFillMode 针对指定的设备场景,获得多边形填充模式
) o* z9 {5 `* c) yGetROP2 针对指定的设备场景,取得当前的绘图模式
$ D3 ?& t, s9 M" cGetStockObject 取得一个固有对象(Stock)
7 m) y @( X/ y) l; x& g3 c( hGetSysColorBrush 为任何一种标准系统颜色取得一个刷子
5 Y6 M6 O: D; \+ k% y" { OGetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件 ! R8 Z- s. h6 \9 f0 r
InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形 % C; O$ s" m3 U) k, T" j) I1 q/ ` }
LineDDA 枚举指定线段中的所有点 . o9 }4 A% V$ |& b# Y6 v
LineTo 用当前画笔画一条线,从当前位置连到一个指定的点 6 x0 \ `* X! }8 @) ]) m8 s
MoveToEx 为指定的设备场景指定一个新的当前画笔位置
! p i' ` a* j9 Q/ n8 YPaintDesk 在指定的设备场景中描绘桌面墙纸图案 * m2 b% t4 w& h: y8 N3 a
PathToRegion 将当前选定的路径转换到一个区域里 : t8 s6 u+ j0 _' X3 m. s! R& K
Pie 画一个饼图 4 I6 ^' A5 x* H, ~
PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件 1 H! Z! G8 b# }8 |2 H
PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 , E3 W! p" t* v; _3 t
PlayMetaFile 在指定的设备场景中回放一个图元文件 _8 a( T _. B! O$ d
PlayMetaFileRecord 回放来自图元文件的单条记录
+ b# i- Q& P8 ?# CPolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
! {* d7 U- c5 B7 H6 |, F$ ^6 aPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成 8 _# _7 o( X! @1 _: i
Polygon 描绘一个多边形 3 [. j! f+ i# s' u. K& ^8 [( \% W4 r
Polyline 用当前画笔描绘一系列线段 , w5 a5 Z" Q5 P: l
PolyPolygon 用当前选定画笔描绘两个或多个多边形 1 U& E1 ` v1 |0 c
PolyPolyline 用当前选定画笔描绘两个或多个多边形
3 \% x; m) p' ^9 W: a2 o9 m8 \Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充
1 }# |7 @) W9 B6 R( l3 e" Q' _RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充 % @( q) x+ m4 B1 Q/ r
SelectClipPath 将设备场景当前的路径合并到剪切区域里 # p2 x! s, L1 M3 L. o$ N9 j' s% A0 O
SelectObject 为当前设备场景选择图形对象
% p* B7 D3 }& Y WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);3 x' o$ U0 n, K; `; }
SetArcDirection 设置圆弧的描绘方向
& J4 u: s+ _$ @- ^SetBkColor 为指定的设备场景设置背景颜色 9 ]$ _3 R& L. R# i- ?* w
SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式 3 g/ I3 ~+ \' T/ b3 n- u! t: K Z3 L
SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
" i3 n. L1 L5 S/ R4 m- F& YSetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
# o: L# I" S2 t( h% _SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 , D( h. F/ @& v' ~
SetMiterLimit 设置设备场景当前的斜率限制
4 o. X! l$ e4 x7 B# S: }SetPixel 在指定的设备场景中设置一个像素的RGB值
h! C) o' C1 z) M/ N9 k/ rSetPixelV 在指定的设备场景中设置一个像素的RGB值
2 O9 g5 x: M8 o1 K! ?& dSetPolyFillMode 设置多边形的填充模式 ( `' S+ v( u% L) j: e" H
SetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致 ! d# O( Q/ V7 q" T5 T1 _$ S, U
SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件
; R ?& C5 b5 a3 pStrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域
( Z0 O( M1 Q+ RStrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭 6 }3 Z/ }: X: @5 E+ W
UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数 ) |4 a% L) P/ T( D6 R2 ?
WidenPath 根据选定画笔的宽度,重新定义当前选定的路径 4 Z, F4 A8 [2 |# I0 }& m
9. API之设备场景函数 + r7 F1 W7 r& j4 [" h; ~8 [* t. _
CombineRgn 将两个区域组合为一个新区域 % X- U! C. N5 O/ u. S, b$ C) F
CombineTransform 驱动世界转换。它相当于依顺序进行两次转换
* V: M: k& N9 e+ }2 TCreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景
1 Z/ ?$ p* y% b* k. m6 g) x$ oCreateDC 为专门设备创建设备场景
j2 X1 Y9 Q0 x4 i3 SCreateEllipticRgn 创建一个椭圆 " W6 J' E- C7 {' e3 A8 j
CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域
8 r2 \! S' B, Q" E5 k* aCreateIC 为专用设备创建一个信息场景 4 J* w! N$ C: e$ q
CreatePolygonRgn 创建一个由一系列点围成的区域
3 V, C( E1 k/ b V& b8 \( C% x; LCreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的
7 L" }: E# c4 Z4 A: jCreateRectRgn 创建一个矩形区域 3 X8 o1 G/ y- o/ J& j0 N$ L
CreateRectRgnIndirect 创建一个矩形区域
8 F9 h/ {' x2 U- qCreateRoundRectRgn 创建一个圆角矩形 ( o; v! b" P+ p% o$ y
DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源
: B* h# q% a/ w, c& W7 S8 o0 v+ PDPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标
' u; F( Q6 r" p4 `: K, M5 w/ BEqualRgn 确定两个区域是否相等
k8 b9 q. J- W( w9 G) ^ExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图 5 Z7 p f0 O9 \2 }% Z% R2 x
ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域
1 o* {0 E+ T2 Z+ w" ?+ R; l8 cExtCreateRegion 根据世界转换修改区域
! U( ]2 ~ T: ZExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区 $ g! D8 i4 l: M! u* C' {# O
FillRgn 用指定刷子填充指定区域 $ X% q# [& w7 \* N0 x z
FrameRgn 用指定刷子围绕指定区域画一个外框 / W: E& n6 P8 t" z7 `% S/ G
GetBoundsRect 获取指定设备场景的边界矩形
, _) n) e! T: J5 R$ cGetClipBox 获取完全包含指定设备场景剪裁区的最小矩形
- }! k6 U1 `9 C+ I5 D0 P+ e# ]GetClipRgn 获取设备场景当前剪裁区
: B2 S3 E' x1 L, |* LGetDC 获取指定窗口的设备场景 2 f4 ]$ L# V' S# G$ O, H" ^
GetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 - [ t8 @7 l7 W4 b- F* @2 B
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示)
6 s. \; e* T( I2 eGetDeviceCaps 根据指定设备场景代表的设备的功能返回信息
$ U/ T6 ]8 C7 Y% U6 kGetGraphicsMode 确定是否允许增强图形模式(世界转换) : l* J" Q: M% S1 K" S
GetMapMode 为特定设备场景调入映象模式
" ~- k: X" |& x: ZGetRegionData 装入描述一个区域信息的RgnData结构或缓冲区 0 {) u; X! N, v: ^3 {) m6 D* p& N
GetRgnBox 获取完全包含指定区域的最小矩形
- o1 [8 ]" d3 Y: o( nGetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新
" s. o' i7 X' ?' xGetViewportExtEx 获取设备场景视口(viewport)范围
q" v0 A1 C7 Y c; N; i0 d4 [: ~( [GetViewportOrgEx 获取设备场景视口起点
% G9 u' F2 _% E+ w6 w) y! BGetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景 j N- \* p4 V* e
GetWindowExtEx 获取指定设备场景的窗口范围
4 L3 y( |$ p7 e6 M! BGetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 * D7 h* |) q$ s2 @5 m6 s
GetWindowRgn 获取窗口区域 / H. F2 ]% g. \3 }% ~$ o
GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换
8 I: k6 O5 j# VIntersectClipRect 为指定设备定义一个新的剪裁区 5 q- o8 s% `3 O- S5 @/ Q2 j
InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画 5 D" [* b( T8 n% b0 n; X
InvertRgn 通过颠倒每个像素值反转设备场景指定区域 1 K9 A' H' R, Q! s
LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标 : [9 L9 c s. n' S/ s* ^
ModifyWorldTransform 根据指定的模式修改世界转换 ( n4 B( Y3 k; |. I8 ^' [% A7 Q: z8 S
OffsetClipRgn 按指定量平移设备场景剪裁区
$ S* i1 o& p( bOffsetRgn 按指定偏移量平移指定区域 6 Y! U5 ?! p7 K) X
OffsetViewportOrgEx 平移设备场景视口区域 8 w& _7 \. F: D' Y& ~6 m
OffsetWindowOrgEx 平移指定设备场景窗口起点 $ K; B, y$ [% O6 [) G0 a* Q
PaintRgn 用当前刷子背景色填充指定区域
: c5 |& X8 I! Z: LPtInRegion 确定点是否在指定区域内 & G% a& h7 v( P" c/ I; q
PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)
8 l' n$ Y; ~0 U( a5 kRectInRegion 确定矩形是否有部分在指定区域内 ' E$ u0 @# J* z ]# ~* C5 ^8 s! N6 h
RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内)
: S- ~7 J6 ~6 oReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
8 D7 ], \. X v! v+ S6 ZRestoreDC 从设备场景堆栈恢复一个原先保存的设备场景 7 R$ `& ^0 `6 [9 `4 C( X
SaveDC 将指定设备场景状态保存到Windows设备场景堆栈
& M3 g4 O7 \6 J% h1 H" cScaleViewportExtEx 缩放设备场景视口的范围 / H$ T+ o% A. p+ r7 ?: ]+ Z
ScaleWindowExtEx 缩放指定设备场景窗口范围
5 e1 [8 h$ \! z9 D; p( lScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形 / B' P% w! r1 v( V$ v
SelectClipRgn 为指定设备场景选择新的剪裁区 $ Z/ c5 U6 C" h2 d; f+ n4 J
SetBoundsRect 设置指定设备场景的边界矩形
3 E% @( F: ?- h: ^% @% A2 J- YSetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换) 0 }# i, B7 Z3 O. I m( _% R
SetMapMode 设置指定设备场景的映射模式
. O+ \- H8 U/ ^% V, {2 WSetRectRgn 设置区域为指定的矩形
$ R: V8 `, ]5 v uSetViewportExtEx 设置设备场景视口范围 ; h0 {- l9 n3 g( R5 O
SetViewportOrgEx 设置设备场景视口起点
: Q6 ~/ Y( m- o; s( mSetWindowExtEx 设置指定设备场景窗口范围 3 ~0 d4 W1 u" K5 w- x1 g* b2 l, c
SetWindowOrgEx 设置指定设备场景窗口起点
7 Q( T# U2 Q. r: A& d7 i1 }2 ?' m8 ]SetWindowRgn 设置窗口区域 * N7 G+ _, \* K& u ?; R
SetWorldTransform 设置世界转换
( s6 V% x- |4 tValidateRgn 激活窗口中指定区域,把它从刷新区移走
& R/ W$ R, ]1 iWindowFromDC 取回与某一设备场景相关的窗口的句柄
- [$ e2 i2 \5 K3 z9 ~10. API之硬件与系统函数 3 @. X3 Y' i. K; K
ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义
, w6 F) ]- m0 Q7 H( fBeep 用于生成简单的声音 , k& t$ ^& ]* t' w, h
CharToOem 将一个字串从ANSI字符集转换到OEM字符集
- o2 o1 j1 c k O% s* [. s6 N6 hClipCursor 将指针限制到指定区域 & H8 V$ i! O& _8 G* R
ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID J; F5 m J3 G3 X
CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 1 Y8 i9 L; |4 k: L1 C& W
DestroyCaret 清除(破坏)一个插入符 " o1 m% a9 E" b" F; h6 _
EnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息 4 n1 A2 B6 R. W D- u8 X( ^- e
EnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
/ F$ r+ G; K6 M( K/ b: r# cEnumSystemCodePages 枚举系统中已安装或支持的代码页 . `# A& h6 t3 Y, g" |8 x7 ?
EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置 0 f: k5 o9 o* c# W: l
EnumTimeFormats 枚举一个指定的地方适用的时间格式
) r, I* w+ e+ O; `) s8 v5 }ExitWindowsEx 退出windows,并用特定的选项重新启动 % a8 @5 X$ W" k$ n/ E5 m8 F9 M5 q
WINUSERAPI BOOL WINAPI ExitWindowsEx() T6 N2 g& _+ C, l) ^0 V
UINT uFlags, //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG) I: s4 A5 @* Y. V: f9 w
DWORD dwReserved); //0
. {, d3 |9 \+ {) M0 S: g: _ExpandEnvironmentStrings 扩充环境字串
7 Q7 B, ~$ P* z# h$ N3 yFreeEnvironmentStrings 翻译指定的环境字串块 - d, _. z6 @/ y; j
GetACP 判断目前正在生效的ANSI代码页
+ G7 |3 R6 B8 I( w c( {GetAsyncKeyState 判断函数调用时指定虚拟键的状态 x6 m3 n7 w1 Z
GetCaretBlinkTime 判断插入符光标的闪烁频率
/ V9 U0 U& {: U3 ~7 X: N4 }GetCaretPos 判断插入符的当前位置 v" ~! b3 p7 `. M! O+ C' U
GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域
0 ]5 i+ O& B' U. m4 ZGetCommandLine 获得指向当前命令行缓冲区的一个指针 I! y1 K# O& b% s S
GetComputerName 取得这台计算机的名称 9 X+ i/ {: b9 R$ q8 O
GetCPInfo 取得与指定代码页有关的信息 , h3 X2 k! l+ g7 K) P4 z6 F; T7 P
GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字 7 R, S _ C/ F, d
GetCursor 获取目前选择的鼠标指针的句柄 % M1 a( a) A/ N8 D+ B$ B
GetCursorPos 获取鼠标指针的当前位置 2 Y( s7 i7 d0 B4 }8 ]5 {& f0 B1 `9 y
GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化
4 V5 k3 x' n- V8 HGetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 - S2 ^$ ^2 O9 s7 M; `( s
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄
9 w2 o( ?. f& a6 F2 k" w+ ?' D8 V; E" pGetEnvironmentVariable 取得一个环境变量的值 ( D( M% x& @8 Q7 ~3 F4 H5 x8 U) ^
GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件 1 _/ d! n+ l. N6 J) N
GetKBCodePage 由GetOEMCP取代,两者功能完全相同
2 ~- z8 ^1 }, [5 F [ SGetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
' ^$ X# D4 \" Z; Z4 AGetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
7 W# b* B, S" s& R0 b) i3 b/ iGetKeyboardLayoutName 取得当前活动键盘布局的名称 V( j+ c3 Q* f1 M6 s
GetKeyboardState 取得键盘上每个虚拟键当前的状态 * f6 K5 E0 G9 i0 F4 K3 Y
GetKeyboardType 了解与正在使用的键盘有关的信息 " S* V% n% b) U. j0 I2 w
GetKeyNameText 在给出扫描码的前提下,判断键名 J: \( P4 h3 T, C
GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 9 v9 R+ {, u, E# H
GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息 `1 S! ~# G2 a
GetLocaleInfo 取得与指定"地方"有关的信息 ; ~4 X$ S' ~0 ], T7 f
GetLocalTime 取得本地日期和时间 * ]/ P Z/ B8 M( S: G+ l5 [
GetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字
, D! F8 Q% `- x) \9 L% G. eGetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
! @8 d7 m v7 W% HGetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
+ B" m. U7 J U1 Q3 ^1 XGetSysColor 判断指定windows显示对象的颜色
- n/ Z( }3 ^! a9 C1 OGetSystemDefaultLangID 取得系统的默认语言ID
( ]$ f4 l- b# X( ^' L# [GetSystemDefaultLCID 取得当前的默认系统"地方" 3 _! m2 Y7 ]% O) m4 K. U1 p
GetSystemInfo 取得与底层硬件平台有关的信息 8 B* y" r0 Z; e
GetSystemMetrics 返回与windows环境有关的信息
$ f2 ?) K8 @+ j1 l) ~% S R# zGetSystemPowerStatus 获得与当前系统电源状态有关的信息
; x' _% x, |& _* f5 l" [ `GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式
% T% g6 Z. B& y6 gGetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步 + R1 Z; M- Z+ L% _; g3 x
GetThreadLocale 取得当前线程的地方ID + P/ }( p' Z0 a) x, V1 A5 n8 D9 F5 `
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
" a) E; g) L: OGetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间
6 o/ `4 P8 }* |- K& @1 l; tGetTimeZoneInformation 取得与系统时区设置有关的信息 % o6 o0 e6 }3 B& U* X* C
GetUserDefaultLangID 为当前用户取得默认语言ID $ n; \& v! z/ E" ?
GetUserDefaultLCID 取得当前用户的默认"地方"设置 0 x+ l/ f G1 u; R" T' `( T
GetUserName 取得当前用户的名字 6 A ^& g4 J- h6 {- P, `( o5 _
GetVersion 判断当前运行的Windows和DOS版本
3 w" `* H7 U% WGetVersionEx 取得与平台和操作系统有关的版本信息
) W. E5 X; Q7 H9 P' `HideCaret 在指定的窗口隐藏插入符(光标)
( Y2 d5 p( C4 e, D5 [IsValidCodePage 判断一个代码页是否有效 w& m+ }* I) B t3 E9 W! a
IsValidLocale 判断地方标识符是否有效
' V# h4 D5 W6 s; I. R! U+ ^keybd_event 这个函数模拟了键盘行动
& e0 {/ u6 V! i8 ~2 v# O( U5 F8 YLoadKeyboardLayout 载入一个键盘布局 9 j- W/ s8 T# X5 h4 c" h, w9 P* N0 ~
MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换
. H% @0 N" q7 _& c5 q! [4 DMapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换 m, y" F; Y) K( F& G4 k- Q2 ?
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的 ) G) \0 [" l# B0 H4 ]- U* H
mouse_event 模拟一次鼠标事件
4 m _7 y L, A" }3 A. POemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态 % W$ [5 T1 t* u l2 C$ a
OemToChar 将OEM字符集的一个字串转换到ANSI字符集
3 X& m1 y7 s1 F hSetCaretBlinkTime 指定插入符(光标)的闪烁频率 + T- ]% f: a5 _4 `6 p! V1 L: R
SetCaretPos 指定插入符的位置
3 b% s+ i: [# `$ HSetComputerName 设置新的计算机名
# m8 ~ L9 {0 G9 W0 T0 NSetCursor 将指定的鼠标指针设为当前指针 ! }2 s- T/ L) U$ a. Q
SetCursorPos 设置指针的位置
( u3 b8 _' Y& YSetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间
2 W- k$ g7 K4 v. ~9 i) s* U; MSetEnvironmentVariable 将一个环境变量设为指定的值 4 r! u& _% l6 U7 q' z
SetKeyboardState 设置每个虚拟键当前在键盘上的状态 # R( q( Y, Q7 ]
SetLocaleInfo 改变用户"地方"设置信息 % G# ]6 K7 ^- C1 o! l+ F
SetLocalTime 设置当前地方时间 ; T! _# O4 T9 ^/ E
SetSysColors 设置指定窗口显示对象的颜色 3 C) Z7 K/ r# E" f: y1 U/ t
SetSystemCursor 改变任何一个标准系统指针 0 h) {: q/ |" [$ X8 O8 c' \
SetSystemTime 设置当前系统时间 % _5 L0 }: I) \7 I# [0 y8 D+ B. c
SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 , w/ y' V( G; e: Q0 |
SetThreadLocale 为当前线程设置地方
# F0 _' k6 P" W# I: fSetTimeZoneInformation 设置系统时区信息
& t8 s2 h! o% ^5 n7 I2 NShowCaret 在指定的窗口里显示插入符(光标) . p- F; l5 I& F0 k i
ShowCursor 控制鼠标指针的可视性 / d; \( ^) l. \7 P) Q: B' p( a9 u
SwapMouseButton 决定是否互换鼠标左右键的功能 - [" s1 ?: q3 B% u1 w Z: i
SystemParametersInfo 获取和设置数量众多的windows系统参数
8 M9 T+ u# a4 s4 Z0 zSystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间 . I# ] ~, z! G S+ N+ H
ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符 5 s1 \* M6 p! ~2 f* |
ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符 ( T. B( J) N& y/ ?' |
UnloadKeyboardLayout 卸载指定的键盘布局
k g# h! v. Q' S% R/ L& c0 rVkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态 ) X- O. w; m+ n6 P
11. API之进程和线程函数 . f# R7 x% U3 r9 I* d1 E* u) F
CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作 - z, M# b7 c0 p" @
CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用
1 F% X8 B5 }# t B bConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 * a5 f9 M8 ?* q: H* w6 `! U! Z4 J
CreateEvent 创建一个事件对象
, h8 L% \) c. K3 XCreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)
7 M$ @. t+ W/ G) u- [CreateMutex 创建一个互斥体(MUTEX) ! n& @2 x- L6 i
CreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用
: N1 O) p$ H! r6 H7 K! q! X9 tCreatePipe 创建一个匿名管道
/ ~5 w% @: }8 n3 YCreateProcess 创建一个新进程(比如执行一个程序)
2 }# g& r% [+ a8 |4 U6 RCreateSemaphore 创建一个新的信号机 ; W! M( h- H3 ?+ G
CreateWaitableTimer 创建一个可等待的计时器对象
# z6 `: g9 s: C. W6 d" ?: yDisconnectNamedPipe 断开一个客户与一个命名管道的连接
! x+ x6 g3 w5 N! ~: Y# v5 n- YDuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄 $ C8 `" S3 W. ]3 D6 Z- j l1 t
ExitProcess 中止一个进程 2 {0 [, _' A1 \
FindCloseChangeNotification 关闭一个改动通知对象
* z/ D- S( q* \/ LFindExecutable 查找与一个指定文件关联在一起的程序的文件名 - [; L6 i. T( G% U' m
FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化
" ^0 ]- t) X, R: D+ G" l* v) AFindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 3 ]4 U N. a: z2 t2 {
FreeLibrary 释放指定的动态链接库 8 i" P" B4 d1 n1 s7 g) S, m
GetCurrentProcess 获取当前进程的一个伪句柄 0 a1 m& M- p4 L3 }; k; U! z' E
GetCurrentProcessId 获取当前进程一个唯一的标识符 + c( F, B8 Z) n5 p X: W
GetCurrentThread 获取当前线程的一个伪句柄
" M' g! f4 F- q0 J. j" z( BGetCurrentThreadId 获取当前线程一个唯一的线程标识符 ' s" o- }3 r# v8 `
GetExitCodeProces 获取一个已中断进程的退出代码
! k; l+ e! d _/ y! a0 dGetExitCodeThread 获取一个已中止线程的退出代码 1 o$ l9 \4 E) j$ w! Y
GetHandleInformation 获取与一个系统对象句柄有关的信息
" V; r+ C/ N1 K0 H4 SGetMailslotInfo 获取与一个邮路有关的信息
5 B6 z% d9 h1 T$ k2 ~ Q! [GetModuleFileName 获取一个已装载模板的完整路径名称
% j$ |8 i) p% m- E& q: d7 CGetModuleHandle 获取一个应用程序或动态链接库的模块句柄
/ U( D- H( [6 J GetModuleHandleA(LPCSTR lpModuleName);% H+ A; V0 y$ S
GetPriorityClass 获取特定进程的优先级别
' q3 x1 v8 Z; N. CGetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 ! V: ]7 o8 o8 Z* o) f
GetProcessTimes 获取与一个进程的经过时间有关的信息
^# I, u4 X! t, r4 |" r3 }GetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存 ' d+ s# {* q9 U H9 G7 U
GetSartupInfo 获取一个进程的启动信息
/ D P5 S4 ? e3 i1 |& T: kGetThreadPriority 获取特定线程的优先级别
4 Z( ]$ F- _! \3 T9 g# WGetTheardTimes 获取与一个线程的经过时间有关的信息
# O3 m- N7 A5 {4 b [- F4 AGetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符
" u2 ~7 Y7 D0 [" H* f5 lLoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
% r, M9 f( y0 hLoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间
2 K. L! G8 V" DLoadModule 载入一个Windows应用程序,并在指定的环境中运行 J1 ?# S2 g: l% [4 r
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回 4 J, }) X4 z9 O p# }2 Q
SetPriorityClass 设置一个进程的优先级别
D3 J* o6 s8 R4 Q$ X7 `SetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
6 x+ P u: t, S; ~& G/ |SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量 ; w( Q8 s' P2 c. i4 U
SetThreadPriority 设定线程的优先级别 @/ d; [1 @4 O1 d! Y6 B5 N. J! J
ShellExecute 查找与指定文件关联在一起的程序的文件名
# A) O( n; @" ?' x" t7 O$ GTerminateProcess 结束一个进程 * |& l( H: M" Z& P' d* N$ H
WinExec 运行指定的程序
/ B8 q, f o8 L12. API之控件与消息函数 M5 W/ e L8 }8 |
AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小
0 w/ x3 W4 j3 T! e7 t2 v: a* Y% B5 VAnyPopup 判断屏幕上是否存在任何弹出式窗口
) O6 w$ z0 ?5 R: }5 ^ArrangeIconicWindows 排列一个父窗口的最小化子窗口
8 N9 o+ Z0 S& j. X# Z" H& zAttachThreadInput 连接线程输入函数 2 s7 A( d. e5 |& Y5 C& I' k
BeginDeferWindowPos 启动构建一系列新窗口位置的过程 - o+ I6 x5 ~$ k
BringWindowToTop 将指定的窗口带至窗口列表顶部 ( b, {, y- Z( l- D
CascadeWindows 以层叠方式排列窗口
) D5 Z1 L: Q! S; q1 w9 Z9 }ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 p5 O1 e1 ~4 Z9 t( v9 R# U
ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标
) z. K5 D1 t4 h5 wCloseWindow 最小化指定的窗口 + j. {; ^( l% ]8 L+ S; |
CopyRect 矩形内容复制 . r/ m# F: A1 \; {, \7 ?( t
DeferWindowPos 该函数为特定的窗口指定一个新窗口位置 ) S( e4 O4 `/ L) j* i) j
DestroyWindow 清除指定的窗口以及它的所有子窗口 ; M$ ~. W' `/ t1 F+ Q6 o' I
DrawAnimatedRects 描绘一系列动态矩形
; a5 k5 q, Y! d* [7 ]1 }: LEnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入
% [5 v( ?# t3 X" E S! o7 x# `EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态 + d! d; F: a$ t" ^7 B! Q# ?
EnumChildWindows 为指定的父窗口枚举子窗口
, w' I. U ?. V( gEnumThreadWindows 枚举与指定任务相关的窗口 2 {# r: N; `* \9 |# T
EnumWindows 枚举窗口列表中的所有父窗口
( H% u7 i* D [EqualRect 判断两个矩形结构是否相同
* k( G- @2 X+ F2 }8 MFindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 p' F7 O0 X3 K$ j* p# s
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口 " L. H/ T/ t) C
FlashWindow 闪烁显示指定窗口
) M/ J! e8 H* I" R6 g) ^: C2 y3 AGetActiveWindow 获得活动窗口的句柄
* C# r9 I* C, T' C. F5 h; J( UGetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
0 Y! _8 Q9 m% p! |# S& n& kGetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息
6 d; ?% B9 r. s, q g; i, u# aGetClassLong 取得窗口类的一个Long变量条目 # }2 ~6 b. p! G4 ^
GetClassName 为指定的窗口取得类名 " _' [- a) f* Y$ ]6 Q, P
GetClassWord 为窗口类取得一个整数变量
0 ~* l5 d+ }4 Q( W2 b; Q {, u: i2 RGetClientRect 返回指定窗口客户区矩形的大小 ; O! W: E4 V, y5 N7 ~: J6 c2 j/ J
GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄 - R, a' N0 a7 b) G$ k, H7 I
GetFocus 获得拥有输入焦点的窗口的句柄
" |4 X+ z. ?+ m6 mGetForegroundWindow 获得前台窗口的句柄 0 P0 _# p# M4 W- V, d I; S( s$ R
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄 9 F+ R- y2 C8 ^ I
GetParent 判断指定窗口的父窗口 . b+ ]4 w' m" C8 h
GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄
/ D% l1 y2 Z1 l4 NGetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 4 p7 _0 m* l; {
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 ' D j3 I9 l: I3 i
GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
6 d! o1 x6 H: Z: n% W( sGetWindowLong 从指定窗口的结构中取得信息 ; d$ L7 _, @: ~+ {
GetWindowPlacement 获得指定窗口的状态及位置信息
! J( T% ?$ Z0 d) h* X. SGetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
6 Y* J* a$ q6 a5 g: cGetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容 $ {, b2 Y3 e! J& A
GetWindowTextLength 调查窗口标题文字或控件内容的长短 . E- s& [6 @8 G
GetWindowWord 获得指定窗口结构的信息 $ T' j, u& I3 y
InflateRect 增大或减小一个矩形的大小 $ C6 `* @9 G o5 U1 e" o
IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集
# e: T- B, [9 [+ d5 }! B: qInvalidateRect 屏蔽一个窗口客户区的全部或部分区域 0 A4 O. b4 ^* }. i* p. d
IsChild 判断一个窗口是否为另一窗口的子或隶属窗口
3 K, U: H: }7 p+ Y- ^/ b* hIsIconic 判断窗口是否已最小化
; K# U; K. C/ }& H8 w$ S: WIsRectEmpty 判断一个矩形是否为空 % P9 h& h$ n/ T7 `0 i
IsWindow 判断一个窗口句柄是否有效
0 ~, W! Y9 F" ?IsWindowEnabled 判断窗口是否处于活动状态
& Y- [ ^% H$ z. b& ?IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 " `: _- o& x/ q, u: E
IsWindowVisible 判断窗口是否可见 . O [& j, M* C. a
IsZoomed 判断窗口是否最大化
3 ` \! |% j) DLockWindowUpdate 锁定指定窗口,禁止它更新
' Y( Y" g( Q* I7 w8 TMapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统 / h% M9 |$ t: a X& f" `# k
MoveWindow 改变指定窗口的位置和大小
1 k% p$ ~) i9 Q9 r2 Q4 j) eOffsetRect 通过应用一个指定的偏移,从而让矩形移动起来 ; p5 W. S9 ^7 O2 N
OpenIcon 恢复一个最小化的程序,并将其激活 + p/ U# n/ n8 h" |8 r/ Q( C8 F$ a9 t( U
PtInRect 判断指定的点是否位于矩形内部
' ]1 @* l4 ?1 c F- BRedrawWindow 重画全部或部分窗口 , M `# J% z$ ]/ Q! h
ReleaseCapture 为当前的应用程序释放鼠标捕获 P! Z+ h" `) R' i% u
ScreenToClient 判断屏幕上一个指定点的客户区坐标 " d5 n1 k" \( M* h2 l
ScrollWindow 滚动窗口客户区的全部或一部分
5 U# T) k. s' u2 e3 I; q3 z' OScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分 3 F- l! ^& q( l1 N8 ~1 x$ `. _
SetActiveWindow 激活指定的窗口 ' `7 l, J" y- Z. x; t3 @
SetCapture 将鼠标捕获设置到指定的窗口 1 u- R0 C% x3 t$ h+ }- ]5 A* \
SetClassLong 为窗口类设置一个Long变量条目 1 D- ] b; y! E1 Q
SetClassWord 为窗口类设置一个条目 6 h- n$ Q& B/ Q/ ^1 f
SetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口
- e& Y N" Z" h% D. y4 {# kSetForegroundWindow 将窗口设为系统的前台窗口 ' B! y( N" Y2 S; t8 @: O8 Z- X
SetParent 指定一个窗口的新父 " c6 w/ M5 s& U R
SetRect 设置指定矩形的内容 - H- ?5 p2 W) c, w3 L. {& [/ T
SetRectEmpty 将矩形设为一个空矩形 ) K7 C1 x( p! {8 |- N
SetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID Q; R3 r# Y' J" f' }
SetWindowLong 在窗口结构中为指定的窗口设置信息 . C& R5 \" _ r& E! ~6 ]! K
SetWindowPlacement 设置窗口状态和位置信息 : @2 m: t h/ E; t
SetWindowPos 为窗口指定一个新位置和状态 , `+ j' f$ { U- o
SetWindowText 设置窗口的标题文字或控件的内容
1 U9 p2 f/ ]: l/ D* lSetWindowWord 在窗口结构中为指定的窗口设置信息
# O) z$ z# f+ H. AShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口
' z4 d1 v. u8 j, ZShowWindow 控制窗口的可见性
' Q4 ~/ }6 U9 e, Z, i' [ShowWindowAsync 与ShowWindow相似
/ A& O* X( ~! I" K) y, OSubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果
7 V5 M. W5 O I1 I7 ^) {- xTileWindows 以平铺顺序排列窗口
% A9 G5 s) S/ q3 kUnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果 ( n; T8 c" E2 M
UpdateWindow 强制立即更新窗口
' { v! s: K/ l; AValidateRect 校验窗口的全部或部分客户区
# a8 Y# `, E g1 h- lWindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口# u/ S2 W8 b! f# z& O
高级音频函数—参看《VC++ 编程指南.chm》11.63 S2 k& J \- `
Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。
8 g) h8 w5 H" V# S BOOL MessageBeep(UINT uType);6 O, ^/ f7 U S& r
该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。- `- C5 j u9 x. p
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。% P0 X) a; x2 @0 }7 J
级别
4 w3 N" P+ n3 r- t+ y3 \ | 描述
3 i6 `8 Q6 m5 _$ F; M1 p | -1
2 I% q0 D4 \9 V2 E | 从机器的扬声器中发出蜂鸣声。
7 x, p. n2 L8 \% ^. p- x7 r9 @ | MB_ICONASTERISK % M6 [, N, k, j0 T$ P; q2 N# n& E- k
| 播放由SystemAsterisk定义的声音。
! r7 [3 ^* E8 X, H | MB_ICONEXCLAMATION 9 p7 X' x S9 F$ c; I4 l
| 播放由SystemExclamation定义的声音。
' p0 [2 J- l2 c& s- _ | MB_ICONHAND 9 g' |, H2 R! f0 X+ b% S. M, _7 P
| 播放由SystemHand定义的声音。
( }" x2 p+ O; y3 X | MB_ICONQUESTION ( U( b; h) h5 y( j( ^+ b) D
| 播放由SystemQuestion定义的声音。
% X' U7 ^4 I4 E7 m- c+ Y | MB_OK
( k! ^9 f7 \0 }$ D) f8 Y | 播放由SystemDefault定义的声音
3 `1 A7 X+ x8 `2 h) ~ | BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);
, N" t% D* k+ s, L/ R2 u; W; e! }参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。: ~( F; X1 d, j3 }2 \$ u6 o- _
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。6 k4 x" \4 l2 }5 M5 ^
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。% N0 t) b. F& ^4 X7 V3 k$ B( L4 e
标志 $ ?4 M6 m* c" G- ]+ v* ^( d$ S
| 含义
2 ]( l- u6 V8 |/ @, M | SND_APPLICATION
" B* l) Z7 d& x4 D- q0 [ | 用应用程序指定的关联来播放声音。
& {9 n0 e: ~0 v6 o0 i* W- ` | SND_ALIAS
: H' Q1 @! u2 _ | pszSound参数指定了注册表或WIN.INI中的系统事件的别名。
/ Y3 _% p" T5 T5 A, w | SND_ALIAS_ID / S: G- L8 K5 I" a
| pszSound参数指定了预定义的声音标识符。
/ @3 ?; n: L2 T | SND_ASYNC
& q+ g V& W# C4 {' N# m | 用异步方式播放声音,PlaySound函数在开始播放后立即返回。 U: S( b& y% ]; u! c/ B
| SND_FILENAME
* Q6 m8 X- a% c, m4 m | pszSound参数指定了WAVE文件名。 - i% s4 F0 S1 T! f/ C
| SND_LOOP 8 s: P( k; ]5 d9 T. _
| 重复播放声音,必须与SND_ASYNC标志一块使用。
3 r2 E! z) w- P8 i) I | SND_MEMORY ! S- V4 h* ]& u
| 播放载入到内存中的声音,此时pszSound是指向声音数据的指针。 Q5 e- R; @3 ~% }
| SND_NODEFAULT 3 c* q% J5 B4 s4 {% m
| 不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。
1 d, q# t9 E0 N | SND_NOSTOP ) X% X, E0 c4 S( o- p, K- E
| PlaySound不打断原来的声音播出并立即返回FALSE。 + ?$ M. Q1 ]) y8 w+ ^- x
| SND_NOWAIT - [* y: \6 B2 } Q, b1 B6 E/ O. M9 z
| 如果驱动程序正忙则函数就不播放声音并立即返回。 # G" M2 O" s5 {$ f4 \: c
| SND_PURGE % m% p* @$ Y' W: B1 i" P5 e
| 停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。
( Q7 ]. q4 R0 w( M6 a" @" _/ G' L | SND_RESOURCE 3 y) i: a( G' S2 n2 j2 {: h
| pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
9 O, n3 X) U, I9 }) s | SND_SYNC
- y0 @ n* q0 k+ y4 c% O+ a | 同步播放声音,在播放完后PlaySound函数才返回。 5 e- d0 m5 n; z' p# E% }
| BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);" e$ ]; J. E: T" {0 h5 U( F' h
函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。& v: n3 u6 y/ g. S$ ]# @: Z6 o
MCI播放 U D9 I6 g& \. E8 @8 ?
所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:8 V* _3 c2 L0 Q4 X$ u. c
MCIERROR mciSendString(
5 a0 V# G% J6 s9 m- P1 |. xLPCTSTR lpszCommand, //MCI命令字符串
- E$ r& V" B, U1 {LPTSTR lpszReturnString, //存放反馈信息的缓冲区$ }/ u9 @! J" H+ R% A
UINT cchReturn, //缓冲区的长度
: y4 ?$ Y9 V8 y: O# oHANDLE hwndCallback //回调窗口的句柄,一般为NULL" a6 I/ j+ x$ w0 m+ i2 u: i
); //若成功则返回0,否则返回错误码。
& V/ M6 J3 ^# k' d, i该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为: q( ? ]; Z) P2 z4 X( h$ C2 s# W
BOOL mciGetErrorString(
; ?/ \& U0 X9 _, M% F9 NDWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码. S' O9 r0 m4 P0 Q1 B V* b, w. U
LPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区: P0 P" G& [1 ]" N' x
UINT cchErrorText //缓冲区的长度7 n+ T6 l4 E& Y$ V
);
4 _0 Y5 G* R- T0 O! \" u |
|