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

Windows API函数大全

[复制链接]
发表于 2011-5-19 20:42:51 | 显示全部楼层 |阅读模式
原文:http://www.cnblogs.com/cltsq/articles/api.html
0 `: [- Z. G6 r# b  X- n8 R" J1. API之网络函数
# l7 q, S( U7 |2 L# R; ZWNetAddConnection 创建同一个网络资源的永久性连接
" d4 K# p4 h5 V% K; LWNetAddConnection2 创建同一个网络资源的连接
  z; C) \$ a- jWNetAddConnection3 创建同一个网络资源的连接
' T8 p. c  b7 N* `: L! KWNetCancelConnection 结束一个网络连接
. S+ R& H% P8 \WNetCancelConnection2 结束一个网络连接 ; C3 |: ^- u! m
WNetCloseEnum 结束一次枚举操作
1 k& K. |0 w) D& x3 N4 c# UWNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接
6 y. I# ]/ [6 a: F  pWNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接 8 \! L& z- T5 g$ [3 y
WNetEnumResource 枚举网络资源
% z& N7 k7 |' Z, `5 fWNetGetConnection 获取本地或已连接的一个资源的网络名称
* s# ^& \# B# g! z+ s8 P, B% l8 FWNetGetLastError 获取网络错误的扩展错误信息 $ n- [6 B' J- r4 Z: t5 V
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 9 W$ H, m7 B% R, n' V
WNetGetUser 获取一个网络资源用以连接的名字
1 M; S/ B- K9 O& p, t  vWNetOpenEnum 启动对网络资源进行枚举的过程
: Y' i  l5 H+ `" ?2. API之消息函数
( `" j) n. N1 J/ n* A4 b3 |BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
9 I& \* z1 u: r$ aGetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 ) v/ _0 Q: H# I1 h( y# ^! t$ m: o
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间
  o6 ^8 c* }0 l' K+ \: UPostMessage 将一条消息投递到指定窗口的消息队列 & ]$ q% T* z4 u4 z+ D1 e
PostThreadMessage 将一条消息投递给应用程序 ) A" Q  P- X9 X! C9 T7 d* c2 i
RegisterWindowMessage 获取分配给一个字串标识符的消息编号 5 q, l4 V6 ~3 \7 i/ m8 |/ ^, a8 N3 A
ReplyMessage 答复一个消息
! ], a, I! K. t, e/ u: `4 j* c+ TSendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 2 l: G1 T6 m0 {2 y) O
SendMessageCallback 将一条消息发给窗口 2 J' W; m& ^+ q5 s* }  g+ Q% D
SendMessageTimeout 向窗口发送一条消息
- h! M  R( d0 m' O8 ~5 PSendNotifyMessage 向窗口发送一条消息 ) M/ S1 o$ n  P# i# a4 h
3. API之文件处理函数
1 p' I+ T+ E+ {5 S. fCloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 ) \- t, h5 b+ t6 P7 w: T5 R2 G6 _
CompareFileTime 对比两个文件的时间 4 z% G* y! Y: M& N2 ]' B% X
CopyFile 复制文件 6 Q' y& P  `2 r* v4 @" A+ H
CreateDirectory 创建一个新目录
' J1 u- i( z- U2 @. ?0 kCreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台
, ~; {" m0 p4 B, iCreateFileMapping 创建一个新的文件映射对象
$ l3 J9 u) H$ `/ z8 S! CDeleteFile 删除指定文件
& O8 ]0 t$ F9 C7 b; Z8 mDeviceIoControl 对设备执行指定的操作
5 k5 S7 b" K) U9 fDosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值
+ M0 S/ F$ b+ |3 \' FFileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
' x, ?# g( E. uFileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间 5 i$ h/ f* J  P  M
FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构 ( F& N/ W: S  k! m, G
FindClose 关闭由FindFirstFile函数创建的一个搜索句柄
2 n6 H4 V0 ^' i0 s6 z( }/ J9 c3 P8 aFindFirstFile 根据文件名查找文件
4 R! [% z5 C1 mFindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件
3 [, i; Z  t$ e4 KFlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 " U& \( m" n8 d1 p
FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘
$ f, h3 {( g( a2 eGetBinaryType 判断文件是否可以执行 , M8 U3 r; v# @! X: v  N
GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 2 \% T4 \+ Q- K2 k" o) E
GetCurrentDirectory 在一个缓冲区中装载当前目录 0 c# E9 h% R' R( D9 P" I( j0 ]
DWORD GetCurrentDirectory(! h( h$ K8 }" U( c
    DWORD nBufferLength,    //缓冲区大小7 o5 |6 a) a5 N4 H% B% C
    LPSTR lpBuffer          //缓冲区的首地址! L$ l; _6 h, N; T9 H1 ^1 b/ a
    );
" z2 k$ w" C' {+ z. Y9 P' dGetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 4 K% a% x1 D3 w
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息
3 W6 X* O/ f& ]: r% {GetDriveType 判断一个磁盘驱动器的类型
9 L+ C- ~$ E# c2 ZGetExpandedName 取得一个压缩文件的全名
+ R! n! O5 _$ i* E. n( g" dGetFileAttributes 判断指定文件的属性
' S8 ]% o7 N' q$ R6 LGetFileInformationByHandle 这个函数提供了获取文件信息的一种机制
- ?; T" p, k$ ]GetFileSize 判断文件长度
' z1 x" T6 E9 n% j* I) T  Z/ gGetFileTime 取得指定文件的时间信息
. J8 s6 l/ [' s# u8 lGetFileType 在给出文件句柄的前提下,判断文件类型 : c" ?0 A! `. I
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息
, n" k5 B2 f( @& w) MGetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区
+ {1 f! v' N0 ?; R3 VGetFullPathName 获取指定文件的完整路径名
  \5 J' D7 _! \GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母 1 F) D  p$ U/ N
GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径
3 c2 @  _, b- CGetOverlappedResult 判断一个重叠操作当前的状态
9 e4 T8 t4 V( j* ~! nGetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值
: }( s8 z3 B5 a( aGetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 * k8 a1 H! O& v6 e+ B$ q
GetPrivateProfileString 为初始化文件中指定的条目取得字串
5 S) k7 u: C. h) E& ~GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值 - N) h$ e' y/ o3 t; N* I
GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表 7 d% X1 _6 `$ p3 v5 v/ T
GetProfileString 为win.ini初始化文件中指定的条目取得字串
- ]: e0 B- y1 u" i( ~GetShortPathName 获取指定文件的短路径名
. [4 l8 [( u" A7 nGetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名
: u5 o! c1 e* c# ZGetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用
, Q! ?6 J  g" CGetTempPath 获取为临时文件指定的路径
7 O0 p- v  H& h- d: sGetVolumeInformation 获取与一个磁盘卷有关的信息
3 S& ?" T$ O0 T, |  ?GetWindowsDirectory 获取Windows目录的完整路径名 1 [  t) b8 s7 {: |8 f# f  a' G7 h
hread 参考lread
( }% |! c& Q0 j$ J2 qhwrite 参考lwrite函数
4 E. `3 P) M) f- H) t$ X. Qlclose 关闭指定的文件 - ~1 }) b  M8 x: l# |
lcreat 创建一个文件
6 h& L; K& ?9 Ellseek 设置文件中进行读写的当前位置 ( J/ o  _1 g) V9 E9 p, [6 \2 L. W
LockFile 锁定文件的某一部分,使其不与其他应用程序共享 , j" g5 c6 |- x* h
LockFileEx 与LockFile相似,只是它提供了更多的功能 8 K# t* N; E+ h$ U
lopen 以二进制模式打开指定的文件 , i9 y1 h: X% R2 p. u/ q" y1 r" f
lread 将文件中的数据读入内存缓冲区 , ~8 H0 w: Q4 E2 K/ l: A
lwrite 将数据从内存缓冲区写入一个文件 ; @- ?$ T: V# V  D
LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件 ' `; s* u/ N1 Y3 @2 u+ {
LZCopy 复制一个文件
2 i' V# h, s* r( RLZInit 这个函数用于初始化内部缓冲区 - h8 j0 x" p( Y, z
LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
& E- k7 o$ Z3 V9 ]LZRead 将数据从文件读入内存缓冲区 * Y8 a) H& q4 U( f6 _
LZSeek 设置一个文件中进行读写的当前位置 " D  n2 v! d0 |1 n  \8 q$ K: g2 V
MapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间 4 _4 }- u- T6 E: H
MoveFile 移动文件 $ z6 v0 U5 \* F! G" N. l  C  v
OpenFile 这个函数能执行大量不同的文件操作 4 x- X" N& k. Y
OpenFileMapping 打开一个现成的文件映射对象 6 R2 h- j5 X8 ~/ N% M" u
QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
" p5 J0 I# X; `4 ~; U) w" w) _ReadFile 从文件中读出数据 7 o7 `6 M" p9 y. V& c! \+ F
ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
( L# T9 d6 Q# L7 j- F+ xRegCloseKey 关闭系统注册表中的一个项(或键) * N) ~: Y% }6 I
RegConnectRegistry 访问远程系统的部分注册表
* Y' K/ |- [$ V* S/ XRegCreateKey 在指定的项下创建或打开一个项 , J! M0 z; i3 t5 r+ m# z, j3 Z
RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数
6 @2 ~+ _5 }. }. dRegDeleteKey 删除现有项下方一个指定的子项 " {* r; d& M: x/ P* v1 @$ @, q/ J) J
RegDeleteValue 删除指定项下方的一个值 ' o6 P, x0 ^& @4 l! P
RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx 1 n& Y1 ~+ ]8 g  j
RegEnumKeyEx 枚举指定项下方的子项
! s( ]" y: ?1 O8 t- B' M( P2 m+ KRegEnumValue 枚举指定项的值 ) R1 x0 X9 |7 k; Z3 }! O4 ~6 z
RegFlushKey 将对项和它的子项作出的改动实际写入磁盘
6 B6 H7 N0 Q2 T3 h: j) X1 cRegGetKeySecurity 获取与一个注册表项有关的安全信息
0 a; d* D1 y' ?- L: ~2 ^RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息
9 y2 i) o7 D- _' i# c/ r/ ^RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制 ! q7 a5 A- A5 O9 g3 c6 f
RegOpenKey 打开一个现有的注册表项
3 |7 A2 w3 R5 W9 ~- I: `RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
3 k$ W5 E' W! \5 ?1 N& g  v0 qRegQueryInfoKey 获取与一个项有关的信息
: C# c  m  j1 d& k& ^RegQueryValue 取得指定项或子项的默认(未命名)值
- j% y" L/ e" ^: S2 {. k: URegQueryValueEx 获取一个项的设置值 $ V9 L, f& a3 _* ^! g. Z
RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
% {# ^( ]% o& s+ G/ f2 n9 J* VRegRestoreKey 从一个磁盘文件恢复注册表信息 + @6 q8 m' P6 d
RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件
% N: H8 C) l+ T" VRegSetKeySecurity 设置指定项的安全特性
1 h* }7 Y2 v5 m- Z4 ~1 ^1 m7 H6 r2 mRegSetValue 设置指定项或子项的默认值 5 R# S  S- B) U6 m; o# v+ N! n
RegSetValueEx 设置指定项的值
* V0 {" _# Q& o& d- k% jRegUnLoadKey 卸载指定的项以及它的所有子项
$ R  e3 E) u$ J! JRemoveDirectory 删除指定目录 / D( ~6 _. H0 C- ~2 R' J
SearchPath 查找指定文件 ; q  g" ^& h* ?' e  U/ N( O- t
SetCurrentDirectory 设置当前目录
2 z9 g( g- K9 k8 gSetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾
# m, Z: G. R% X" i" vSetFileAttributes 设置文件属性 4 C8 G0 H$ h& O, y; J5 w
SetFilePointer 在一个文件中设置当前的读写位置 ' K/ S4 w7 `% O! |7 X3 b
SetFileTime 设置文件的创建、访问及上次修改时间
4 l% ~8 |6 r4 E- D5 oSetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果 6 Y% a' |: q9 ~9 g) x
SetVolumeLabel 设置一个磁盘的卷标(Label)
" r$ R; C0 D, z0 xSystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构
6 c9 ^3 x8 N( x+ `; |* vUnlockFile 解除对一个文件的锁定
) l5 |3 O' ]  yUnlockFileEx 解除对一个文件的锁定 $ b+ h& C& }0 u
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
. n5 Z$ h8 v, o2 dVerFindFile 用这个函数决定一个文件应安装到哪里 0 ]* v" u: j, l9 P) o( N3 D3 I& g
VerInstallFile 用这个函数安装一个文件 / l* @( f6 S" l, X# H+ g
VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称 * O  Z9 X$ t0 i4 k, n" j& p
VerQueryValue 这个函数用于从版本资源中获取信息
  l" l& ?% {; s+ p/ }2 l! iWriteFile 将数据写入一个文件
5 R1 O2 [7 @9 {& b1 q* s- O5 fWriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调 ' j7 Z1 `, L* e3 M0 v; W
WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值 ( e% D3 N3 J+ ?8 M' A0 z. o
WritePrivateProfileString 在初始化文件指定小节内设置一个字串
/ a2 W$ H. H* |1 W7 \) v- aWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值
  [" ~- B4 T9 A" W: z; `, MWriteProfileString 在Win.ini初始化文件指定小节内设置一个字串
7 ], T- b! l! r1 D( Y4. API之打印函数
: }% ~, a5 ^* AAbortDoc 取消一份文档的打印 7 M1 M/ ~) ?. H9 M0 f9 J
AbortPrinter 删除与一台打印机关联在一起的缓冲文件 - g* ^2 \$ \$ f7 p3 j% `
AddForm 为打印机的表单列表添加一个新表单 & {9 M8 F. a" a
AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号 " |( h8 Q% t2 j5 n- B
AddMonitor 为系统添加一个打印机监视器
; ?$ `9 C- F: {  p9 iAddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口 ( I: _0 \) }7 v1 B
AddPrinter 在系统中添加一台新打印机
, b( }' i; X7 C+ @3 X- s9 @. N, sAddPrinterConnection 连接指定的打印机 0 K* [7 r6 d* r" s+ E( l
AddPrinterDriver 为指定的系统添加一个打印驱动程序
" |; e* m% n0 IAddPrintProcessor 为指定的系统添加一个打印处理器
# }) p# q9 [: A! gAddPrintProvidor 为系统添加一个打印供应商
) }' c1 f( W: d: k. o7 s7 MAdvancedDocumentProperties 启动打印机文档设置对话框 ! W5 o, l# u$ D4 B& y
ClosePrinter 关闭一个打开的打印机对象
8 O) h6 g( I/ k. i. I- FConfigurePort 针对指定的端口,启动一个端口配置对话框 & Z; M. v, ~- w4 }0 i# |
ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接 3 B0 I) ?" @' _- ]5 H/ ~) n2 N/ m
DeleteForm 从打印机可用表单列表中删除一个表单 : Z1 H0 E6 B7 @& E
DeleteMonitor 删除指定的打印监视器
4 Y2 Q8 A) |, N8 S! N/ S" O; `DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口 : i! [( D, Y1 a& F* ?) H
DeletePrinter 将指定的打印机标志为从系统中删除
2 U# R  c& U1 P4 Z, T" G. iDeletePrinterConnection 删除与指定打印机的连接 % e- x- V/ ?# K& S% E2 T
DeletePrinterDriver 从系统删除一个打印机驱动程序 5 u1 S6 I0 @3 B3 \& T4 k3 p, k
DeletePrintProcessor 从指定系统删除一个打印处理器
$ ^& E% _  A, }- \3 f& WDeletePrintProvidor 从系统中删除一个打印供应商
' V( y- k! s1 b% uDeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 ) |% Y1 h, @9 W: x: A8 g8 u
DocumentProperties 打印机配置控制函数 4 v' l$ l0 t% J# i  W# @( h
EndDocAPI 结束一个成功的打印作业 : \# q* r4 _* t4 k. ~, j
EndDocPrinter 在后台打印程序的级别指定一个文档的结束
9 |- P- b+ D4 j' k$ yEndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页
; A& _% A8 I, D; AEndPagePrinter 指定一个页在打印作业中的结尾
& Z4 v+ V! k1 P6 wEnumForms 枚举一台打印机可用的表单 , j" J% o/ }, t8 M  L4 f
EnumJobs 枚举打印队列中的作业
8 [1 D4 c2 g* }EnumMonitors 枚举可用的打印监视器
# D; U3 H% `. u6 X5 FEnumPorts 枚举一个系统可用的端口
& D; J3 K3 A9 {7 wEnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序
4 f( }1 i% q- k) T: bEnumPrinters 枚举系统中安装的打印机
' p! a! R/ R4 G- VEnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型
) q. S- }8 @  {0 oEnumPrintProcessors 枚举系统中可用的打印处理器
% B( f0 P1 f; j( q+ ?Escape 设备控制函数 3 ^3 H8 Y4 S6 b
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 4 Z0 `( a# \! D: f8 c
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化 0 t4 u- G, q+ N  k) l
FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
0 ]* v5 s3 |: `3 N) X) VFreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 # C$ [; a" L' t$ Q
GetForm 取得与指定表单有关的信息
1 ~0 x$ D1 l* SGetJob 获取与指定作业有关的信息
, @# M& F- m. Z+ [4 N: EGetPrinter 取得与指定打印机有关的信息
, {% O4 |, F7 y% n8 J' \6 [# aGetPrinterData 为打印机设置注册表配置信息 * r" \3 T* l. f# z7 q" _7 x1 J  C
GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息
2 F3 n5 ~9 a8 P3 g6 S5 eGetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
- j: O2 `+ s/ d  L" BGetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录 5 ]. a8 y( w( l  ]/ K1 o
OpenPrinter 打开指定的打印机,并获取打印机的句柄 1 V8 T, m. u% {5 o' M6 j
PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框 ' s! D% M" x$ q+ R; q6 @) P  k
PrinterProperties 启动打印机属性对话框,以便对打印机进行配置 - c. T: e  M% d
ReadPrinter 从打印机读入数据
- F# g$ x4 s% |/ ~" oResetDC 重设一个设备场景 5 S9 N- m7 J2 ^- J/ Q9 o
ResetPrinter 改变指定打印机的默认数据类型及文档设置 ! e% `) p3 C( l! h7 Z4 W$ ?  ?9 n
ScheduleJob 提交一个要打印的作业
% m9 C) r) X" w; ~6 C+ QSetAbortProc 为Windows指定取消函数的地址
  T7 B2 X$ L) B9 M' z5 d/ _. KSetForm 为指定的表单设置信息 ' J# W6 ^# v4 d7 U
SetJob 对一个打印作业的状态进行控制
. E2 h+ j9 I# J, b2 FSetPrinter 对一台打印机的状态进行控制 : _0 S+ V' N. U8 M! X& n
SetPrinterData 设置打印机的注册表配置信息
: _9 \& V' V3 I7 ZStartDoc 开始一个打印作业
( Z7 K5 Y; X1 L9 C& A5 _StartDocPrinter 在后台打印的级别启动一个新文档
2 y# w0 N3 `( s5 T4 B& E8 N$ {- CStartPage 打印一个新页前要先调用这个函数   N8 b# b5 B1 U3 A8 T
StartPagePrinter 在打印作业中指定一个新页的开始 5 A% H$ `! z4 Q+ Z, o
WritePrinter 将发送目录中的数据写入打印机
' m  m# B. m7 o* O" J, N+ [5. API之文本和字体函数 ! C8 d3 c6 H* ~7 B, }( m
AddFontResource 在Windows系统中添加一种字体资源 . z5 u+ \  G9 o. R
CreateFont 用指定的属性创建一种逻辑字体 % S4 N' W( C5 ~2 N8 |- [( S
CreateFontIndirect 用指定的属性创建一种逻辑字体
8 }2 R3 B$ z/ K5 v$ nCreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统
6 T! i2 h! @7 `6 \/ ~DrawText 将文本描绘到指定的矩形中
* m' m/ Q$ R/ M3 n* q& h+ M* SDrawTextEx 与DrawText相似,只是加入了更多的功能 2 V4 T9 z$ A1 P- ?1 F/ ?
EnumFontFamilies 列举指定设备可用的字体
" A! Q( E0 S5 ^/ ^8 k0 l) fEnumFontFamiliesEx 列举指定设备可用的字体 , s. [# F% s2 m6 `8 x5 @2 @
EnumFonts 列举指定设备可用的字体 ) R; N6 M' z" K8 S& W3 g
ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
* w7 }# q' c* O: o3 EGetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 % ?: G' h3 f' ~1 h$ r- L
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小
9 K* ]0 P4 R0 R/ _) uGetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸 2 m5 w! ?) L- G* d" g# S
GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串 / Y- o! k" i, C7 x: {1 d; c8 G
GetCharWidth 调查字体中一个或多个字符的宽度 7 g9 K( j4 v! d
GetFontData 接收一种可缩放字体文件的数据
4 F  D. b+ Y" [+ ZGetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
/ p+ O( n9 I3 E7 P. SGetGlyphOutline 取得TureType字体中构成一个字符的曲线信息
) q" y; T- A) N3 [; mGetKerningPairs 取得指定字体的字距信息 # g; x" s* m2 a& w' |
GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息
7 u* O. @% h! ]/ _7 a( UGetRasterizerCaps 了解系统是否有能力支持可缩放的字体
4 b% r7 l1 a% M$ K5 qGetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 3 z3 E- j8 q! }- d' O' L
GetTextAlign 接收一个设备场景当前的文本对齐标志 $ m. E+ _2 ~) v7 }! C% u
GetTextCharacterExtra 判断额外字符间距的当前值
9 ~7 D6 ]! z, v/ g  k  xGetTextCharset 接收当前选入指定设备场景的字体的字符集标识符 . b5 ^* X' z0 g, `5 q  n0 F/ h6 Y
GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息
  p- u- W8 t* rGetTextColor 判断当前字体颜色。通常也称为"前景色"
& P' h# E/ |; X# t+ wGetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息 . T! Q% d2 r/ a5 p; H. T, \
GetTextExtentPoint 判断一个字串的大小(范围)
2 t7 v; G/ i! m3 z) LGetTextFace 获取一种字体的字样名
: b8 \8 W4 i8 k4 D, FGetTextMetrics 获取与选入一种设备场景的物理字体有关的信息
/ K! D: b' n0 X! @) aGrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 * r9 m9 E, ?6 [9 `! [
PolyTextOut 描绘一系列字串 ' ?, {5 N8 ]0 U8 ]6 M* R
RemoveFontResource 从Windows系统中删除一种字体资源
+ y) C8 s+ L$ D: t6 VSetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体
  x6 S; y3 t' L  OSetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置
' Y) m' @6 g' ~$ {# xSetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距
9 _) T8 e8 L5 \( gSetTextColor 设置当前文本颜色。这种颜色也称为"前景色"   s! w+ o+ Z6 q" ]
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理 % t  I' {1 {7 N9 l! C
TabbedTextOut 支持制表站的一个文本描绘函数 ( U; ]' A1 ~1 r. ~
TextOut 文本绘图函数
6 [: [4 M% j7 J( U6 I3 ]WINGDIAPI BOOL  WINAPI TextOut(; E  t; g1 F) J
HDC,     //输出设备9 O0 B5 U2 b3 A0 n
int,     //输出的横坐标; A( k6 @# p* o* R# ~
int,     //纵坐标
# e& T, H4 v6 \! |9 ZLPCSTR, //输出的文本str
8 e; n. }: U2 n: Q3 k* _* c. zint);    //文本的长度:lstrlen(str)! Z% I2 i' w# d
6. API之菜单函数 1 Y! Q: q3 R9 @' Q
AppendMenu 在指定的菜单里添加一个菜单项   L" U. i  y' ?) A+ Z! o+ m
CheckMenuItem 复选或撤消复选指定的菜单条目
- Z, z$ P, }7 H! @/ rCheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 ' O6 ]* N, G% B3 l$ r$ ]. H' \3 u
CreateMenu 创建新菜单
/ u+ ^' T8 d9 eCreatePopupMenu 创建一个空的弹出式菜单 - p# m+ `- D) h4 C5 y
DeleteMenu 删除指定的菜单条目
. J6 I8 L. k) m0 b& r6 j2 QDestroyMenu 删除指定的菜单
. w+ ]+ ^; M3 q- Y7 ~0 \DrawMenuBar 为指定的窗口重画菜单 & y8 b  G* o7 `' {
EnableMenuItem 允许或禁止指定的菜单条目   z# b2 z( _9 X$ p2 z/ {$ m
GetMenu 取得窗口中一个菜单的句柄
* Z) F0 q  G0 w- xGetMenuCheckMarkDimensions 返回一个菜单复选符的大小 9 y3 R4 ~# l" ^" i/ q. U) N
GetMenuContextHelpId 取得一个菜单的帮助场景ID # e; x+ N: j  `1 Q, I8 i$ {, S
GetMenuDefaultItem 判断菜单中的哪个条目是默认条目 2 h' M. i7 ^; h2 j! _6 G
GetMenuItemCount 返回菜单中条目(菜单项)的数量
1 t& o$ j( v9 y9 LGetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID 3 z  c2 d. m) j5 A. g
GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 . T% i: J& c7 I9 b
GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息
% Q* J. x7 }' P0 e1 g; MGetMenuState 取得与指定菜单条目状态有关的信息 6 Y+ T( I1 U" ]# h
GetMenuString 取得指定菜单条目的字串
  C7 S0 p: J  q: z# HGetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置
2 i/ k& }3 l( l1 |! b; FGetSystemMenu 取得指定窗口的系统菜单的句柄
6 v- s" q0 o+ cHiliteMenuItem 控制顶级菜单条目的加亮显示状态 4 J8 E; o) M3 f: W( e7 ~
InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
' O; Q/ m$ L3 mInsertMenuItem 插入一个新菜单条目
2 Z/ X) v" \- D2 U" ~% ^$ H0 ^* KIsMenu 判断指定的句柄是否为一个菜单的句柄
% B5 h) {7 W: p$ [LoadMenu 从指定的模块或应用程序实例中载入一个菜单
' i6 `" z' |1 Z9 h+ m0 U% _& H; pLoadMenuIndirect 载入一个菜单   E! ~4 Z& R. G
MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 + r* X% r9 ^9 {9 M  L
ModifyMenu 改变菜单条目
; [$ D& T! _  @9 N& rRemoveMenu 删除指定的菜单条目 " a& I3 t- B# G( M
SetMenu 设置窗口菜单
) |) |$ i) Y5 i* d" {SetMenuContextHelpId 设置一个菜单的帮助场景ID
8 j  |3 D7 O1 y' CSetMenuDefaultItem 将一个菜单条目设为默认条目 7 @$ G3 G) b3 ~3 @( c
SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√) * e, `% ^- _! e& |6 Q' ^
SetMenuItemInfo 为一个菜单条目设置指定的信息 * F7 I: p. s  l" b
TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单 9 z6 w1 `+ w0 o# A- b
TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能
7 i; z; Y( x. [7. API之位图、图标和光栅运算函数 9 _: ], ^0 d1 X$ K- O% |
BitBlt 将一幅位图从一个设备场景复制到另一个* D$ W; ^% A$ G  y2 m
     WINGDIAPI BOOL  WINAPI BitBlt(: {- l+ n+ K0 ^8 G2 L) ~0 |4 ^; @
HDC,     //目标HDC
6 A5 t, S& y7 |. H- g9 G  Lint,     //X1( X$ t% M% D2 ]7 j% n
int,     //Y1& }( e! k9 u) {5 Q
int,     //width* v' ~" ~, P/ f2 M1 h5 w
int,     //height8 ^- O) ^. t- O& S
HDC,     //源HDC
. S  s9 y7 X3 y0 |" X# {5 Hint,     //右边的距离
9 s; p. w$ ]- f. v8 Bint,     //??
) j7 f9 G1 G% N* Q4 G. M0 LDWORD);  //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|- c+ C) |  {6 E2 V, r- p' K" p" V& M
PATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS; @) x9 ~& X" {  g
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
: f$ r. a+ X( o& ^6 U" gCopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作 ' e8 V1 {/ t: D  E, u) _- r
CreateBitmap 按照规定的格式创建一幅与设备有关位图
; j( J4 H8 j0 ^) e% M% n& bCreateBitmapIndirect 创建一幅与设备有关位图
* I1 L+ R; i" `, s, n. }$ ZCreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容
' v2 X5 Z/ D* ]1 MCreateCursor 创建一个鼠标指针 - r0 n, s0 E1 }4 Z
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图
: |% Z: C$ I5 x2 K; X5 z" NCreateDIBSection 创建一个DIBSection % T6 J. a! b$ I$ Q' ]% s4 s0 @
CreateIcon 创建一个图标 6 I: E9 ?! _; A; D
CreateIconIndirect 创建一个图标 & k4 q' t5 `& o9 s6 V9 T6 E% Y
DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 + w2 h, e3 V( B/ f; Z' O7 b
DestroyIcon 清除图标 ) X3 m5 |- t# s* X
DrawIcon 在指定的位置画一个图标
8 _& x  d$ y; n/ ]DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
0 ~' n1 e8 F3 l  F+ wExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
( Z$ c0 r# |; C, F/ o" E" ~ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来 6 n( Y) d, l5 @5 a; d
GetBitmapBits 将来自位图的二进制位复制到一个缓冲区 , E+ L# ]$ z# U' ~1 D) j& M9 [$ `
GetBitmapDimensionEx 取得一幅位图的宽度和高度
( w" H: U" V" V, U& b+ ]+ JGetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息 7 K+ |7 U" U) H; r$ g7 E
GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里
3 \1 l7 J( Y& L9 n+ [GetIconInfo 取得与图标有关的信息 % @; Y2 L, N# q& c: ]4 g6 b$ g+ M
GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式 4 F  n+ ^+ x# D6 i8 x! E, K
LoadBitmap 从指定的模块或应用程序实例中载入一幅位图
6 y5 _/ g4 r2 y6 DLoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针 * B) G$ l( `, D1 L
LoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 . m9 o) w7 |- ~' W: `5 m4 {& s7 I
LoadIcon 从指定的模块或应用程序实例中载入一个图标 : K2 r3 R. F2 Q0 C' a
LoadImage 载入一个位图、图标或指针 ( q* M2 Q/ |6 E4 J2 s4 U1 z
HANDLE LoadImageA(6 P  W% e$ T. w# i% r, G
HINSTANCE,            //当前实例句柄:AfxGetInstanceHandle(); G& U8 M7 x5 Y- }2 R* I( @$ n
    LPCSTR,               //资源所在的目录:c:\help.bmp
, t! r0 {, Q4 E- I7 e5 ~    UINT,                 //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE5 a5 S1 c4 ~+ s7 n5 x+ h9 N
    int,                  //' y$ Z7 f" S* Q" J5 C$ |
    int,                  //
7 {" p& ]3 \  d4 T" BUINT);                //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|! d/ ?# b7 p+ G1 e. M5 @
R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|
3 A9 C% R! t" p) YLR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED* m9 ?$ |* j4 W1 ^3 x2 {+ @  l
MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理
, h% A6 G8 H* L- ?8 h  l: q# i" ]; cPatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景 . e  r# z" ^  E, b8 U2 n5 W
PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
! V! T- e4 A5 `3 i4 u. y( T0 ASetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 ; g! x0 |! X, U* B
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 3 B3 L) b8 n, m- `0 d+ b" Y# q; c
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息
1 o7 f9 f: m5 q% w* x; o( e5 {SetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里
7 x* ], I, G; e  gSetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备 & M$ A$ T& s) U5 B# g
SetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式
1 g. y7 V( T' Q5 Q+ xStretchBlt 将一幅位图从一个设备场景复制到另一个 + L  B- D1 o0 C) x: a3 f0 a3 J
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
  @. `! D* w) ]9 N0 M: Z9 H8. API之绘图函数
* v, r0 F, m3 rAbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
$ T1 w/ Z8 A$ q& t* }8 W3 vAngleArc 用一个连接弧画一条线
9 y! v9 O/ \2 s9 b+ ~; `8 uArc 画一个圆弧 ) D$ X3 H2 N( R# J; q& n' I
BeginPath 启动一个路径分支 5 f8 h# }0 H- C: {- f5 e
CancelDC 取消另一个线程里的长时间绘图操作
; ^; b8 f) d: \  D* W; GChord 画一个弦
$ ~: T  @" t# d1 T& wCloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄
; z, b+ h; P0 p' o7 E1 F8 cCloseFigure 描绘到一个路径时,关闭当前打开的图形
5 e* {6 S/ `" ICloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 7 S6 a) U% y) [/ j: X" b# `, q' ]
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
) e9 W* `& w3 Q) U2 `% GCopyMetaFile 制作指定(标准)图元文件的一个副本 3 i( F& Y+ c1 m1 n
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子 $ V) o  T8 T" h& i% l! W+ w* f+ _3 D
CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) - _2 t) |$ X6 f/ K, U) X
CreateEnhMetaFile 创建一个增强型的图元文件设备场景
8 W* G( X; @9 ^; Y+ X5 ICreateHatchBrush 创建带有阴影图案的一个刷子 # M) z- Z5 d% w3 t! ~; n
CreateMetaFile 创建一个图元文件设备场景
/ p. N3 j' `0 T- Q3 cCreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子 . p' D8 m! n9 b
CreatePen 用指定的样式、宽度和颜色创建一个画笔
9 R* s9 n, o9 w/ @CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
" s  q! B1 ?2 l- R$ o3 i) V- FCreateSolidBrush 用纯色创建一个刷子
- F7 a, A" P" e* S% R- |DeleteEnhMetaFile 删除指定的增强型图元文件 / Z  U+ @: n7 E) \/ y% l) A
DeleteMetaFile 删除指定的图元文件
# S: [  b6 S( y1 KWINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放2 @1 u: k# K; B$ T' c
DrawEdge 用指定的样式描绘一个矩形的边框
, S3 D: v% x( p8 P2 R4 ]! gDrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
, g; @' M" ?' ~7 f/ e' ^DrawFocusRect 画一个焦点矩形 * o9 d% D. ~$ a* B* F* ~
DrawFrameControl 描绘一个标准控件
! z+ n9 ~. O* t! fDrawState 为一幅图象或绘图操作应用各式各样的效果
" E. M8 f/ j6 e1 N/ {. Y9 UEllipse 描绘一个椭圆,由指定的矩形围绕
" U: Z. R$ l1 y0 o" X8 wEndPath 停止定义一个路径
9 y( f9 J' X' o1 nEnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录 4 z  e0 P% B. R# p2 K7 X5 \: G
EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
& ~* h* |$ V4 T# C; Q1 a5 p: oEnumObjects 枚举可随同指定设备场景使用的画笔和刷子 6 X* n6 D! p5 l
ExtCreatePen 创建一个扩展画笔(装饰或几何) ) Z& ^  ^  c: a
ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
6 x0 j% b2 b& C' [FillPath 关闭路径中任何打开的图形,并用当前刷子填充
0 Z# c& _- Z: hFillRect 用指定的刷子填充一个矩形 & ?- x# H; S% E' i: g8 R( y
FlattenPath 将一个路径中的所有曲线都转换成线段 5 b  G4 y5 X. z% A+ Y
FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
& Z: S3 e. A, U0 NFrameRect 用指定的刷子围绕一个矩形画一个边框 # z& R$ g3 f: h3 E+ q% {: `
GdiComment 为指定的增强型图元文件设备场景添加一条注释信息 4 o$ E8 r3 }' _& `; E! U2 j  }5 N3 E  C
GdiFlush 执行任何未决的绘图操作 ' Q" _+ b+ H( D& H
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中
+ p) {2 \3 X; D, _GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列
. W+ ?" L( f; @; w2 CGetArcDirection 画圆弧的时候,判断当前采用的绘图方向 8 S! K/ x; H  X$ @7 s" O9 n$ P
GetBkColor 取得指定设备场景当前的背景颜色
8 i( Q! A( Q2 R# b; b7 `1 K% {  J* qGetBkMode 针对指定的设备场景,取得当前的背景填充模式 3 u0 C8 E7 y+ M* M
GetBrushOrgEx 判断指定设备场景中当前选定刷子起点 ( n$ O  S2 M' D# c; i2 e: q
GetCurrentObject 获得指定类型的当前选定对象 / }5 X" X( H7 g: H- o7 J  \
GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置 ! e* T7 H6 ~- N; B* K
GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄 4 G+ |2 C4 m4 j" l0 w
GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里
5 F) L  x! h9 |/ Y6 G5 _GetEnhMetaFileDescription 返回对一个增强型图元文件的说明 ( w! O% r; I: {- q1 p
GetEnhMetaFileHeader 取得增强型图元文件的图元文件头
9 p- }8 g- \4 V: Y( DGetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 8 m5 T- R& S0 }" u7 t; U6 o
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 * R4 c) P7 j) F* P$ M
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区 8 {! I  P2 t# J9 J$ v
GetMiterLimit 取得设备场景的斜率限制(Miter)设置
9 V  }! u7 a0 m5 f) PGetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
6 J  o( S' Z& f! v) P+ R. iGetObjectAPI 取得对指定对象进行说明的一个结构 7 a7 k6 f5 o5 s- R9 l: L7 r" L: V
GetObjectType 判断由指定句柄引用的GDI对象的类型 ! |- X1 u8 L8 j0 o- T
GetPath 取得对当前路径进行定义的一系列数据
$ {. c* Y4 z9 K  xGetPixel 在指定的设备场景中取得一个像素的RGB值 1 T2 H' a& S' V5 A* E/ v5 `
GetPolyFillMode 针对指定的设备场景,获得多边形填充模式
+ r3 f( @+ Y! q  v, H  ~, P9 z$ _GetROP2 针对指定的设备场景,取得当前的绘图模式
% r/ Z! A: E! w  b& Q: m: ?# t% GGetStockObject 取得一个固有对象(Stock)
* L5 ^( [/ [, \0 e' ]/ ^  f/ L6 LGetSysColorBrush 为任何一种标准系统颜色取得一个刷子
. l& C$ v( Q* }! c  ~) I# _7 p, fGetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件
0 e. M) I3 |+ y4 K0 xInvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形 0 a" B' T7 t  {0 _% W' _
LineDDA 枚举指定线段中的所有点
5 F( Q6 |9 ^/ j* iLineTo 用当前画笔画一条线,从当前位置连到一个指定的点
$ H( |3 y& X- G5 P( I7 HMoveToEx 为指定的设备场景指定一个新的当前画笔位置
! [3 a. h$ G5 ~# ~( A: APaintDesk 在指定的设备场景中描绘桌面墙纸图案 4 U( t; g9 |/ y: X7 v& ^
PathToRegion 将当前选定的路径转换到一个区域里 ) L4 V5 p3 Q& c# v
Pie 画一个饼图 # [& Y1 r  E) ~; c& B: }8 y2 E
PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件
& [3 o& t# N+ EPlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 2 z" d: Y9 g+ I5 b
PlayMetaFile 在指定的设备场景中回放一个图元文件 ; e% ?3 D8 o" _) G: a1 ^) y% }1 n: [* W
PlayMetaFileRecord 回放来自图元文件的单条记录
" m% @- e" V, Z# Z9 `PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
/ U9 y0 x6 d% B6 Z- c( U6 A$ \9 ?PolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成 : F0 c0 ~) {+ l6 V9 J2 J  i' C  J9 V
Polygon 描绘一个多边形
8 ?; d1 Q. q$ G! o7 OPolyline 用当前画笔描绘一系列线段
" Z, I- X5 ?, }/ m5 kPolyPolygon 用当前选定画笔描绘两个或多个多边形
- ^8 G" i+ n1 a4 J* gPolyPolyline 用当前选定画笔描绘两个或多个多边形 . R. g* ]8 Q! n! m  `
Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充
2 k, }/ ?) s$ s5 |RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充 ) D, u' [, |5 ~
SelectClipPath 将设备场景当前的路径合并到剪切区域里
. F$ }' j  f* `% o: q  O8 A& H7 TSelectObject 为当前设备场景选择图形对象 6 h6 W. K- U  G6 _0 h
     WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);  F$ z- y6 T2 k" J$ E% i$ J. L$ z/ ?
SetArcDirection 设置圆弧的描绘方向 - L. z! Q7 e+ n) D6 d
SetBkColor 为指定的设备场景设置背景颜色 9 h0 z3 d3 M' Q! p
SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式 * e( ?. s5 j+ l0 ^6 \$ G7 o( T1 C
SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点 # v& _- {4 h/ I2 K8 K" n, h
SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件 9 M6 I3 R0 `9 p- p& R- M
SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 0 u- w/ K. F7 O
SetMiterLimit 设置设备场景当前的斜率限制 + r6 z4 x  J1 f2 b( X9 B
SetPixel 在指定的设备场景中设置一个像素的RGB值 2 W! E; ~- R1 Q
SetPixelV 在指定的设备场景中设置一个像素的RGB值
% I! F3 X/ s  s8 m& Q0 y* kSetPolyFillMode 设置多边形的填充模式 4 @, L" j- F% d  [0 z3 v" z9 K
SetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致 $ c5 x5 C& _0 ?+ h& v: P
SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 & R+ H* i5 t0 V, ~5 Q5 K% a
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域 ' A% E1 }$ a* i; J7 S- j) l, l
StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭   q3 P$ n- p8 n
UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数
0 a8 N* R; w$ d' P: B! N, GWidenPath 根据选定画笔的宽度,重新定义当前选定的路径 " O% ]8 k# v9 ], }) Z
9. API之设备场景函数
3 L# X& ^/ Z( x# k5 `8 NCombineRgn 将两个区域组合为一个新区域 $ s' V6 H; ?! x7 `/ ]
CombineTransform 驱动世界转换。它相当于依顺序进行两次转换
$ Q' E+ `  Z8 Q( F6 \+ K. |CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景 ! t8 l) c, k; y3 c# E3 n  {
CreateDC 为专门设备创建设备场景 5 M" e: y$ ~6 x5 Q% l3 u0 o
CreateEllipticRgn 创建一个椭圆 2 _8 U. F" B& }+ P7 l" Q
CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域 $ l  }+ R2 n. J) K
CreateIC 为专用设备创建一个信息场景 ; |$ D* B% s  v2 A. x. I
CreatePolygonRgn 创建一个由一系列点围成的区域 ) i) m4 V, f# d9 S0 M
CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的
5 G* l4 D, R& p! RCreateRectRgn 创建一个矩形区域
" j( C+ Y/ |2 A. ?CreateRectRgnIndirect 创建一个矩形区域
! g5 f) }1 Y' o1 z8 kCreateRoundRectRgn 创建一个圆角矩形 " y  D6 F$ H& T9 u' x! i( q
DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源
3 _  s( G  ?" |& }4 U$ {DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标
) B% x! P9 _5 g7 Y3 V1 R; oEqualRgn 确定两个区域是否相等 9 M4 ~% O+ l6 o3 j
ExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图
# R; e3 i' y+ Y6 R5 m+ J  gExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域 * }9 }- P( R( v2 Y( q5 ?/ K
ExtCreateRegion 根据世界转换修改区域 " ?: G2 Z4 P, H0 R$ e8 J  e! i: e/ j" l
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区 3 ~5 P9 u% \7 m, k6 t
FillRgn 用指定刷子填充指定区域 & y5 i$ [# {7 V2 M9 k; ]
FrameRgn 用指定刷子围绕指定区域画一个外框 % W. G1 Z" S0 F
GetBoundsRect 获取指定设备场景的边界矩形 . a% {# G7 z" s7 X2 B/ i0 e' J9 b
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形
3 b, K: h. q+ v0 o7 H5 OGetClipRgn 获取设备场景当前剪裁区
6 B) K; L. t  y; VGetDC 获取指定窗口的设备场景 * g' M/ L' D* D; s) j
GetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项
/ Y9 Y" a! i* k1 jGetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示)
7 z2 P. n9 P+ @+ d. t' TGetDeviceCaps 根据指定设备场景代表的设备的功能返回信息
8 j. p: J1 J, i8 r5 b& x& UGetGraphicsMode 确定是否允许增强图形模式(世界转换) 4 ]. k+ P, g% z4 }: c1 D2 G
GetMapMode 为特定设备场景调入映象模式 % w. p9 }4 X( v% [' u! ]- C3 j
GetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
- b4 S* ~, y  U) ?3 P' E; MGetRgnBox 获取完全包含指定区域的最小矩形   r( y, C9 x( a. g& f* B
GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新
# `. g: M$ b) a8 a" V" }GetViewportExtEx 获取设备场景视口(viewport)范围
  d& B4 Z, E# E; [( Y' OGetViewportOrgEx 获取设备场景视口起点 : a4 `0 G$ B) d9 t% Z. M
GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景
& t  B; W/ E- wGetWindowExtEx 获取指定设备场景的窗口范围
* ^1 @% K  I1 r# rGetWindowOrgEx 获取指定设备场景的逻辑窗口的起点
6 K8 z! T* o3 [GetWindowRgn 获取窗口区域 ) @2 b3 Z1 `6 M0 y0 P' H" o& q
GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换 3 C- Y/ Z* T& [$ b$ E, y
IntersectClipRect 为指定设备定义一个新的剪裁区
5 b! J& u4 R# ?% M+ h: Y1 n/ bInvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画 * S# I! i9 N) p0 E5 I
InvertRgn 通过颠倒每个像素值反转设备场景指定区域 6 B+ X6 K3 r! M6 `' y: R, a+ G* ~
LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标
0 W) Y* F) J/ b* E( \ModifyWorldTransform 根据指定的模式修改世界转换 + q6 s' @" _2 W
OffsetClipRgn 按指定量平移设备场景剪裁区 7 u4 c. l- t* W" m, Z
OffsetRgn 按指定偏移量平移指定区域 # R" F! j% K+ h% o' _: a
OffsetViewportOrgEx 平移设备场景视口区域 & G6 M2 H" V! g4 z9 u, m5 \
OffsetWindowOrgEx 平移指定设备场景窗口起点
; i% ?7 S: p/ ~8 X7 [/ r  z6 K# vPaintRgn 用当前刷子背景色填充指定区域
7 K! P* l) t5 oPtInRegion 确定点是否在指定区域内
3 |5 |: ?* h7 }1 ]- o$ GPtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)
4 v8 |" v: i4 n1 DRectInRegion 确定矩形是否有部分在指定区域内 : D9 F1 T1 @" U( K
RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内)
! f% d# o" Q( A, I2 F1 Y- pReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景 . }0 y) D' j  X/ L: R5 `
RestoreDC 从设备场景堆栈恢复一个原先保存的设备场景
) o% ~- D  D4 n9 u! _: W; uSaveDC 将指定设备场景状态保存到Windows设备场景堆栈
2 b2 A8 C* A/ P4 i; G$ T" A% PScaleViewportExtEx 缩放设备场景视口的范围 ' M' J/ }! r# T: a
ScaleWindowExtEx 缩放指定设备场景窗口范围
, _( d* {7 C- l! gScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
3 O5 J  |% j! ~: HSelectClipRgn 为指定设备场景选择新的剪裁区
% f5 m7 ]# N1 z2 v* F2 gSetBoundsRect 设置指定设备场景的边界矩形
% Y7 T; \/ V; d# rSetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换)
  c  A# M% Q* D/ w! rSetMapMode 设置指定设备场景的映射模式 2 t+ V+ {/ b. P0 l; m, G7 z. W) o
SetRectRgn 设置区域为指定的矩形
$ _5 \1 T) B& g  u" n( rSetViewportExtEx 设置设备场景视口范围
4 c8 Y( j6 [* V6 w3 MSetViewportOrgEx 设置设备场景视口起点 2 d& D) h0 Q2 N3 X0 I
SetWindowExtEx 设置指定设备场景窗口范围
( N3 {0 ?$ M% HSetWindowOrgEx 设置指定设备场景窗口起点
5 w1 z2 V+ [( g6 R; ^6 U) @6 LSetWindowRgn 设置窗口区域 5 f4 c2 W8 K' \' Z1 K
SetWorldTransform 设置世界转换 , n' o/ [- G8 J& |2 x
ValidateRgn 激活窗口中指定区域,把它从刷新区移走 6 z, [, M. E& B0 O- I% Y' b# o
WindowFromDC 取回与某一设备场景相关的窗口的句柄
- T: ]& p) d# Z4 d! Q7 }8 A10. API之硬件与系统函数 ; \7 U9 W: L4 g; i# y' _
ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义
9 b. ~- m; \$ T" YBeep 用于生成简单的声音   A" _/ P+ j. n1 X* z
CharToOem 将一个字串从ANSI字符集转换到OEM字符集   r- Q3 I1 f2 M
ClipCursor 将指针限制到指定区域 3 w4 Y0 M! I, @6 i; R, X
ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID ; Q' C: b9 X6 t: F
CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符
1 i+ G; j" P* u) x( F* _DestroyCaret 清除(破坏)一个插入符
: c, w4 T% f; D# PEnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息
0 t7 d0 |# g# {4 r# z; HEnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式 ) V: Z2 k6 l5 o, q( G9 k( x
EnumSystemCodePages 枚举系统中已安装或支持的代码页 6 O7 y) d1 a! e3 F' N, j
EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置
# ?( d2 ?- g: n. B8 {EnumTimeFormats 枚举一个指定的地方适用的时间格式 6 w! n6 i  `  r
ExitWindowsEx 退出windows,并用特定的选项重新启动 9 V0 {$ X9 P8 ^* ^
     WINUSERAPI BOOL WINAPI ExitWindowsEx(  K2 a  X% d$ C8 L# k
UINT uFlags,       //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG9 ?4 s6 H* O2 |  G* q
     DWORD dwReserved); //0
' R( Q+ F  h) }- X  a7 k* f. jExpandEnvironmentStrings 扩充环境字串
$ S4 W: O; s5 _0 NFreeEnvironmentStrings 翻译指定的环境字串块 & a$ [/ M% |* q5 b
GetACP 判断目前正在生效的ANSI代码页 * s3 ?, s, y5 i
GetAsyncKeyState 判断函数调用时指定虚拟键的状态
6 D) I9 y1 s! b. e* ^/ N( wGetCaretBlinkTime 判断插入符光标的闪烁频率
4 P6 l0 V- Q7 f$ L& UGetCaretPos 判断插入符的当前位置 & E9 \  w8 h) J9 O6 B0 r& p
GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域
% i, @' d3 ?$ e# g/ N. `, I) EGetCommandLine 获得指向当前命令行缓冲区的一个指针
- ]3 @" e1 z3 J$ pGetComputerName 取得这台计算机的名称 6 u6 S! ^+ J8 M6 C0 g
GetCPInfo 取得与指定代码页有关的信息
# x& M0 T, B3 P8 h& EGetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字 7 [7 f6 p; W1 T4 R6 f  w
GetCursor 获取目前选择的鼠标指针的句柄
" f; }" z( K1 bGetCursorPos 获取鼠标指针的当前位置 : L1 J( s# R# B/ `/ P+ O9 G
GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化 : O* d4 u1 w# F+ s- z
GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 " q# E! J& r! T; J: Y
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄 6 @7 a$ n6 V5 H
GetEnvironmentVariable 取得一个环境变量的值 ! E7 G$ l' M0 t
GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件 0 f% D$ \+ v0 u7 W; t1 l
GetKBCodePage 由GetOEMCP取代,两者功能完全相同 / {$ S9 z) Y& t- D4 F; R# z9 B0 x
GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
& K- E1 _# f) b7 K9 A; F6 c0 i3 D& SGetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表 ' ^6 x& t& v8 D- v7 B7 c
GetKeyboardLayoutName 取得当前活动键盘布局的名称
& @% S/ \1 T( ^% GGetKeyboardState 取得键盘上每个虚拟键当前的状态 . z. w+ ^8 g& t' d! c( U! s
GetKeyboardType 了解与正在使用的键盘有关的信息
" ^: k. V- o7 n6 pGetKeyNameText 在给出扫描码的前提下,判断键名
& j' t+ }$ a9 m1 }GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 7 d, _% q) g4 g: B5 y( r7 f2 |& D
GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
! b6 m( z, x' I. K7 sGetLocaleInfo 取得与指定"地方"有关的信息 4 ~2 t+ [8 b& W* j; J
GetLocalTime 取得本地日期和时间
: ]0 T5 L6 }/ Y( |GetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字 ' A- K7 ?( v, g& ]4 d; t
GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
+ ?6 g3 q" k% J7 C. O1 x2 MGetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
# _! \/ _; U" A. c) r' X/ g4 O9 L7 ]GetSysColor 判断指定windows显示对象的颜色 6 p5 B- s0 t8 ^
GetSystemDefaultLangID 取得系统的默认语言ID
$ q( Y: w1 e- _5 i6 c6 Y& D# uGetSystemDefaultLCID 取得当前的默认系统"地方"
: J( r; v7 X0 x, E& ]GetSystemInfo 取得与底层硬件平台有关的信息 - X9 x' R0 e$ ^) u( L" Z0 |2 S
GetSystemMetrics 返回与windows环境有关的信息 3 D2 X8 N* P' U& _
GetSystemPowerStatus 获得与当前系统电源状态有关的信息
6 Z! A6 m1 A" S* k4 A5 uGetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式
7 y& I5 {7 v1 s& r4 nGetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步
7 r/ U8 e9 N; T+ a/ PGetThreadLocale 取得当前线程的地方ID
/ l& C2 o* E! w/ S: z6 |+ w0 P% [' i/ @GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒) ! Y! B8 k2 O4 C; e: L$ D+ i" X* h; N
GetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间
& [. u& W( Y0 M! vGetTimeZoneInformation 取得与系统时区设置有关的信息
  M5 r/ v6 x# l  DGetUserDefaultLangID 为当前用户取得默认语言ID
6 u. G! P) c' |GetUserDefaultLCID 取得当前用户的默认"地方"设置 " E1 G  {! t* E
GetUserName 取得当前用户的名字
# D/ A! z% J" g. N, nGetVersion 判断当前运行的Windows和DOS版本 ) k! `9 X8 I# B3 P
GetVersionEx 取得与平台和操作系统有关的版本信息 7 w( D: n7 i; A/ n) K
HideCaret 在指定的窗口隐藏插入符(光标)
* Z- S/ h& w$ Q4 S5 G+ `, M& O  ^IsValidCodePage 判断一个代码页是否有效   E+ I8 F; e; {9 |/ {
IsValidLocale 判断地方标识符是否有效
3 A6 H: l5 E. c8 }7 Xkeybd_event 这个函数模拟了键盘行动 7 N- Q% M/ o" _
LoadKeyboardLayout 载入一个键盘布局
% o! F3 U( n8 e& z7 t; ]* mMapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换
0 a  R8 w; [/ H% T9 ^, G0 hMapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换 % ~* C! {; [" D# L* W" j
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的
0 m5 {8 D6 A4 j: S: G. T% W. B0 Fmouse_event 模拟一次鼠标事件 : M0 J' p* Y4 D1 G
OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态 + Z; g  m* n( j" K6 k
OemToChar 将OEM字符集的一个字串转换到ANSI字符集   J+ N2 C5 l3 v6 b! o' F8 o
SetCaretBlinkTime 指定插入符(光标)的闪烁频率 ; d* N1 \4 T) O/ H
SetCaretPos 指定插入符的位置
- u: B2 D8 y1 x. fSetComputerName 设置新的计算机名   J6 H2 x" }$ z$ ]
SetCursor 将指定的鼠标指针设为当前指针 $ L4 m9 R7 v" g$ @5 X4 W# U
SetCursorPos 设置指针的位置 # E2 G/ Z$ O; X1 Z2 [7 \
SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间
& x* T1 e# Z2 ~$ Y0 ySetEnvironmentVariable 将一个环境变量设为指定的值
( f2 R! m- v" x  z  n0 `SetKeyboardState 设置每个虚拟键当前在键盘上的状态 & `. J4 ?+ m+ N7 L
SetLocaleInfo 改变用户"地方"设置信息 ( M* s' @0 Z4 C, A7 T) t3 j' q* W
SetLocalTime 设置当前地方时间
% e* h& W; D' Z: ^; u! `) l4 GSetSysColors 设置指定窗口显示对象的颜色
# d2 `' T+ u, E4 t5 w5 M+ W2 rSetSystemCursor 改变任何一个标准系统指针
; {1 P3 k5 O) \& X6 ~/ p# xSetSystemTime 设置当前系统时间 . e5 r2 {, g- e/ |
SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 ! L4 s% Z* N( K9 @
SetThreadLocale 为当前线程设置地方   e4 q. L, K* Q4 u0 G- E7 a
SetTimeZoneInformation 设置系统时区信息
& ~0 Z0 @' k$ l4 o: `ShowCaret 在指定的窗口里显示插入符(光标) 0 f  D6 Q) p& o. ]! o9 N1 ^
ShowCursor 控制鼠标指针的可视性
$ {8 h3 \" ?) S- q3 w. s, BSwapMouseButton 决定是否互换鼠标左右键的功能 9 r# r$ I) |0 M- Q' k; n. I& X0 }
SystemParametersInfo 获取和设置数量众多的windows系统参数 8 K2 m' M: o  q- l, c% m+ j# P, `
SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间 3 m- `! _6 `9 Y: w% D6 z
ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符 . x' ^7 A. Z$ R( Z, _- ^
ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
' ?! l4 J+ `" v7 L" M' `UnloadKeyboardLayout 卸载指定的键盘布局 6 K% D4 b( G: G: T4 b
VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态
3 j/ @& l* N+ s4 _4 z5 Q" ]$ D11. API之进程和线程函数
# A; T5 J( s) n8 TCancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作
$ N; `; o5 K7 T0 ]9 `5 x1 OCallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 & V; t  r& e: a* W  ~" b% m, S& {
ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接
9 ]  c+ b4 {4 M' k1 L8 oCreateEvent 创建一个事件对象 6 `/ Z7 O; o/ }9 `7 r, |
CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人) $ s7 P& E4 l, Q
CreateMutex 创建一个互斥体(MUTEX)
8 {5 v2 ]6 ?3 G( E3 tCreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用 / P, y5 R: e8 M0 `* D' Y8 S
CreatePipe 创建一个匿名管道 7 G" o& D/ m) m9 t
CreateProcess 创建一个新进程(比如执行一个程序) ' R, c. r, S8 p6 Z8 e7 D0 [2 [4 a
CreateSemaphore 创建一个新的信号机 $ A& D6 [9 h( g, }
CreateWaitableTimer 创建一个可等待的计时器对象 6 K: Q, |; v( ~: G, @
DisconnectNamedPipe 断开一个客户与一个命名管道的连接 % @/ K2 p4 }2 j. R
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄
$ r4 X) k, o8 K+ o( G: AExitProcess 中止一个进程
* b/ O2 v% f7 r7 J3 t& L1 XFindCloseChangeNotification 关闭一个改动通知对象
% ]# `) u0 F2 v2 zFindExecutable 查找与一个指定文件关联在一起的程序的文件名 4 |1 u# W; H! B# U
FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化
  K8 A' s' h  n! n3 M8 rFindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 & y1 R$ k2 Y2 x, E
FreeLibrary 释放指定的动态链接库
( D- d0 A0 A$ k1 q/ F7 HGetCurrentProcess 获取当前进程的一个伪句柄 " ?; c3 a  y. S. h
GetCurrentProcessId 获取当前进程一个唯一的标识符 3 f8 E7 ]: L! h9 E. y6 Q3 s. Q) b
GetCurrentThread 获取当前线程的一个伪句柄 ! `1 i' Z0 x7 @  u/ |
GetCurrentThreadId 获取当前线程一个唯一的线程标识符
5 O- E& q* n0 C% V* x( X- G8 WGetExitCodeProces 获取一个已中断进程的退出代码
# s. A8 H' m: m7 H* Z1 \! WGetExitCodeThread 获取一个已中止线程的退出代码 * z3 Y$ g' t6 h
GetHandleInformation 获取与一个系统对象句柄有关的信息
. Q: G  P$ t$ s2 `& \+ f) `3 RGetMailslotInfo 获取与一个邮路有关的信息 % K7 [) l9 o8 Q# G5 Y
GetModuleFileName 获取一个已装载模板的完整路径名称 5 S5 {6 K" a  Y% z" I
GetModuleHandle 获取一个应用程序或动态链接库的模块句柄   {$ j$ Y; ?9 C) a; W& B: i, T" O
     GetModuleHandleA(LPCSTR lpModuleName);
" w6 @: R( G" n5 G" sGetPriorityClass 获取特定进程的优先级别
0 Y# M; s% q" ~: a3 L- IGetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况
& K4 |7 {7 X" g  ]GetProcessTimes 获取与一个进程的经过时间有关的信息
7 Q# j: H4 M% V0 b! f! HGetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存 ! F( a9 X8 a" K* r) m+ g1 c; j* |
GetSartupInfo 获取一个进程的启动信息
5 a" X3 u8 t% G0 O/ A- ~GetThreadPriority 获取特定线程的优先级别 ' S  f3 P4 P) K
GetTheardTimes 获取与一个线程的经过时间有关的信息 ( K: @* J, E! C/ U8 _
GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符 2 N% @" R7 ~% e4 ]- ?
LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
% z" [" H! S7 v) x1 b3 ~LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间 $ E3 [# |0 k, L* _2 _
LoadModule 载入一个Windows应用程序,并在指定的环境中运行
* a! U2 I7 g& ^4 A' H8 zMsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回   ~, A; N  l* s- t
SetPriorityClass 设置一个进程的优先级别
% d& ]+ c) }& S' D' D) ~: K9 XSetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
6 H1 A5 E7 K; h; d- j& U' ZSetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量
( Q2 y9 V: N! `' u* T9 ASetThreadPriority 设定线程的优先级别
- y! s$ u# n4 k1 @6 vShellExecute 查找与指定文件关联在一起的程序的文件名 ( }; V+ e0 q0 e; `
TerminateProcess 结束一个进程 6 v( A4 r# q8 `
WinExec 运行指定的程序 ( `) N5 R9 G6 o* C! s/ c9 @0 V' W
12. API之控件与消息函数
1 j& C) j. D6 l- Q: R% \AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 0 ^6 |7 s5 q9 T
AnyPopup 判断屏幕上是否存在任何弹出式窗口
1 q; Q  v( X& Y: j7 \ArrangeIconicWindows 排列一个父窗口的最小化子窗口 ' G* x  p3 h4 s9 k3 I
AttachThreadInput 连接线程输入函数 * Q' {% x/ r- h! B8 A7 b
BeginDeferWindowPos 启动构建一系列新窗口位置的过程 1 W/ \. m" b, _' N4 E
BringWindowToTop 将指定的窗口带至窗口列表顶部
; @. n9 z( d" uCascadeWindows 以层叠方式排列窗口
& F& N$ N8 }8 y6 v' x' uChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 $ P5 j7 B3 O7 D
ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标
7 Z1 T- m" l/ c* o* }! y7 {4 QCloseWindow 最小化指定的窗口 ; Y' ^) R; V0 e$ P$ _% A) _& j7 ]' @" q
CopyRect 矩形内容复制
, b5 h) a5 B1 k! l/ G2 D: w: KDeferWindowPos 该函数为特定的窗口指定一个新窗口位置 : C2 K  A4 P3 X3 S' T1 H
DestroyWindow 清除指定的窗口以及它的所有子窗口 ; a. `% S- ], f' H
DrawAnimatedRects 描绘一系列动态矩形
) ?4 M7 L, O( b( l) ?, NEnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入 5 W: G1 J; M7 ~1 h0 `: g) |; ^
EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
$ I0 e8 x3 H1 KEnumChildWindows 为指定的父窗口枚举子窗口 . b0 E/ |$ e! b% O$ N$ H6 _
EnumThreadWindows 枚举与指定任务相关的窗口
% u1 {& F. B1 j  r1 GEnumWindows 枚举窗口列表中的所有父窗口 * _4 H& o5 p+ p- u. F  d  h* F
EqualRect 判断两个矩形结构是否相同
/ v  H, k$ V- }& QFindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 & }% z+ h( x: A1 M
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
+ p% G' A" I1 jFlashWindow 闪烁显示指定窗口 4 E0 f* S; _* I7 T1 O/ Q4 d
GetActiveWindow 获得活动窗口的句柄
. o7 L5 A9 u7 E& V. IGetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
. i8 F7 P9 H' Z9 BGetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息 , i) d6 W* v7 @5 e
GetClassLong 取得窗口类的一个Long变量条目
$ D, _1 e5 S8 O( p8 f& K# _6 rGetClassName 为指定的窗口取得类名 3 V8 o' @3 L1 X& @& y  ?
GetClassWord 为窗口类取得一个整数变量
2 ^* L/ a8 h# N7 s, vGetClientRect 返回指定窗口客户区矩形的大小
7 r- i( C( M8 r, H9 @2 cGetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄 7 _9 B& C" ~4 s8 o: _
GetFocus 获得拥有输入焦点的窗口的句柄
) y2 K* O8 O- Q% A6 ]6 ]& `; U" pGetForegroundWindow 获得前台窗口的句柄 5 L( ]& t3 Z4 c! B/ F  L
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄
# Q7 s' E  r9 y5 a- H+ _GetParent 判断指定窗口的父窗口
( N+ Z3 Z  r: ]GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 0 }8 Y+ O! w6 E: f& Q* Y+ B
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分
+ a1 F( b+ [2 Z  r% aGetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系
: `% n3 U5 ~, q1 {GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID ' V5 G' M+ \$ y! L, b9 T" r, w
GetWindowLong 从指定窗口的结构中取得信息
' P2 d, g! ~8 x% u9 \- t  yGetWindowPlacement 获得指定窗口的状态及位置信息 + e3 j* `$ S% ?( m
GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
2 i! U1 T- P. h" p7 WGetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容
: X$ ^  L$ }6 o. f2 B1 ~GetWindowTextLength 调查窗口标题文字或控件内容的长短
" y7 z1 N: u/ f6 R# L1 hGetWindowWord 获得指定窗口结构的信息
* h1 T  o* j5 m, X6 I( nInflateRect 增大或减小一个矩形的大小 ( o! |0 G9 l7 n. W, M7 k/ `! V
IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 4 g* v' u" ]1 @
InvalidateRect 屏蔽一个窗口客户区的全部或部分区域
6 _, {; u0 V  _! f4 e0 c: D( @/ wIsChild 判断一个窗口是否为另一窗口的子或隶属窗口
1 s- R$ o: m& O! d9 D. C: b" TIsIconic 判断窗口是否已最小化
1 _6 C- f) y0 \) Y! q* j  F4 DIsRectEmpty 判断一个矩形是否为空 8 u2 T& s2 `9 G2 s& r
IsWindow 判断一个窗口句柄是否有效 ; F- n3 U$ O: y8 g
IsWindowEnabled 判断窗口是否处于活动状态
4 G9 T/ j0 H) a0 _IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字
6 W! s! N, d  qIsWindowVisible 判断窗口是否可见 % I( Y  Y/ T8 J  T3 F' H
IsZoomed 判断窗口是否最大化
: V' G4 ?9 P. ~LockWindowUpdate 锁定指定窗口,禁止它更新
  M: J9 l6 P4 ]& |$ P& SMapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统 0 n4 i/ T+ E* D+ C" K
MoveWindow 改变指定窗口的位置和大小
7 l' r' j( C/ k* F  OOffsetRect 通过应用一个指定的偏移,从而让矩形移动起来
; `! Y, n: r- f2 c/ S+ A; c: `) y& nOpenIcon 恢复一个最小化的程序,并将其激活 # p6 L8 d% g3 V' i* t
PtInRect 判断指定的点是否位于矩形内部 : w1 X1 `& H# j; ^) Y/ t. S
RedrawWindow 重画全部或部分窗口
4 \2 z) Q* l. k/ C7 JReleaseCapture 为当前的应用程序释放鼠标捕获
& M( y& F% k6 t# z' fScreenToClient 判断屏幕上一个指定点的客户区坐标
5 O. x  Z% P+ K& H: ~ScrollWindow 滚动窗口客户区的全部或一部分 # u9 B" K) V5 l, V5 q& K* f! q
ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分 # j2 m7 n' t" |8 ~
SetActiveWindow 激活指定的窗口 1 o. N' q# @& c
SetCapture 将鼠标捕获设置到指定的窗口 2 @. J5 Q2 T. O3 Y3 L
SetClassLong 为窗口类设置一个Long变量条目   H# x+ i* T  O' H
SetClassWord 为窗口类设置一个条目 ( ~: o2 t, c% E
SetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口 % @: O, Z. c" Q& Y! z
SetForegroundWindow 将窗口设为系统的前台窗口 . d& \3 d# U4 t0 E
SetParent 指定一个窗口的新父 " C8 F' R- K3 t# n& n! W4 ]
SetRect 设置指定矩形的内容 - |, D* B# s( R7 W3 R) i, [
SetRectEmpty 将矩形设为一个空矩形
: v5 e$ O* R" A8 D% x+ e1 ESetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
9 a9 }' Q# i3 F8 e' C* m0 vSetWindowLong 在窗口结构中为指定的窗口设置信息
1 N5 U: L9 Y: z* K: P2 qSetWindowPlacement 设置窗口状态和位置信息 - u% t; k$ {  f
SetWindowPos 为窗口指定一个新位置和状态
" ?; c4 o& L  l6 E$ z9 ^SetWindowText 设置窗口的标题文字或控件的内容
) Z& d2 @5 n8 D! y# R* P! K3 A  n( VSetWindowWord 在窗口结构中为指定的窗口设置信息
. U% Y/ V1 N" S( I, [1 lShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口 ( ^% k" a9 E) d
ShowWindow 控制窗口的可见性
- D% z( P: d0 d3 n' p/ B7 XShowWindowAsync 与ShowWindow相似 8 e0 P+ j, o: B6 \
SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果 - ?, l" F: l; P! E) X0 C" B
TileWindows 以平铺顺序排列窗口 4 E1 i9 v8 q8 h+ i
UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果 * c' Q* R* e7 \% K! ]
UpdateWindow 强制立即更新窗口 ! x4 v& ?1 G/ Z2 U2 J, i% y& |
ValidateRect 校验窗口的全部或部分客户区
! n# {: q0 R. v, u3 {: B, yWindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口+ @$ e: H9 Y1 r2 m, @' O3 n
高级音频函数—参看《VC++ 编程指南.chm》11.6
5 x6 F" f! u, D! I# H( H/ G9 C; [& g2 I     Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。
3 [* O: x! n% M2 u     BOOL MessageBeep(UINT uType);7 k. x9 }' g4 T8 X. V5 X  ^2 L( @
该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。7 |: v. V: ~4 ~, V: o  l
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。
& M! {, u$ L  Q9 \' o. L+ e: J
级别
4 ^! o7 E% r) U8 R7 @
描述
3 p* X0 H0 F+ S- |
-1
) q5 y/ K9 J0 E  o& X+ j
从机器的扬声器中发出蜂鸣声。
  w4 q; \% R( G) H
MB_ICONASTERISK
6 ~9 b9 W; T4 S
播放由SystemAsterisk定义的声音。
7 y1 h3 A. [# J( G
MB_ICONEXCLAMATION + W4 e5 ~/ K$ q/ N: r  }
播放由SystemExclamation定义的声音。 1 ^" f( ]7 }- r+ Q, `
MB_ICONHAND 4 ~. y8 `) y& o9 y& x' Y
播放由SystemHand定义的声音。 / p4 Z2 k1 a6 T& H
MB_ICONQUESTION 4 d$ A8 e/ K( ^& L. K! ~  h
播放由SystemQuestion定义的声音。 $ g$ B+ d7 `. ^6 b8 B7 Q0 o! T' P
MB_OK , l; r1 w- P" z7 C& v' {9 C2 N6 V- Y4 o
播放由SystemDefault定义的声音 7 F, F* N: t5 I
BOOL PlaySound(LPCSTR pszSound,     HMODULE hmod,      DWORD fdwSound);& f# @  E. b0 @( ~+ O7 A
参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。7 X/ R/ y7 G4 H; B7 b3 q; C4 u
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。
* K' Q# W. d; {: A% m: l& n5 Y+ [参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。, _+ w6 ^( o6 ], j- C- l3 Z
标志 # h7 n9 w% M0 y; J
含义 , U( D/ [* O  {8 @+ Y  K
SND_APPLICATION
: ^! A0 G+ ^; N3 ?# @/ ^; a4 {
用应用程序指定的关联来播放声音。
4 k% M. d- i8 k7 D
SND_ALIAS
4 S% a' S: K& @
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。 ; g% i, |, g" P$ j6 i9 N
SND_ALIAS_ID 9 h8 \- i5 D1 D' S4 i! H
pszSound参数指定了预定义的声音标识符。 9 z6 v" ?8 d1 _
SND_ASYNC / h( i: I8 s5 o% `+ s; _( H
用异步方式播放声音,PlaySound函数在开始播放后立即返回。
2 ?) j; y: ~9 I
SND_FILENAME 9 z2 m# c2 w/ s! s# s# {
pszSound参数指定了WAVE文件名。 7 Y& {1 e1 H8 r/ z6 n5 ?! s1 b
SND_LOOP . T! l: e, f. M8 T7 g# Q
重复播放声音,必须与SND_ASYNC标志一块使用。 0 k( e% T) y( S+ M( X. N7 p& }6 x
SND_MEMORY
3 G' g* f# o4 b5 D: u& |
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。 9 r/ ]0 p( H' z. x+ p5 L" L- U
SND_NODEFAULT
% R% }( F. p. f0 Q( M" S3 R
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。 ) R7 D: b# E/ i* ~
SND_NOSTOP
* l) x% I. O+ C# U. d" k9 \
PlaySound不打断原来的声音播出并立即返回FALSE。 8 O5 Q& O. q2 M- t8 e7 K
SND_NOWAIT 9 s( e. a, A9 }0 X  h* z, }
如果驱动程序正忙则函数就不播放声音并立即返回。
: D0 r2 Z. r3 x' F
SND_PURGE
; y( c, F* H) v) s
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。 0 x: G+ S+ D( @
SND_RESOURCE
) |# x, B' \6 H+ d5 y$ a* x
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
# f5 D4 C) c' @/ e. g6 R
SND_SYNC $ F+ d7 i: n2 l
同步播放声音,在播放完后PlaySound函数才返回。 2 a8 S- w# E9 |: b" C9 v
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);
' Q  [0 W- p' Z1 T: @函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。4 d3 Y- i$ \0 o7 x0 P
MCI播放
4 E8 M6 k% J9 U, _$ h1 \0 }所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:) s- b! T6 E  m! _, h
MCIERROR mciSendString(
) }& @& F8 N" DLPCTSTR lpszCommand, //MCI命令字符串
  x( b. S* U9 k* K" yLPTSTR lpszReturnString, //存放反馈信息的缓冲区+ O6 l  U5 A4 U$ x. L
UINT cchReturn, //缓冲区的长度% [: D. F6 f$ T' |% Y( p1 d
HANDLE hwndCallback //回调窗口的句柄,一般为NULL
' ]6 j# C, _  m" ^" M" P. N); //若成功则返回0,否则返回错误码。
9 L; T: K5 q/ a8 n8 D该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:6 S1 T8 [; d& U( @0 }; G9 G
BOOL mciGetErrorString(% @+ G. q5 ^( I6 t  n$ r! P1 Z* l
DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码
3 O* S% U8 F- gLPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区' \" q) [) X( ?: i) B2 s9 w
UINT cchErrorText //缓冲区的长度* l1 u9 b9 S, U* `
);+ d/ Z; g0 C! y0 R) @' M' @
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-18 04:56 , Processed in 0.024628 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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