|
|
原文:http://www.cnblogs.com/cltsq/articles/api.html
9 S3 g- q; T# V; Z- m1. API之网络函数 . x8 b4 F, o7 ]( C
WNetAddConnection 创建同一个网络资源的永久性连接
: k6 o/ G5 i" z! h* f. l2 |# bWNetAddConnection2 创建同一个网络资源的连接
& M0 w: b7 W$ U' IWNetAddConnection3 创建同一个网络资源的连接 , \, D/ V3 Y3 K
WNetCancelConnection 结束一个网络连接 $ f. U3 o1 Q: T# |5 I: O c. w5 i
WNetCancelConnection2 结束一个网络连接
) x2 ?0 U. a1 j# w+ i7 cWNetCloseEnum 结束一次枚举操作
; z4 Y" @. }4 @# ]" ^# OWNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 % s/ X3 E: _! D# `) y, V
WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
O- z, p* O, v/ F! Q7 l* W& rWNetEnumResource 枚举网络资源
4 w$ Z h/ Q; M, y; G$ QWNetGetConnection 获取本地或已连接的一个资源的网络名称 u& r; q1 u3 O; M; f4 C; t
WNetGetLastError 获取网络错误的扩展错误信息 : ?$ ]' d3 b8 R
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称
* U/ K5 {7 v6 a- K1 K4 z% L, jWNetGetUser 获取一个网络资源用以连接的名字
& k3 [1 d- N+ }+ C, k tWNetOpenEnum 启动对网络资源进行枚举的过程
' w) r0 A5 k" D2. API之消息函数 7 T2 E0 n3 S. W# x& S
BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
/ \2 k# h/ G9 _$ d' Z4 oGetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置
# f' A& T! o/ H" OGetMessageTime 取得消息队列中上一条消息处理完毕时的时间 ; y' V5 T6 O z9 D( ~+ i' G3 k
PostMessage 将一条消息投递到指定窗口的消息队列
* |- f- ?; I8 kPostThreadMessage 将一条消息投递给应用程序
% v/ G( W: C0 O: @. qRegisterWindowMessage 获取分配给一个字串标识符的消息编号
" m1 j3 h8 ^; Y3 o0 T# b, YReplyMessage 答复一个消息
# s) Q! l+ ]) Z& A- ?4 TSendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口
d- x; r% ?: T. f! NSendMessageCallback 将一条消息发给窗口
9 m, U o" x- C9 C) t% ~SendMessageTimeout 向窗口发送一条消息 4 H9 X, @" s5 }7 L& d! R
SendNotifyMessage 向窗口发送一条消息
. @/ Q9 H, x& ^& D- `3. API之文件处理函数
, n8 U: j, h1 W: m& ]0 f; L) [0 RCloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 * g0 O1 V8 ]0 D( ~( p% F0 G3 h
CompareFileTime 对比两个文件的时间
1 h' m5 p* G3 M% k& O9 NCopyFile 复制文件 & X9 d$ n+ _, \4 M# F: d4 C. m
CreateDirectory 创建一个新目录
5 \8 \3 T& M- v) Z( Q& VCreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台
2 _- |7 \% L+ e0 P) @; HCreateFileMapping 创建一个新的文件映射对象 + c; i/ R; A2 j4 k9 K
DeleteFile 删除指定文件
* f2 z1 j% P. e: q* F1 jDeviceIoControl 对设备执行指定的操作
6 k2 V# u" f5 }DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值
/ ^" R7 j4 o4 J# qFileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
0 t/ z3 a W1 c3 Q. l- Q; yFileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间 ' }1 L/ t9 d/ n% G1 I/ a" p
FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构
1 j9 D8 l$ {9 g" oFindClose 关闭由FindFirstFile函数创建的一个搜索句柄 6 }' K( o5 b$ |
FindFirstFile 根据文件名查找文件 4 j, n+ U1 \' O- V2 p7 E
FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件
2 N* r# |* j+ M* @/ V% O; HFlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 8 K( |- p8 |$ h& _" D$ T4 B4 }
FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 : T" W; e1 X% M
GetBinaryType 判断文件是否可以执行 5 Q* r2 W0 T! j
GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数
l+ v& H; o' g" aGetCurrentDirectory 在一个缓冲区中装载当前目录
0 r4 m; n0 N; IDWORD GetCurrentDirectory(
$ c$ o; K; k# s$ n: M% Q, j: `8 W- X DWORD nBufferLength, //缓冲区大小
, m+ c7 F% |, k6 m LPSTR lpBuffer //缓冲区的首地址
9 K( y4 y$ z0 m' V) p$ E$ S );
9 u3 J$ a7 ?& JGetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量
6 @5 o1 A) h/ \/ j& @8 QGetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息 + `5 m2 P0 o0 b
GetDriveType 判断一个磁盘驱动器的类型 6 V. S+ I, k$ ^3 O
GetExpandedName 取得一个压缩文件的全名 & f6 \0 z) q$ d) w0 B% |, p
GetFileAttributes 判断指定文件的属性
4 m5 `2 J+ j7 g4 h- I, QGetFileInformationByHandle 这个函数提供了获取文件信息的一种机制 1 d% d- z9 R7 I7 N. Y0 z
GetFileSize 判断文件长度
2 n1 e5 m( l1 h( \0 `GetFileTime 取得指定文件的时间信息
2 S! b$ {! ?: }# V& V$ HGetFileType 在给出文件句柄的前提下,判断文件类型 7 p7 F0 J6 ~5 `( W5 N7 q
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息
; |) m8 q8 a: ~) qGetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区 " M6 O8 p! ?: K6 p, h( g
GetFullPathName 获取指定文件的完整路径名
8 T3 j! s- l5 u3 mGetLogicalDrives 判断系统中存在哪些逻辑驱动器字母
9 Y3 {" J8 ~: L) w7 x3 }# YGetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 ; D( d$ w5 J. w
GetOverlappedResult 判断一个重叠操作当前的状态
D9 U8 |+ r; UGetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值
+ `% |" T w# |5 J' _GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 ; [' [. k$ Y6 ^
GetPrivateProfileString 为初始化文件中指定的条目取得字串 ! j& G! |) @7 ?" b/ V. g! C
GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值 % m/ J+ C/ b7 I( b) _2 q0 B
GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
% S4 |- G# s4 W# [: XGetProfileString 为win.ini初始化文件中指定的条目取得字串 / T* |3 M: D/ l, r
GetShortPathName 获取指定文件的短路径名 1 f' \, }3 K4 Z: i0 d
GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名
0 l4 g" |! x% t5 v1 |. PGetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 8 A3 O; d. S! ~
GetTempPath 获取为临时文件指定的路径
/ b2 h2 Z& p/ a: U& J- P) i+ |GetVolumeInformation 获取与一个磁盘卷有关的信息
& a* L, l. f) ~GetWindowsDirectory 获取Windows目录的完整路径名 9 n; `6 R# J. I5 S% l5 R
hread 参考lread
0 C P! T) o4 ?9 Y# shwrite 参考lwrite函数
, J/ F9 w$ W+ P% V, a8 _( D2 t0 K; Q) r* `lclose 关闭指定的文件 7 q- x, i! x8 L4 B Q
lcreat 创建一个文件 $ s: d8 L+ e9 O( H4 G! H& t' N
llseek 设置文件中进行读写的当前位置 d( l" z; l" E* T+ [; g5 P& [, ^
LockFile 锁定文件的某一部分,使其不与其他应用程序共享 * c, I7 Z* h8 Y8 P
LockFileEx 与LockFile相似,只是它提供了更多的功能 6 A0 S, z" M% _6 l* ~* i4 W7 b! D1 B( p
lopen 以二进制模式打开指定的文件 " O; G; x( X* G. @9 i7 N
lread 将文件中的数据读入内存缓冲区
& g, z1 W( c$ Ylwrite 将数据从内存缓冲区写入一个文件
8 H: I9 k. Z* e* O$ lLZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
2 X* {( p& |* M) u/ H! \4 D1 A. ^) QLZCopy 复制一个文件 $ d( ]$ V! }! R, D" X9 v
LZInit 这个函数用于初始化内部缓冲区
1 o. y5 a: m* C& w# ELZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
- {4 N u: j+ c4 v G! [LZRead 将数据从文件读入内存缓冲区 K. m) @2 T# ]
LZSeek 设置一个文件中进行读写的当前位置
$ [& Y7 z7 \) q& c: KMapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间 , }' P3 Z% c( ?
MoveFile 移动文件
8 o1 |% J! W, qOpenFile 这个函数能执行大量不同的文件操作 1 M" |+ w9 z% i9 ^ q
OpenFileMapping 打开一个现成的文件映射对象 # e' |! T+ x& ~
QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
8 R( j, P% P7 z+ N$ V- |& TReadFile 从文件中读出数据 . b4 _3 }$ t& t W: i' V# B' O
ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调 $ K5 ]' K6 R0 X' H* ]" j* q
RegCloseKey 关闭系统注册表中的一个项(或键) 1 M9 C1 C' n1 [1 k
RegConnectRegistry 访问远程系统的部分注册表 & X& X2 G. [$ p0 ~( }" r
RegCreateKey 在指定的项下创建或打开一个项
R7 ~- u* I c% Z* i1 R% kRegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数 & B/ }7 a k3 c
RegDeleteKey 删除现有项下方一个指定的子项 0 U/ L+ G; B7 h, y, e2 o9 S
RegDeleteValue 删除指定项下方的一个值 9 F9 X, E) T% s6 |
RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx # K3 g' m+ `+ |/ J6 g7 S0 s
RegEnumKeyEx 枚举指定项下方的子项 * X' O o2 _+ t% C6 f
RegEnumValue 枚举指定项的值 " I( R" u1 o" u* f
RegFlushKey 将对项和它的子项作出的改动实际写入磁盘
0 j' x4 X; x! D; {& H; B1 [& C5 N5 fRegGetKeySecurity 获取与一个注册表项有关的安全信息
1 |, |1 e+ M: X( G4 S3 |9 uRegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息
- K% v1 b- E! V: N, xRegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制 % Y0 c9 Y5 p1 Y; u. N% C1 ^
RegOpenKey 打开一个现有的注册表项
2 o/ m# b7 b' H, w; iRegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数 ' R2 i3 I3 z. ^- C: Q( b& l3 z; l
RegQueryInfoKey 获取与一个项有关的信息
) B, o0 h: l1 S& nRegQueryValue 取得指定项或子项的默认(未命名)值 % V' g7 `$ L+ o, `: u
RegQueryValueEx 获取一个项的设置值 ' h3 V+ P+ R5 w7 T1 c5 r7 J
RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
3 T* }& j& P8 U6 f0 A3 q$ j2 ]" j7 qRegRestoreKey 从一个磁盘文件恢复注册表信息 0 k5 h8 ^2 n& X+ R( W3 L
RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件
0 V* _/ t$ U8 j/ xRegSetKeySecurity 设置指定项的安全特性 " e9 Y; u& T6 T/ h
RegSetValue 设置指定项或子项的默认值
O% m$ Y7 v9 o& c. _, N; yRegSetValueEx 设置指定项的值
6 {( p V' w7 V4 GRegUnLoadKey 卸载指定的项以及它的所有子项 1 G: ^$ n/ N; @' k+ _
RemoveDirectory 删除指定目录 4 d9 O7 W& t4 I
SearchPath 查找指定文件 3 Z+ F0 S7 }8 W3 j
SetCurrentDirectory 设置当前目录 # D: I6 G* P7 o2 q. _
SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾
( F3 n" S4 m# x, PSetFileAttributes 设置文件属性
# F4 o Q6 J* e, L4 W+ cSetFilePointer 在一个文件中设置当前的读写位置
: v" i0 X( H9 D* D( W4 m$ X' K- ^, V, mSetFileTime 设置文件的创建、访问及上次修改时间 p* y% I6 j% o# z8 q+ Q+ Z
SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果 4 z5 R0 D5 n% O0 ^: b3 w
SetVolumeLabel 设置一个磁盘的卷标(Label)
5 t3 W4 A/ Z. u) V- t$ C. \SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构 # M, D# y4 A& a7 U' E6 v
UnlockFile 解除对一个文件的锁定
1 V* e- {& \8 e" CUnlockFileEx 解除对一个文件的锁定 , u# a- r D, Y, t+ @
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
* P2 A! F( e' _4 c4 ^2 u1 zVerFindFile 用这个函数决定一个文件应安装到哪里 J/ i5 u2 u/ _2 ~! Z6 \$ U& h/ |
VerInstallFile 用这个函数安装一个文件
2 N# y& `4 { Z* vVerLanguageName 这个函数能根据16位语言代码获取一种语言的名称 5 s- U* U. L% }7 Y
VerQueryValue 这个函数用于从版本资源中获取信息
: t( L: G [) }* g9 h4 yWriteFile 将数据写入一个文件 ! l I$ y. D' q9 z# B
WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调 : ]6 Z3 ^. j4 Z) t# @( u! ^
WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值 ' C& @6 `9 S8 c
WritePrivateProfileString 在初始化文件指定小节内设置一个字串
2 K, z0 s" h" I; T8 A+ BWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值
8 i8 U+ T6 Y, r. d7 D5 o5 sWriteProfileString 在Win.ini初始化文件指定小节内设置一个字串
2 `$ |+ Q, i/ F9 P9 H) j4. API之打印函数 " f; B" [: F( l& B+ @
AbortDoc 取消一份文档的打印 3 G; `% z3 n" t- F
AbortPrinter 删除与一台打印机关联在一起的缓冲文件 6 z R8 y$ a0 U4 K+ I" ^( n" C
AddForm 为打印机的表单列表添加一个新表单
! `" R$ \$ }; ?+ u. H3 M& U9 OAddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
$ ~* W k' _5 O0 f6 a: `AddMonitor 为系统添加一个打印机监视器
6 s' z" O6 \: l- OAddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口 ( A# A* X7 k& Z1 f
AddPrinter 在系统中添加一台新打印机 6 D' A' f& V6 s' H# U
AddPrinterConnection 连接指定的打印机 . `5 _- J( B2 z( x7 \5 U# P+ ?
AddPrinterDriver 为指定的系统添加一个打印驱动程序
- H, Y* e% j& l$ H0 JAddPrintProcessor 为指定的系统添加一个打印处理器 9 K* Y2 Q: V1 F% O" m1 J* |1 j. w; Y
AddPrintProvidor 为系统添加一个打印供应商 4 G% b* C/ ^8 X# M" a5 M
AdvancedDocumentProperties 启动打印机文档设置对话框 9 k' o: x( {" g
ClosePrinter 关闭一个打开的打印机对象 : }0 U! P I& }4 ]8 f( u' `7 y$ ?
ConfigurePort 针对指定的端口,启动一个端口配置对话框
6 t$ {6 n* |, [, LConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接 ! k) B6 H5 J% {6 q J
DeleteForm 从打印机可用表单列表中删除一个表单 # q1 T9 p# f7 J0 I
DeleteMonitor 删除指定的打印监视器
8 [4 C$ U1 A" p! ~, W q+ \- WDeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口
6 o0 W% f/ Z4 m+ L4 \. F8 V* C6 u1 b$ nDeletePrinter 将指定的打印机标志为从系统中删除
5 n) Q, Q6 S7 z" G3 ~6 o u- UDeletePrinterConnection 删除与指定打印机的连接
' i4 V% }! O! _0 dDeletePrinterDriver 从系统删除一个打印机驱动程序
" Z4 V4 x5 s- Q, O/ \3 aDeletePrintProcessor 从指定系统删除一个打印处理器 / Y( H3 D8 T% n6 p5 o( t9 [
DeletePrintProvidor 从系统中删除一个打印供应商 ; W+ f: S4 k' K/ @; M) o
DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息
" X! U2 l+ l( h3 y: g7 {DocumentProperties 打印机配置控制函数
* v9 G2 B, i, |8 H2 yEndDocAPI 结束一个成功的打印作业
- c+ B/ T+ o, A) o) r) q( BEndDocPrinter 在后台打印程序的级别指定一个文档的结束
, a; U# G+ N/ s' q+ lEndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页 8 g5 y4 x. B$ F$ ^
EndPagePrinter 指定一个页在打印作业中的结尾 ! i6 ?2 ^# W2 P3 N: H o
EnumForms 枚举一台打印机可用的表单
6 o: G. V U* d/ L; iEnumJobs 枚举打印队列中的作业
0 w$ x( v! [8 g' J, `8 p# DEnumMonitors 枚举可用的打印监视器 2 N* W: p8 H# a$ a# ]
EnumPorts 枚举一个系统可用的端口
$ z5 ]1 I) f6 ~1 r6 K0 _1 yEnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序 ' Z9 B5 V. Q4 x" i
EnumPrinters 枚举系统中安装的打印机
8 H0 z0 l1 U5 qEnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型 / W$ f' K; ^( _0 d! r
EnumPrintProcessors 枚举系统中可用的打印处理器
: d" Y4 L- Y1 @/ {0 c6 wEscape 设备控制函数 ! `) @& b% C2 u5 o
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象
4 I+ L% W* u! HFindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化
! X: R7 r) r1 }8 kFindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
- A' f: e# k, s# P% X/ b/ `2 bFreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区
5 n: C$ G& V5 p4 I8 J# o4 G2 xGetForm 取得与指定表单有关的信息
) m6 k8 N. J" jGetJob 获取与指定作业有关的信息
, U: r$ `6 ^ X; YGetPrinter 取得与指定打印机有关的信息 : ~. ]. r7 r# v$ P4 T6 {: |
GetPrinterData 为打印机设置注册表配置信息 3 [; |9 ?8 A% {6 A
GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息
* _- X# B; ^0 lGetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么 + V3 G; W5 c" ]7 [# a
GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录 ' g& {9 x4 _$ Y/ x! X6 `
OpenPrinter 打开指定的打印机,并获取打印机的句柄 9 u7 @& q! z0 H4 _2 \9 j, r
PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框
, |; ], v2 K- YPrinterProperties 启动打印机属性对话框,以便对打印机进行配置
) ~$ N" ^2 j* H6 Y% M( jReadPrinter 从打印机读入数据 - m9 R1 i. c ^8 g3 l. T
ResetDC 重设一个设备场景
0 J5 T9 ^+ K+ j m- E m( F! rResetPrinter 改变指定打印机的默认数据类型及文档设置
. P$ F% X1 f# u# _ScheduleJob 提交一个要打印的作业
( _1 b* W' h' [$ sSetAbortProc 为Windows指定取消函数的地址
( P# P; |8 T8 ` v& o5 q0 P- g: NSetForm 为指定的表单设置信息
) |2 w5 s, k! ^SetJob 对一个打印作业的状态进行控制
# C1 m& w, m3 j- K1 ZSetPrinter 对一台打印机的状态进行控制
/ [% {6 D; C E* [) kSetPrinterData 设置打印机的注册表配置信息 ! _, b6 T- O' Q4 p" s: p
StartDoc 开始一个打印作业 , n6 b5 N; e0 v' M
StartDocPrinter 在后台打印的级别启动一个新文档
/ { v- ^ s2 HStartPage 打印一个新页前要先调用这个函数 4 ?1 K2 `, r7 e2 X( F
StartPagePrinter 在打印作业中指定一个新页的开始
F# f' ?0 G" V4 d% C vWritePrinter 将发送目录中的数据写入打印机
2 Z2 f- d* R' A4 D/ _* m5. API之文本和字体函数 5 w0 N; [ [- O- K- E
AddFontResource 在Windows系统中添加一种字体资源
7 V) @4 ?: N% g9 @. `( z/ JCreateFont 用指定的属性创建一种逻辑字体 . }1 \3 B6 p6 ~ v
CreateFontIndirect 用指定的属性创建一种逻辑字体
9 n" N6 ^: R) S: x/ ZCreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 3 S; O8 @. ^+ Y. n; G8 Z4 J/ n
DrawText 将文本描绘到指定的矩形中
- E0 U5 \4 e& f9 z5 \, D4 zDrawTextEx 与DrawText相似,只是加入了更多的功能 % i: ]. p6 U8 t F7 N
EnumFontFamilies 列举指定设备可用的字体 8 M; n; Q- K+ L4 m3 V
EnumFontFamiliesEx 列举指定设备可用的字体 2 {8 Y$ G8 n" h$ v$ ?' F# h. \3 X* N
EnumFonts 列举指定设备可用的字体 # Y0 n E7 t$ C* N$ T0 `
ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
& }) M# Q4 i; O& TGetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 3 I1 [8 S0 N- {+ c6 Z3 x
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小
# V8 c$ H) v8 m" l- X2 ]GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸 4 \/ ]. s' A: ?2 v% l
GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串 5 J8 J, ]& V& e: g+ I ^8 m
GetCharWidth 调查字体中一个或多个字符的宽度
3 U# N# P9 c6 y) P( XGetFontData 接收一种可缩放字体文件的数据
, q5 l. D: U% @2 G8 l( j; UGetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
9 }: {) j+ ]# ^: B2 ~" }' o+ `GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 . [ ]/ F: w1 }; B6 f3 J
GetKerningPairs 取得指定字体的字距信息
$ {# m" I/ {1 j4 O+ h* BGetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息 - c" i O8 Y4 O$ @
GetRasterizerCaps 了解系统是否有能力支持可缩放的字体
- u: Q! R8 f+ \1 yGetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素
+ d- A( N# n& l9 l. p( uGetTextAlign 接收一个设备场景当前的文本对齐标志 & X/ k, X/ [& I
GetTextCharacterExtra 判断额外字符间距的当前值
7 h4 f6 M I" g _$ o4 c' iGetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
8 Y3 i- V# Y' A8 S5 r) \5 {0 R @% gGetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息
$ x( K9 I: H/ jGetTextColor 判断当前字体颜色。通常也称为"前景色"
" K$ |# L' q6 [0 T5 ]$ ZGetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
9 q, c! \* o1 N% X5 c2 jGetTextExtentPoint 判断一个字串的大小(范围)
/ I# L7 A( ~9 m3 n8 W; JGetTextFace 获取一种字体的字样名
4 L9 ]9 Q5 h& W! ~* t/ jGetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 . c' s% E/ x$ l1 L2 w
GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态
) V9 b! n4 Y/ l! x. x! JPolyTextOut 描绘一系列字串 4 y! W0 b8 @0 O% z! ?7 T& R ~
RemoveFontResource 从Windows系统中删除一种字体资源
# p% F& Z( R2 q$ e. k7 s7 GSetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 % O- f6 U% _7 _+ `0 W/ `0 v( C2 N
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置 + c' Z+ {% t. G* i; F) c+ I" D
SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 - O& v$ U R0 `) @1 n- i
SetTextColor 设置当前文本颜色。这种颜色也称为"前景色"
# X7 m/ d3 n6 ]! i1 H8 R5 d2 ?! i/ ?SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理
" ^( D2 z; B7 E( O' Q+ vTabbedTextOut 支持制表站的一个文本描绘函数
% r K& N, B% e5 T" |7 Q" ~TextOut 文本绘图函数 5 G- `! q' z6 O0 r
WINGDIAPI BOOL WINAPI TextOut(
1 ]$ P2 n7 o; N# J$ U) c* w. aHDC, //输出设备
" w+ v' r2 w9 _! t& P: s# m6 Nint, //输出的横坐标5 s* p0 f! U3 s7 L2 g
int, //纵坐标
& |! R. V1 {( \ `' o dLPCSTR, //输出的文本str* ]) ^ Y8 K9 x1 w
int); //文本的长度:lstrlen(str); ]. O! C: t% X2 i6 l( E$ N* c
6. API之菜单函数 6 o& w2 a7 C/ J6 |4 p" t4 e
AppendMenu 在指定的菜单里添加一个菜单项 - a9 S3 l% O6 [! t1 m3 t
CheckMenuItem 复选或撤消复选指定的菜单条目
0 K1 J* Q7 C! B& G! n7 O1 ?+ O) `CheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目
* M( |- g( [8 m* U5 QCreateMenu 创建新菜单
! x" [1 \$ f' Q+ t7 i8 i, rCreatePopupMenu 创建一个空的弹出式菜单
8 r) {3 j$ Y0 @$ F2 D1 {DeleteMenu 删除指定的菜单条目 ' K, N5 |8 a' j' q! r
DestroyMenu 删除指定的菜单
5 h7 X" A% C! @" j# tDrawMenuBar 为指定的窗口重画菜单 6 k8 a0 F: A* @+ \& a: w
EnableMenuItem 允许或禁止指定的菜单条目
) S# h; u$ ^! m' }4 b/ c5 ?/ @9 w; Y+ \$ WGetMenu 取得窗口中一个菜单的句柄
* B/ B" [5 \2 F# GGetMenuCheckMarkDimensions 返回一个菜单复选符的大小 : C6 p& M5 I( ]% U+ ]
GetMenuContextHelpId 取得一个菜单的帮助场景ID
* Z) Y/ l% Q* H8 I& o/ BGetMenuDefaultItem 判断菜单中的哪个条目是默认条目
- y9 g# w+ P0 \6 ^GetMenuItemCount 返回菜单中条目(菜单项)的数量 * a+ Q; g5 z+ N. F8 L0 I/ l0 U
GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID
/ {% Y0 c- {, i5 M+ iGetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息
: l! Y" p6 u x% `; G0 F; I+ ^: \GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息
/ k( l7 S4 I; U+ ` I" EGetMenuState 取得与指定菜单条目状态有关的信息
1 h6 R; H2 T! J a% [ F. JGetMenuString 取得指定菜单条目的字串 * U% {* j6 [; ~+ ]3 M5 o( z
GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置 L" t6 U# f$ f: Y! n6 V
GetSystemMenu 取得指定窗口的系统菜单的句柄
' u) G N S: n) E. Y& e( o& kHiliteMenuItem 控制顶级菜单条目的加亮显示状态 5 S. Z$ p0 R4 l7 S9 S! E; P- c; n
InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
' ]! t" E" h9 A' l# OInsertMenuItem 插入一个新菜单条目 ) A8 P3 {* g+ t9 Y9 ?% B: F! ]
IsMenu 判断指定的句柄是否为一个菜单的句柄 & I4 i% T+ N, N
LoadMenu 从指定的模块或应用程序实例中载入一个菜单
6 ]+ n9 W0 k* S) z7 kLoadMenuIndirect 载入一个菜单
. j0 [; I; x# l0 {7 E: jMenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点
6 `) u+ _# i: r4 o- NModifyMenu 改变菜单条目
6 [+ [, ?+ ^1 Z" N9 LRemoveMenu 删除指定的菜单条目 7 ^( |2 k' a8 R k- [! x
SetMenu 设置窗口菜单 & D2 H# a0 \0 j6 r
SetMenuContextHelpId 设置一个菜单的帮助场景ID # X0 B9 x1 k* ~
SetMenuDefaultItem 将一个菜单条目设为默认条目
2 D! f) M/ l2 ?1 c4 } l1 ~8 |3 JSetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√) 9 ?# M8 q% B* s4 z- m, ?0 t2 g1 x. o
SetMenuItemInfo 为一个菜单条目设置指定的信息 * r$ @' }( I" |
TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单 3 t/ h: A$ |& R( l
TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 ) r" }7 i- S3 ?$ b
7. API之位图、图标和光栅运算函数 # L4 l4 ?0 _7 I
BitBlt 将一幅位图从一个设备场景复制到另一个) W" q- g- {0 J# ? B* O
WINGDIAPI BOOL WINAPI BitBlt(2 H0 `% S8 }3 @3 R' T2 @* q
HDC, //目标HDC) C3 a" T# f$ w$ Z
int, //X1
, Y6 I; L3 d- Q1 N7 q1 gint, //Y1
% t4 |& c$ F3 \3 f, Cint, //width
* P+ L! `5 Z2 m- q" `) K ?# ]int, //height. j7 g; x5 m! h' `* r
HDC, //源HDC, b8 q3 O2 f3 R6 q
int, //右边的距离
) C2 q3 X3 g/ a# f7 Y5 |7 Bint, //??
2 R' c0 a" Y6 D7 uDWORD); //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|* V3 S% R/ q) Y" u5 B+ P3 t
PATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS7 Z& P2 K+ g7 R9 C; v
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序 j# D0 d: g& P0 {
CopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作
- V9 } q3 F/ L; m( k$ cCreateBitmap 按照规定的格式创建一幅与设备有关位图 0 O2 d3 \2 v; ]
CreateBitmapIndirect 创建一幅与设备有关位图
' f0 l2 Q% n# JCreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容
1 S3 c% f3 s8 }/ R2 h+ a GCreateCursor 创建一个鼠标指针
7 I2 ]& ^+ [# }) I/ e, wCreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图 3 N$ |; Z7 d! _0 q( |( C- q0 o2 k
CreateDIBSection 创建一个DIBSection
# g1 {4 T! [- u% g) E4 \- nCreateIcon 创建一个图标 * V' M% v- d" A) E( S; D
CreateIconIndirect 创建一个图标
+ w& \' ~: h2 w: Y ^DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 * F5 A s7 `) P. f G
DestroyIcon 清除图标
' m; d/ X. S6 E2 ^* WDrawIcon 在指定的位置画一个图标
2 @$ U6 R; c0 U% wDrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
8 U! ~2 _2 Z0 W" OExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之 ; w' k$ E$ a# h/ y- z+ t T
ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来
$ m3 ~: L2 u5 W* j6 H& d; q; _% SGetBitmapBits 将来自位图的二进制位复制到一个缓冲区
1 C4 S0 L% U _3 q4 `6 ]7 z9 [GetBitmapDimensionEx 取得一幅位图的宽度和高度 1 @' ~5 N" Z% r9 g( D4 s
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息 7 J5 ]; b9 ~ G) v2 D+ Z
GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里 8 D* a% v& I+ E9 O* e7 l }
GetIconInfo 取得与图标有关的信息 : H; x# q, _4 b5 \& Y* [
GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式 & g5 v1 Q! a; g
LoadBitmap 从指定的模块或应用程序实例中载入一幅位图 0 ]" S! n y+ f# W0 }$ l+ p
LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针
3 N4 y# s( ^9 t9 e5 m8 ZLoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 : h% M& O/ q8 R. H+ j6 E4 Q' k
LoadIcon 从指定的模块或应用程序实例中载入一个图标
4 o: H( B, ?/ RLoadImage 载入一个位图、图标或指针 3 g* C1 H' ^; X5 D& U
HANDLE LoadImageA(
# `' V# J' I# s) O+ q. QHINSTANCE, //当前实例句柄:AfxGetInstanceHandle(), o) a6 i4 f8 l, X& m! O
LPCSTR, //资源所在的目录:c:\help.bmp
: c' |. m% F! _ `6 N UINT, //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE
3 ]) V' n$ s" C; M' B" D3 g int, //
- V7 i! V( Q0 w int, //" o/ P+ s# ^8 J
UINT); //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|" X1 D7 N3 Y( B1 y* r: t) g
R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|
) s6 ?* Z& a* i3 i" \+ A, ULR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
) U9 F; _0 L3 fMaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理 ( O0 D( X- [- l8 A) U+ A- |
PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景
. a. c! h# I7 O. r9 e/ i* iPlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
6 b% d7 G5 H5 z5 @! t" {" PSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 , r7 B0 l/ @* D, \; m* W
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 w+ u% O0 u' n
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息 : d: {$ C9 t+ I0 [: L! B3 ^+ \
SetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里 , Y- v7 C' ?) h! \
SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
9 M n! c. u5 ^! Q* ?- VSetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 + e* H" D/ \8 _ w+ @( w O
StretchBlt 将一幅位图从一个设备场景复制到另一个
2 J( ^9 H* ?/ {, [StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
* q/ d- r9 r: T9 n& c8. API之绘图函数 ! `% b+ p! @3 q
AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作 8 a X' G5 d) d1 m( r; E, ^
AngleArc 用一个连接弧画一条线 * A; O0 @( h* @5 T
Arc 画一个圆弧
2 d1 l4 E9 D- d3 ~% g4 }7 u- W/ mBeginPath 启动一个路径分支
& z1 f |1 p5 U7 Q1 G UCancelDC 取消另一个线程里的长时间绘图操作
$ o% G6 c) O. S5 w8 c" n: ?6 i7 gChord 画一个弦
2 i2 w/ Q/ R: e8 s9 `CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 . x% p* q7 s: A; h2 l, h
CloseFigure 描绘到一个路径时,关闭当前打开的图形
9 d! e( e5 d7 F' V0 u. l3 Q$ jCloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 , ]; j5 I/ r0 U" H, l$ J: W
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
& A3 ~( k( r; [2 D7 w; ]CopyMetaFile 制作指定(标准)图元文件的一个副本
+ M+ f* ?3 L) @$ K' eCreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子 / v% X1 X6 Z3 f, Z3 x5 H5 K
CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)
' \; y8 v3 h2 f! FCreateEnhMetaFile 创建一个增强型的图元文件设备场景
* O4 d3 n: E! x( wCreateHatchBrush 创建带有阴影图案的一个刷子
: \ E0 }7 E) ?, kCreateMetaFile 创建一个图元文件设备场景
& n( b7 w$ y; L" _; t! cCreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子 " A, f% M$ H) o: ~& u( r8 ?
CreatePen 用指定的样式、宽度和颜色创建一个画笔 4 a0 w# L s; d* P' \
CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔 , y `' Z) t* |% T6 z/ S# r: S
CreateSolidBrush 用纯色创建一个刷子
2 k K0 t+ a9 T; p) X' O9 VDeleteEnhMetaFile 删除指定的增强型图元文件
7 ~9 E4 R" W+ K4 u% [3 C! aDeleteMetaFile 删除指定的图元文件 4 @* e& s+ D9 @& _8 t9 C! m" D
WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放$ n) X1 R( y- u
DrawEdge 用指定的样式描绘一个矩形的边框
8 D3 Q: t+ I. j2 | M: fDrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
# M: f& @* f, i1 B' _DrawFocusRect 画一个焦点矩形 2 _8 I3 Q5 p7 f$ f* V
DrawFrameControl 描绘一个标准控件
9 I2 k9 C4 A5 H: I6 }& NDrawState 为一幅图象或绘图操作应用各式各样的效果
# M) r$ |$ v# u6 J% U3 w( kEllipse 描绘一个椭圆,由指定的矩形围绕 + j$ e7 B4 [- U+ j. K% j
EndPath 停止定义一个路径
! {1 Z3 ~: A: c% _0 [ _EnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录 ! T$ \8 H/ x- s) a0 {
EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录 , ?" O" q% `! D
EnumObjects 枚举可随同指定设备场景使用的画笔和刷子 + M1 X! Q; P6 b, D; U; o5 u7 f
ExtCreatePen 创建一个扩展画笔(装饰或几何)
2 g. Y; U" E2 i& o2 qExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
z$ {1 w' Q$ D" I4 bFillPath 关闭路径中任何打开的图形,并用当前刷子填充
3 L" {% {( g1 E g2 u2 I7 GFillRect 用指定的刷子填充一个矩形
! l' |$ X9 ?9 E8 fFlattenPath 将一个路径中的所有曲线都转换成线段
6 c: F7 D! R$ n( @1 r+ k9 UFloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
$ h' y, \# z- s# {* Z, a4 NFrameRect 用指定的刷子围绕一个矩形画一个边框 7 ]) L( p" b5 {. L
GdiComment 为指定的增强型图元文件设备场景添加一条注释信息 & Y5 _6 @1 T$ F
GdiFlush 执行任何未决的绘图操作 4 @/ r |4 [7 Q. |! D% s% Y3 X
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中
. N. `' F9 h* ?$ G" B( O4 GGdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列 ) j5 S* p- w- D. A
GetArcDirection 画圆弧的时候,判断当前采用的绘图方向
# {2 z: m* F2 u' l) K1 J6 DGetBkColor 取得指定设备场景当前的背景颜色
4 N& i2 O& A6 t% [; w6 XGetBkMode 针对指定的设备场景,取得当前的背景填充模式 / ]4 u+ y; m0 v
GetBrushOrgEx 判断指定设备场景中当前选定刷子起点 ( b0 `5 c* N! @( D. N3 Y
GetCurrentObject 获得指定类型的当前选定对象
9 y9 t& C! B- c/ ~, B, KGetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置
! o' x( R4 g$ JGetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄 7 f3 p( X) N- O9 F9 G: M; [
GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里 ' g1 X5 ~) K6 s, x
GetEnhMetaFileDescription 返回对一个增强型图元文件的说明 7 Y* y7 v+ \. x& q: a
GetEnhMetaFileHeader 取得增强型图元文件的图元文件头 / J6 ?/ D1 v" y+ C8 Z
GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板
$ a% A8 ]: }2 K& A) CGetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄
5 a3 ^1 Z7 J/ N$ ]+ h; n2 n: dGetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区
$ W/ H% @2 i' T0 f2 E0 _3 S8 ~5 aGetMiterLimit 取得设备场景的斜率限制(Miter)设置
E! Z Y; P$ Q. z$ pGetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
$ V: p M$ d. g# N: W+ n lGetObjectAPI 取得对指定对象进行说明的一个结构
, `* f( h0 t" X8 vGetObjectType 判断由指定句柄引用的GDI对象的类型
# x2 y7 Z* e- J5 T( J+ dGetPath 取得对当前路径进行定义的一系列数据
5 @9 S: w5 B5 K! i9 x8 q/ c1 TGetPixel 在指定的设备场景中取得一个像素的RGB值 3 l# L. Y( D8 X6 z
GetPolyFillMode 针对指定的设备场景,获得多边形填充模式
7 t1 P, n2 @) GGetROP2 针对指定的设备场景,取得当前的绘图模式
! x: ]2 }* c+ A) b$ CGetStockObject 取得一个固有对象(Stock) 7 s, M$ }$ D- r; S* |: D- W
GetSysColorBrush 为任何一种标准系统颜色取得一个刷子
/ T- m. j# j5 U+ O( O1 h2 |GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件 1 D, L5 p( M0 u/ l& D6 n, q2 R5 \
InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形
# g3 V& ?/ I+ g" jLineDDA 枚举指定线段中的所有点
0 f1 M; ]+ Q" S* Q2 K- OLineTo 用当前画笔画一条线,从当前位置连到一个指定的点 * G s1 H* W F; i# g
MoveToEx 为指定的设备场景指定一个新的当前画笔位置 & ?$ Z* a7 t1 y+ U. J- m$ z
PaintDesk 在指定的设备场景中描绘桌面墙纸图案 8 v/ x* Z- D- Z1 R! N% Z
PathToRegion 将当前选定的路径转换到一个区域里
; F7 \, e8 R& s* ]- _8 [Pie 画一个饼图
8 c+ V/ \5 n. i% k& L& w! fPlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件
: n" d; w1 u$ ^" ^, a8 XPlayEnhMetaFileRecord 回放单独一条增强型图元文件记录
8 U2 [0 T3 [% R% c zPlayMetaFile 在指定的设备场景中回放一个图元文件
: W( h! z( G7 V. M2 |+ KPlayMetaFileRecord 回放来自图元文件的单条记录
1 d% e$ Z1 \0 C! O3 e/ B6 ?PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
9 _8 J5 }0 R' K8 x( g) CPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
. v+ {7 D9 N1 XPolygon 描绘一个多边形
% E% p( o' l6 j% B6 k8 ^Polyline 用当前画笔描绘一系列线段
6 H G( u! _2 G" PPolyPolygon 用当前选定画笔描绘两个或多个多边形
. _2 Z; w& O, j( {PolyPolyline 用当前选定画笔描绘两个或多个多边形 4 q4 c% M# b0 @
Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充
9 I! ?5 r0 K* L; x6 L) L) KRoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充
& P% ]5 ~2 Q. G/ w1 lSelectClipPath 将设备场景当前的路径合并到剪切区域里
+ \( B8 @7 j# O8 h* f- ^" S, aSelectObject 为当前设备场景选择图形对象
3 ^4 n- M. L& {% J WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);
1 f: K5 G) N% Y9 tSetArcDirection 设置圆弧的描绘方向
+ e( l& e3 b2 mSetBkColor 为指定的设备场景设置背景颜色 0 B( F3 o) q6 K y: g9 U, D8 ~
SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
0 L& p- ^/ D( USetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点 ) d6 h4 j/ L: Z* r8 _& s
SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
7 L* V& k* G$ X. E; Z! ?SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 ! j. F X( B R, ^) o
SetMiterLimit 设置设备场景当前的斜率限制
/ d; ~5 E0 Q, p2 _) e" X( eSetPixel 在指定的设备场景中设置一个像素的RGB值
5 o2 D% a! @/ VSetPixelV 在指定的设备场景中设置一个像素的RGB值
/ u ? y% c! w9 l" K7 vSetPolyFillMode 设置多边形的填充模式
) k4 `% y; V# q1 hSetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致
, k E: @( H* |) lSetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 ( {; o0 y8 ~$ G2 @
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域
# z/ j/ M o/ }; u: ~1 s! NStrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭 # y }$ S9 |$ y
UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数 ( B) w: _" j4 r
WidenPath 根据选定画笔的宽度,重新定义当前选定的路径 4 T- R7 Q2 ~9 O; e/ H/ w
9. API之设备场景函数
3 K- l1 U4 k% c! L5 ]0 JCombineRgn 将两个区域组合为一个新区域
/ \ a' ~0 t1 _& UCombineTransform 驱动世界转换。它相当于依顺序进行两次转换 2 F% g/ S8 x3 j9 J
CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景
2 u ^, {' I" }; s6 f+ HCreateDC 为专门设备创建设备场景
; l% h0 \8 `) x% \- ECreateEllipticRgn 创建一个椭圆 5 W3 F7 C8 i4 N. ~% j/ C
CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域 $ i( p2 ]. \' T
CreateIC 为专用设备创建一个信息场景
$ g* [. v. m1 P5 CCreatePolygonRgn 创建一个由一系列点围成的区域 # |. g* R. a4 n A: V
CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的
0 w9 O$ A n0 b: r+ S$ rCreateRectRgn 创建一个矩形区域 2 c! l1 w6 e- R0 F
CreateRectRgnIndirect 创建一个矩形区域 ( ^, O( B+ ?3 e
CreateRoundRectRgn 创建一个圆角矩形 8 f j& ~) |( x0 d/ U3 I+ L4 H
DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源 ) A' \: W2 l' A! m3 T9 j
DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标
% L, f3 R c& K n: eEqualRgn 确定两个区域是否相等
- R& g0 A( ~# r5 p6 N zExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图
& e7 p% e8 r: A7 X, a1 aExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域
& N3 K4 d5 g9 P# yExtCreateRegion 根据世界转换修改区域 6 h2 b& Q: D* i7 V& x7 p% |3 J! E
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
; l; J* s5 i, q- Z: p2 hFillRgn 用指定刷子填充指定区域 3 w0 g& V, _# c, l% i- e
FrameRgn 用指定刷子围绕指定区域画一个外框
' r2 \- J. u$ v. G, lGetBoundsRect 获取指定设备场景的边界矩形 " v" o$ t* E( g9 l& F1 |4 z$ W+ Z
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 6 _- f! m4 D4 C& t/ d9 k; D4 Y. l# A
GetClipRgn 获取设备场景当前剪裁区 % t9 X+ i" V5 a/ r
GetDC 获取指定窗口的设备场景
, I& _: g# [1 [ x2 ^8 GGetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 2 x# s% `4 Q; Z: D& @
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示)
8 _ p. B% r; ^9 ^: D: d1 @GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息
9 b7 C, L% w. UGetGraphicsMode 确定是否允许增强图形模式(世界转换) : P" N% G0 M# f; L' L
GetMapMode 为特定设备场景调入映象模式
, m' e! t( r) G. b$ t! nGetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
1 _' Z. }3 F6 \GetRgnBox 获取完全包含指定区域的最小矩形 + }" B9 D) k `1 a* S
GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新 1 u1 K+ f) s; J: e/ D
GetViewportExtEx 获取设备场景视口(viewport)范围 8 P/ |- z( ]% o$ Q
GetViewportOrgEx 获取设备场景视口起点 , V/ ?: \+ \3 p. ?9 ]# a
GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景
8 Y# a5 {( p0 y; f1 `1 z2 dGetWindowExtEx 获取指定设备场景的窗口范围
$ B% o2 m6 r' L( I# Y4 D8 ?GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点
4 b' i7 ^& t7 sGetWindowRgn 获取窗口区域 - W. L- b+ O$ `1 s. `: j$ C
GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换 ?' m/ m$ r5 a [8 t! i/ r
IntersectClipRect 为指定设备定义一个新的剪裁区 + ?# U- G2 s( m7 h: a
InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画
0 f: l1 R- y3 q& e: y9 Q* y; B @InvertRgn 通过颠倒每个像素值反转设备场景指定区域 - I( c9 S; G0 c W- o: ~# t& h& k$ p
LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标 9 `# G: a4 D; I2 j9 b# C. E( I
ModifyWorldTransform 根据指定的模式修改世界转换
# [, C+ E3 S& Y4 o* tOffsetClipRgn 按指定量平移设备场景剪裁区
7 t C; z* s0 f( a/ NOffsetRgn 按指定偏移量平移指定区域
9 c4 x+ U, e4 k5 ]5 X( ?7 wOffsetViewportOrgEx 平移设备场景视口区域 5 t! a0 ]1 K Q# q* G
OffsetWindowOrgEx 平移指定设备场景窗口起点 - E. I4 W$ F2 `& r' `
PaintRgn 用当前刷子背景色填充指定区域
s& m- \9 J% D2 _PtInRegion 确定点是否在指定区域内
) h s# U9 z/ X5 I/ B/ Y3 {1 A( y8 J! \PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)
4 U1 r: W6 c" I3 FRectInRegion 确定矩形是否有部分在指定区域内 ( }$ E/ N' b+ d
RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内)
6 ?4 E1 c9 Q8 o% K2 iReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
. K' h0 h8 D/ _0 W5 v( JRestoreDC 从设备场景堆栈恢复一个原先保存的设备场景
- [% [) S8 c' E7 aSaveDC 将指定设备场景状态保存到Windows设备场景堆栈
7 P0 T' |9 r/ Q: BScaleViewportExtEx 缩放设备场景视口的范围 2 g; W2 ]8 P% [+ `4 U
ScaleWindowExtEx 缩放指定设备场景窗口范围 8 D0 F; ~ Y; y9 `, u- z
ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
# }9 s. Q6 s) v& \7 _, D; T/ ?, eSelectClipRgn 为指定设备场景选择新的剪裁区 0 @1 e% }6 {8 s* [" J
SetBoundsRect 设置指定设备场景的边界矩形 & R" s) C6 K( d+ Z! e
SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换)
: H( E; a, u: I8 F& B; sSetMapMode 设置指定设备场景的映射模式
+ { b5 M: ]# Z/ u0 e9 u. BSetRectRgn 设置区域为指定的矩形 $ y5 P* a4 ~& A: g
SetViewportExtEx 设置设备场景视口范围 7 d/ p2 U" S: h" g3 E6 j7 _% C
SetViewportOrgEx 设置设备场景视口起点
3 D% b# C7 J. j! wSetWindowExtEx 设置指定设备场景窗口范围
# @9 z$ }; ?2 [9 H5 q k CSetWindowOrgEx 设置指定设备场景窗口起点 ~$ S( \- P3 C ~
SetWindowRgn 设置窗口区域
; L& a3 k% E T* U- O" `SetWorldTransform 设置世界转换
' |* ]5 v5 s6 u: A2 f& a9 OValidateRgn 激活窗口中指定区域,把它从刷新区移走
& K, N; X% X0 e+ sWindowFromDC 取回与某一设备场景相关的窗口的句柄
! ^, C5 G+ g6 G. s9 y8 i* ], c8 a10. API之硬件与系统函数 ! d5 R( C9 s$ M U! r
ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 " g: o2 G& p& Y4 G, F3 s
Beep 用于生成简单的声音
1 g r/ |4 V. _2 Z6 _' jCharToOem 将一个字串从ANSI字符集转换到OEM字符集
9 g% h1 z+ q2 X6 f7 |ClipCursor 将指针限制到指定区域 ; L3 y1 m3 m) F S( ~+ [& b
ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
$ Q: T2 D2 q* M: ?: V# pCreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符
+ j# X9 A" x( t, g$ S( WDestroyCaret 清除(破坏)一个插入符
: [& j* K; N i. m6 ZEnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息
/ s4 s1 ^0 S* H1 R9 nEnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
5 T1 Z# v# y8 I4 N3 cEnumSystemCodePages 枚举系统中已安装或支持的代码页 4 D1 e( Y q- K0 l/ m* _# B
EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置 4 z- `/ D; r2 P+ J
EnumTimeFormats 枚举一个指定的地方适用的时间格式
/ u, G3 Q% s3 G1 kExitWindowsEx 退出windows,并用特定的选项重新启动
/ {6 I: {% E, f$ W: ] WINUSERAPI BOOL WINAPI ExitWindowsEx(
/ i$ q: w f% W. V9 W9 Y/ A4 S1 sUINT uFlags, //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG. P; K: d1 E/ S# W9 S& ^5 ~/ @
DWORD dwReserved); //0
! r5 x n2 H- OExpandEnvironmentStrings 扩充环境字串 # b- _& v8 b3 W ]; q
FreeEnvironmentStrings 翻译指定的环境字串块
5 n& A4 D4 Z. I0 v/ F5 W: }GetACP 判断目前正在生效的ANSI代码页
0 E/ Q7 X4 x0 B" @$ ]! `2 NGetAsyncKeyState 判断函数调用时指定虚拟键的状态 " ^1 r* Y. T4 h/ f8 L! Y b
GetCaretBlinkTime 判断插入符光标的闪烁频率
7 i) D$ Z. m3 P8 vGetCaretPos 判断插入符的当前位置 5 x# | R' p8 T |0 T3 T7 ?
GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域 ; S9 F0 D: Z9 `/ c2 x
GetCommandLine 获得指向当前命令行缓冲区的一个指针
' @5 s7 [: Q: J5 KGetComputerName 取得这台计算机的名称 . S+ a; z# C% M$ O/ @, c6 X
GetCPInfo 取得与指定代码页有关的信息
) t1 Z* r- {& M4 A9 D9 kGetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字 8 [( C2 w+ w/ J
GetCursor 获取目前选择的鼠标指针的句柄 # y8 }0 e& G: z9 T% r# k4 o
GetCursorPos 获取鼠标指针的当前位置
" P' D2 P8 a U0 H7 U. gGetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化
1 C, i1 b5 ?# `GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 / f8 h5 S7 g7 A* ?; E2 @$ h
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄
+ n% ^$ z+ ]/ f( b& D0 a: l0 qGetEnvironmentVariable 取得一个环境变量的值
" f" j- u' U+ {0 t ~GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件 : i4 U, w9 F% u: \6 h* e8 D1 c; v
GetKBCodePage 由GetOEMCP取代,两者功能完全相同
, k9 G5 b/ M$ `/ i. N# U- E/ ZGetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
0 s, |6 j7 D) F5 Z, b1 PGetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表 ) _8 q2 S& S% @0 n) _
GetKeyboardLayoutName 取得当前活动键盘布局的名称 3 V2 E! {1 |. I& j2 g
GetKeyboardState 取得键盘上每个虚拟键当前的状态
. c% C( J9 l$ yGetKeyboardType 了解与正在使用的键盘有关的信息
( r' }" ^5 H) N/ [GetKeyNameText 在给出扫描码的前提下,判断键名
7 L9 M1 Z9 U4 s _- U" WGetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 $ m8 o) M) m. m
GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
/ J: W0 A, G, I3 ]& \% X V/ X. LGetLocaleInfo 取得与指定"地方"有关的信息
6 \ N) i: n3 mGetLocalTime 取得本地日期和时间
- Z. [4 v0 Y( Q Y; A$ fGetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字
1 Y/ h; w+ n1 O# YGetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
. ?, l' i& }* j9 M$ u6 aGetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
( k& e8 p& h. ]3 |- s% f/ }) dGetSysColor 判断指定windows显示对象的颜色
' B9 f# d" I4 n8 |% I' hGetSystemDefaultLangID 取得系统的默认语言ID 6 m% ]7 ?) w! n6 |# `& g8 H
GetSystemDefaultLCID 取得当前的默认系统"地方"
6 j" o( r g. P! w0 G% d! eGetSystemInfo 取得与底层硬件平台有关的信息
- X- P3 \# @2 l7 t% MGetSystemMetrics 返回与windows环境有关的信息
4 @) }( e. p# F1 V2 gGetSystemPowerStatus 获得与当前系统电源状态有关的信息 1 V' e2 U! W. O8 b* c" U
GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式
& J$ Q% G, b# k+ f! _; B" W: UGetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步
5 T1 e& V0 }# P% QGetThreadLocale 取得当前线程的地方ID & e6 ?& G/ [$ M4 o" s1 J) P/ u
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒) 7 i9 N4 M# |+ n1 N1 C7 r
GetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间
4 t$ v/ `7 R+ V" d$ TGetTimeZoneInformation 取得与系统时区设置有关的信息 $ O! k% C% O8 D' i* Q
GetUserDefaultLangID 为当前用户取得默认语言ID
' ~( a) \; w: C3 p# g6 _0 DGetUserDefaultLCID 取得当前用户的默认"地方"设置
6 p- K' i1 g' N J) y* ]3 e4 ~GetUserName 取得当前用户的名字
9 d6 ~: S4 Q' ?1 o. ^* BGetVersion 判断当前运行的Windows和DOS版本 4 u3 W, t) _/ G& [$ w
GetVersionEx 取得与平台和操作系统有关的版本信息 ; W) z; Z0 S8 N/ t# ^$ c' ~- T Z
HideCaret 在指定的窗口隐藏插入符(光标)
% O' H; p5 {7 DIsValidCodePage 判断一个代码页是否有效
; |5 ?. ~2 H( Y3 R/ U8 \IsValidLocale 判断地方标识符是否有效
* _2 O; o& ?3 z |keybd_event 这个函数模拟了键盘行动
" j% B' p( w( O/ uLoadKeyboardLayout 载入一个键盘布局 ! F8 f) j! b( Z- Q: P F9 } R
MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换
8 g' Y9 D9 P! R8 Z/ K" S; uMapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换 # `4 p. `0 F8 _+ D
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的
/ b- b! z* G1 Kmouse_event 模拟一次鼠标事件
1 l$ D" X1 N5 [7 r2 o2 z0 O' NOemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
8 D6 Z3 R! e- F; JOemToChar 将OEM字符集的一个字串转换到ANSI字符集
8 r- i, n3 o0 F) `) a5 m0 ` Q2 d" qSetCaretBlinkTime 指定插入符(光标)的闪烁频率
! O8 \& s5 t: `; d, mSetCaretPos 指定插入符的位置 " f8 [3 _2 V- K3 H
SetComputerName 设置新的计算机名 3 ?! I- m) Q% f# b; K* h! |) P ?
SetCursor 将指定的鼠标指针设为当前指针 * G3 ]& [9 L ~3 E: I
SetCursorPos 设置指针的位置
, h1 t% D2 H3 N9 NSetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 & Q. t8 S, J% Z7 i
SetEnvironmentVariable 将一个环境变量设为指定的值 & u' L# Q3 m4 H. f5 v7 \6 g4 c. L
SetKeyboardState 设置每个虚拟键当前在键盘上的状态 % A) T2 F3 q* D. v. e+ d+ Q
SetLocaleInfo 改变用户"地方"设置信息
* f' g. X/ `/ t+ _# c0 HSetLocalTime 设置当前地方时间 3 q4 d7 q: c. z" S5 d$ s2 \
SetSysColors 设置指定窗口显示对象的颜色 ! n' P* {* T2 j) k6 v. f
SetSystemCursor 改变任何一个标准系统指针
* s" _+ L9 c; d6 ?6 X; Q" l' CSetSystemTime 设置当前系统时间 9 y- }. ^9 f! N
SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步
+ u$ Y1 z% t, X0 y( _) ? {SetThreadLocale 为当前线程设置地方 8 Z7 f2 ^( w" n$ D& f
SetTimeZoneInformation 设置系统时区信息
( @( l4 ~$ V K/ oShowCaret 在指定的窗口里显示插入符(光标) . p, O: T' \1 `8 x9 W
ShowCursor 控制鼠标指针的可视性
* E5 ?) x9 t; p/ h* CSwapMouseButton 决定是否互换鼠标左右键的功能
3 P- D' s7 \1 `9 Y7 }SystemParametersInfo 获取和设置数量众多的windows系统参数 ; ?4 n1 d; z; N
SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
# ^' d" T' X' p( {) J/ H' sToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符 ; m1 z8 Q) p+ x* I$ Y1 @6 P5 u
ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
3 N' x& E! I) m0 sUnloadKeyboardLayout 卸载指定的键盘布局 , D. X3 I2 ^* f1 O6 h
VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态 7 V# K2 O$ Y: ^: G Z4 ~
11. API之进程和线程函数
9 d) f, W2 F$ T& t- W* @! sCancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作 $ F- L9 h& N! B! p$ x
CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用
6 w4 D2 G( o) {5 g" }7 y3 pConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 8 K7 b, f5 f* T7 t( \- a" U
CreateEvent 创建一个事件对象
3 q4 e7 @+ c, M& A/ W |CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)
& O% S! v7 V( `' ZCreateMutex 创建一个互斥体(MUTEX)
4 i+ m L; I, B9 VCreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用 9 n; a1 B: _3 E( L. u% M
CreatePipe 创建一个匿名管道 0 x$ Y: c# s f" x: S$ F
CreateProcess 创建一个新进程(比如执行一个程序) + z/ T1 m: u. M8 h. ~( @( z
CreateSemaphore 创建一个新的信号机 ! v) H* f% X0 l, J& c1 ~6 d5 h
CreateWaitableTimer 创建一个可等待的计时器对象 ) a9 M3 n1 A* k' ~) Z
DisconnectNamedPipe 断开一个客户与一个命名管道的连接
1 f1 ]' F4 D+ F( o; z) W$ kDuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄 : t+ d2 F: S" a; e; _
ExitProcess 中止一个进程 ' ]2 p9 L+ m' z& |& n2 i( s" S
FindCloseChangeNotification 关闭一个改动通知对象 , C: R) g V8 ^, y8 T
FindExecutable 查找与一个指定文件关联在一起的程序的文件名 " ?# k6 c. ]# k& d6 U
FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化 # b/ t& s) J- ~* H
FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 : X# Y5 Z+ B$ W9 C) K$ `5 D
FreeLibrary 释放指定的动态链接库
0 k8 a. s3 z. oGetCurrentProcess 获取当前进程的一个伪句柄
2 |% m( P% ^$ q: } v1 jGetCurrentProcessId 获取当前进程一个唯一的标识符 4 ~$ t7 s8 f+ S/ h/ _2 |7 z& T
GetCurrentThread 获取当前线程的一个伪句柄
9 a+ Q) R# t! S* u1 dGetCurrentThreadId 获取当前线程一个唯一的线程标识符
$ c' m$ Z. ]+ D% q! fGetExitCodeProces 获取一个已中断进程的退出代码
5 u; j Q4 [: gGetExitCodeThread 获取一个已中止线程的退出代码
( X: E+ M' _5 K0 e$ @4 xGetHandleInformation 获取与一个系统对象句柄有关的信息
. b- A# v; _; r; }- H8 MGetMailslotInfo 获取与一个邮路有关的信息
: j& r4 m5 a+ s6 p. H/ D8 ~% `GetModuleFileName 获取一个已装载模板的完整路径名称
9 G/ z% K9 J1 d* N( f* `GetModuleHandle 获取一个应用程序或动态链接库的模块句柄 8 G6 C* ]$ q9 V: D2 R8 `
GetModuleHandleA(LPCSTR lpModuleName);
; _7 ~6 c: j" J5 tGetPriorityClass 获取特定进程的优先级别 9 m, C" [# B1 \# z; Q% P
GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 ; H9 V* ~4 N% q& U1 j' ~3 Y
GetProcessTimes 获取与一个进程的经过时间有关的信息
3 e! ?- h$ Y7 c1 QGetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存
% m! ?' C( f8 m+ p6 P @+ CGetSartupInfo 获取一个进程的启动信息
1 a! i, }" [' `) Z6 ]8 KGetThreadPriority 获取特定线程的优先级别 ; z3 y' |% t0 }% H
GetTheardTimes 获取与一个线程的经过时间有关的信息
& ~' i) m6 G: B3 X* x# ?5 VGetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符 2 a9 `% t c# m
LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间 7 v) V6 \0 o% F& I
LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间 % P8 C. O8 S/ I8 O) {
LoadModule 载入一个Windows应用程序,并在指定的环境中运行 % X8 \' U- Z, [2 |& o
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回 - @, H' W6 P, G
SetPriorityClass 设置一个进程的优先级别 6 Y5 x1 G% w3 l4 Q& j6 Z' q
SetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序
) a* r4 c _: V$ M7 I2 [SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量 3 B/ y" Q+ f7 R0 {5 f+ ?
SetThreadPriority 设定线程的优先级别 " R. a: C, z5 {+ _! U# M ^
ShellExecute 查找与指定文件关联在一起的程序的文件名
. J9 O3 B' n) f5 `TerminateProcess 结束一个进程
* w" p6 z* ]: }- l% F2 e8 A. W3 FWinExec 运行指定的程序 0 s3 a3 Z0 }5 [0 X( T
12. API之控件与消息函数
, P0 N+ L, N7 O6 L$ _/ V# \AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 R; f# F4 s, B: G' X
AnyPopup 判断屏幕上是否存在任何弹出式窗口 * r Y, U. J0 v+ P% B+ O5 Q
ArrangeIconicWindows 排列一个父窗口的最小化子窗口
7 M' [, P% m4 TAttachThreadInput 连接线程输入函数
% H* x [; ^* Q8 u8 K: P6 IBeginDeferWindowPos 启动构建一系列新窗口位置的过程 . P D S; W! p- I+ w1 }; ]+ h
BringWindowToTop 将指定的窗口带至窗口列表顶部 + j+ A* ]( c: j& ]
CascadeWindows 以层叠方式排列窗口 . |9 |, K% L9 O3 l8 X4 G
ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 ( e. O$ i- K {9 P2 x9 R. W- D
ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标
9 E0 q; }- J. i4 x" XCloseWindow 最小化指定的窗口 0 h+ p4 D0 C' h* l& Z0 \; [
CopyRect 矩形内容复制
t% T$ H+ g4 V5 z9 a# v0 z4 aDeferWindowPos 该函数为特定的窗口指定一个新窗口位置
& c( x( e; A qDestroyWindow 清除指定的窗口以及它的所有子窗口
2 V( [6 y Y8 `* X m3 X: WDrawAnimatedRects 描绘一系列动态矩形 2 y9 {. E: _ B0 g7 n
EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入
6 I& ] m4 k5 @EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
( }* R0 c2 J3 T v; vEnumChildWindows 为指定的父窗口枚举子窗口
) ?! x% t. ?* d5 v. W9 c6 I" O" @EnumThreadWindows 枚举与指定任务相关的窗口
8 W z3 Z7 m* z2 NEnumWindows 枚举窗口列表中的所有父窗口
. w- z- X& m x3 I+ Q: @. s0 B' }EqualRect 判断两个矩形结构是否相同 5 s8 G, Y" @" u0 r$ M
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口
. f0 P o4 Y* @- A \( fFindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
3 Y R( W. ]* P9 x/ TFlashWindow 闪烁显示指定窗口 4 J" H$ e9 K$ g& }0 U
GetActiveWindow 获得活动窗口的句柄
' I% F% q/ S$ G) Z" e' A( pGetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
5 |! S5 k* I# |; ^2 sGetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息 - G- F! ^' F8 d# Z1 `1 z9 S- O
GetClassLong 取得窗口类的一个Long变量条目
3 N7 ?' ~3 o. k2 p* EGetClassName 为指定的窗口取得类名 5 H" f4 e: u* Q8 e
GetClassWord 为窗口类取得一个整数变量 7 B: q: {$ e! B& Q) D
GetClientRect 返回指定窗口客户区矩形的大小
) i1 F- N+ l& K2 f3 D3 ^GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄 ; ~* y7 ^7 ^( ^- I6 j3 V
GetFocus 获得拥有输入焦点的窗口的句柄
* I; a7 g0 b, ]* uGetForegroundWindow 获得前台窗口的句柄 8 k5 Z! b6 u: H- a: K5 z4 ]. D
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄
. O! v1 s6 z4 i4 {/ L! SGetParent 判断指定窗口的父窗口
' l/ R" ?- }+ P' O% r" G; jGetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 ; u2 R8 s2 u% @' m+ @7 l
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 ! t; H8 i# K- b' U
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 ( p# C1 t4 D' a, w" b3 X: l! V% @
GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID ! a7 P$ Y! J8 l5 ?$ O
GetWindowLong 从指定窗口的结构中取得信息 " g( K& Z9 b8 j4 D' M- T! I
GetWindowPlacement 获得指定窗口的状态及位置信息
' T1 v2 ~& e' s9 |6 N. uGetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
) x3 \( i: a# J! cGetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容 % e A2 ^0 s6 V6 w' s
GetWindowTextLength 调查窗口标题文字或控件内容的长短 $ U( e$ x5 N/ M/ ]2 C4 i* b
GetWindowWord 获得指定窗口结构的信息 m- l+ N9 x5 e: ^' u) M& H/ z' q
InflateRect 增大或减小一个矩形的大小 $ y- i* h* L2 A1 G$ L/ @: G. X
IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集
7 I" k4 p' c" Q6 e ^1 b# @/ gInvalidateRect 屏蔽一个窗口客户区的全部或部分区域 3 \" u) G% p% M# s: G6 `
IsChild 判断一个窗口是否为另一窗口的子或隶属窗口
' p0 B& z; q/ c9 V5 NIsIconic 判断窗口是否已最小化
# Q% X/ s2 X( d# YIsRectEmpty 判断一个矩形是否为空
) ~# N$ H: B# X7 Q# G) w/ n; F1 WIsWindow 判断一个窗口句柄是否有效 2 U0 I! e/ I2 Y) L- W: s
IsWindowEnabled 判断窗口是否处于活动状态 6 m" z' V1 M* H8 d3 p7 l% N/ V% f
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 + z8 O& v0 E) x
IsWindowVisible 判断窗口是否可见 ' l8 a9 \) t; W7 S
IsZoomed 判断窗口是否最大化
. E/ e+ ~3 I8 F: ~! p sLockWindowUpdate 锁定指定窗口,禁止它更新 ' @/ F+ n/ |. A$ f( F& Y9 Q/ B; g
MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统
: \: P& O, h7 v- D8 O1 I4 pMoveWindow 改变指定窗口的位置和大小 # M$ k3 W) a5 S* Y$ p3 L0 Z
OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来 ' ^: V s; a! Z% a; s
OpenIcon 恢复一个最小化的程序,并将其激活 & B, U* e2 s8 a$ g
PtInRect 判断指定的点是否位于矩形内部
4 j; Z& ^8 }( z7 K/ E3 lRedrawWindow 重画全部或部分窗口 ( n: y9 x% j1 m
ReleaseCapture 为当前的应用程序释放鼠标捕获
2 J2 x& X5 g3 v) _ScreenToClient 判断屏幕上一个指定点的客户区坐标
1 V$ D; p8 h6 X% d5 CScrollWindow 滚动窗口客户区的全部或一部分 # j: p9 I$ ?4 u9 q" B! Z
ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分 + m/ K) b6 f P* Y8 w
SetActiveWindow 激活指定的窗口 7 W: J: D) G# ~- |% Q! x2 Y
SetCapture 将鼠标捕获设置到指定的窗口
" z( t% T) G( ]3 Z# RSetClassLong 为窗口类设置一个Long变量条目
# B0 b( O% g# E: Q/ JSetClassWord 为窗口类设置一个条目
; I. B; r! k# |3 k% ySetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口 # n4 j' l" `7 B% c$ r8 k0 S8 J0 f
SetForegroundWindow 将窗口设为系统的前台窗口
n" X+ R9 { L4 Q3 @8 vSetParent 指定一个窗口的新父
& Y |8 S1 H, w& q tSetRect 设置指定矩形的内容 1 \; I- y% U0 z: g
SetRectEmpty 将矩形设为一个空矩形 3 S# t9 Y& v( p# A$ c" {) |2 r
SetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID # ]" w, |. E0 n$ Z% w
SetWindowLong 在窗口结构中为指定的窗口设置信息
8 @! j* p2 [5 \% @SetWindowPlacement 设置窗口状态和位置信息 6 L% ~$ _% J+ q+ P( X8 a* F
SetWindowPos 为窗口指定一个新位置和状态 1 a) W2 } W7 }" u. K
SetWindowText 设置窗口的标题文字或控件的内容 ( ~# l3 d, H/ J
SetWindowWord 在窗口结构中为指定的窗口设置信息 4 T s! S" b$ c7 s8 u
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口
0 z2 n2 _6 R/ X" o) P, L5 {ShowWindow 控制窗口的可见性 7 `0 n1 |! B* F( {9 p; @
ShowWindowAsync 与ShowWindow相似 ) [4 L$ R, X# N9 z6 W3 R4 g; }5 ?- ^
SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果 ! E5 U. ^7 e5 l: P) i2 H7 P. | [
TileWindows 以平铺顺序排列窗口 * v4 n: L9 a' U" N5 J7 o
UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果
+ ^! M' o' ]6 V# _3 a- e8 RUpdateWindow 强制立即更新窗口 " p- ^0 K. D1 c* |" M( g6 f# o5 Z
ValidateRect 校验窗口的全部或部分客户区 & N0 M3 _" N5 i* H. J
WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口0 r; B0 x' X A0 {
高级音频函数—参看《VC++ 编程指南.chm》11.62 n* G3 S9 Y7 k) P8 t" b
Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。
' r. Q. F, r7 r* m4 _! [" V# \ BOOL MessageBeep(UINT uType);5 L, a+ a) u! c1 Q* ?
该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。, {! [5 D8 y+ m
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。9 f& @+ V3 C' |5 R) Y
级别 . t l. m, N! P4 F, U
| 描述
$ t0 T" _# z; ] | -1 4 V: E- o; a! h. U$ H' D
| 从机器的扬声器中发出蜂鸣声。
n+ j- s4 _" [& D' C: X | MB_ICONASTERISK 0 a- S( p' G s0 z ?$ q2 I
| 播放由SystemAsterisk定义的声音。 7 ^# w ]) u* O7 O0 _
| MB_ICONEXCLAMATION
1 Y5 s6 m/ T1 D( c1 f | 播放由SystemExclamation定义的声音。 3 g$ i1 H: T" V' T. t3 a
| MB_ICONHAND 6 t( P% D$ W' _1 w3 k& N* a
| 播放由SystemHand定义的声音。
+ B+ E+ _$ Z' y$ E4 z1 G | MB_ICONQUESTION
& d8 y3 j1 i# Y- B | 播放由SystemQuestion定义的声音。
3 ^! l; w$ d5 g1 S) I" K7 U' E* ^ | MB_OK
Q ~+ T& X5 N( W0 V- e- f$ O' [ | 播放由SystemDefault定义的声音 5 q1 c2 }) m2 T _0 P2 C$ j/ `. G
| BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);
+ D9 z; L R$ [' \+ \; s+ G, H. i参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。
+ U1 C. P) y/ P; e0 x- p2 {) |- }7 o参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。- f! y3 h4 @& C& G# V
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。
$ }. N* e: }) ~- o$ f& j4 q! z7 i. H8 O4 k标志 , `+ l- J' `; L8 y( Q% j
| 含义 " p' C+ T3 h- ^' [
| SND_APPLICATION 8 r2 ~, g3 e4 Z' j
| 用应用程序指定的关联来播放声音。 + R/ I7 m: k& t0 c% z& Z
| SND_ALIAS * M0 d+ O/ t$ Y5 u% [3 a. q
| pszSound参数指定了注册表或WIN.INI中的系统事件的别名。
/ ?% Q+ l& L1 U) j" e | SND_ALIAS_ID 1 r/ Y8 B" C& x2 s* H
| pszSound参数指定了预定义的声音标识符。
. Q4 s) n. ]6 g6 ~ | SND_ASYNC 2 {1 i8 [; S- E9 y' q- q A
| 用异步方式播放声音,PlaySound函数在开始播放后立即返回。 ; C8 N! f5 f! x
| SND_FILENAME $ {' a$ u0 @6 }: D- ~
| pszSound参数指定了WAVE文件名。
. e/ c2 c7 x' M- S6 f3 F | SND_LOOP - U$ J" Z2 x+ F' l) r4 L* d7 L
| 重复播放声音,必须与SND_ASYNC标志一块使用。 5 x4 y, _+ e- g Y, s9 ^& B
| SND_MEMORY
" u6 ^ g% U6 o | 播放载入到内存中的声音,此时pszSound是指向声音数据的指针。 5 Z6 ^! k0 a( w2 U8 U2 i& D
| SND_NODEFAULT # Q7 y+ z- J3 \$ N, Z" t0 p& T4 c
| 不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。
' T2 A1 b W% ]9 n4 n* a* g | SND_NOSTOP ' V2 Z. Z, l" K3 Q# D* a
| PlaySound不打断原来的声音播出并立即返回FALSE。
5 _# J; g2 c- O9 @# a2 P2 d m | SND_NOWAIT , ~( F) ~: e7 m' ~" e+ I3 C
| 如果驱动程序正忙则函数就不播放声音并立即返回。
- p- N4 j4 D& l0 X. ?( q0 r+ z* [2 [ | SND_PURGE
. b4 A4 P8 N6 Y' s. E( t8 ^8 ~ | 停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。 6 w$ l7 V1 y8 u
| SND_RESOURCE
5 H: B6 i6 f8 m8 g6 E* O | pszSound参数是WAVE资源的标识符,这时要用到hmod参数。 : B; K0 k# `+ F$ m1 F7 X, Z
| SND_SYNC $ Z! T- D9 l2 Q) t; \
| 同步播放声音,在播放完后PlaySound函数才返回。 - ~# w2 o- {! a
| BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);
3 v! y% ]: v1 ~. V; v9 L) B函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。
/ ^8 z- x7 @) PMCI播放
% Y' G; y+ [- ~, R9 a所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
, i$ p$ Z) ?8 X! h7 RMCIERROR mciSendString(" I w l% W- p+ M+ d& R
LPCTSTR lpszCommand, //MCI命令字符串
" P @0 R5 c; [- J( ` R$ I, RLPTSTR lpszReturnString, //存放反馈信息的缓冲区
# l9 M) R B3 x1 l& PUINT cchReturn, //缓冲区的长度7 D7 J2 f3 C0 A% r7 Y. j+ V( V
HANDLE hwndCallback //回调窗口的句柄,一般为NULL( }9 T8 U. q4 l# S" f
); //若成功则返回0,否则返回错误码。
$ B( E/ H% p6 C' c, P, y该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:
$ O% T% E& Q" j: H: TBOOL mciGetErrorString(
3 U3 i' P2 h( A w3 }: X9 v: tDWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码
$ R U [; m' |% a/ JLPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区$ D. {: k5 y+ a
UINT cchErrorText //缓冲区的长度) ^3 C4 t9 n/ Q) [# \" P
);8 `- I4 M7 X5 w- F* p
|
|