|
|
原文:http://www.cnblogs.com/cltsq/articles/api.html
2 U8 m% `8 x7 y1 A4 i0 V, |7 J1. API之网络函数
$ w$ O* X; O3 V: A! wWNetAddConnection 创建同一个网络资源的永久性连接 7 f* i" R& A7 a# ?
WNetAddConnection2 创建同一个网络资源的连接 0 n7 R, I/ v3 n2 q$ W+ `# m$ i
WNetAddConnection3 创建同一个网络资源的连接 5 o/ S5 @; A: I; E
WNetCancelConnection 结束一个网络连接
9 c1 B6 F( E4 u; Q0 F% k: xWNetCancelConnection2 结束一个网络连接
- }/ v" x( @" O, N% ]- `WNetCloseEnum 结束一次枚举操作 % Y, _" u2 a3 f3 q' f
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 * q3 o0 Q# F4 ?! n/ x
WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
- m2 G: z3 V1 Z2 J- O: l0 ~WNetEnumResource 枚举网络资源 - x) h3 ^4 ^4 {+ Y& K
WNetGetConnection 获取本地或已连接的一个资源的网络名称 ! Y: X; ~# g6 j% Q0 _
WNetGetLastError 获取网络错误的扩展错误信息
" c# J7 W W$ ~% UWNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 + I B* s( ^ I. {
WNetGetUser 获取一个网络资源用以连接的名字 1 f5 D9 q a1 I
WNetOpenEnum 启动对网络资源进行枚举的过程
* W$ C- m; C8 J+ x+ u2. API之消息函数 2 Q6 r- q: m, ]7 m9 \5 O4 i+ g
BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
( A+ P/ X9 T- m- t7 ~GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 8 I+ P6 `9 k) Z) K2 D
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 $ S- G1 x0 T9 }& {0 a2 e
PostMessage 将一条消息投递到指定窗口的消息队列 F& K3 @6 C6 L3 [
PostThreadMessage 将一条消息投递给应用程序 ) D7 i" ^% m8 y
RegisterWindowMessage 获取分配给一个字串标识符的消息编号
$ b( t3 V6 e' O: n5 [. V5 \8 AReplyMessage 答复一个消息
) y4 P5 X. l( r+ `SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 0 }+ o5 j5 V* H4 T( W) v: ?
SendMessageCallback 将一条消息发给窗口
% h) r: \ A& O: b8 z$ Y' D$ QSendMessageTimeout 向窗口发送一条消息
; m& J Z- r) W: A! cSendNotifyMessage 向窗口发送一条消息 ( w, q8 D( e! A
3. API之文件处理函数
; V/ \! w# F% O7 n# H6 ~ SCloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 ' M5 u) u% g3 y
CompareFileTime 对比两个文件的时间
2 t* p/ W/ b1 ~' {1 m; S0 ]CopyFile 复制文件
% X. F% R' j2 J& vCreateDirectory 创建一个新目录
# u l% S9 U9 ?9 j8 C8 qCreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 / ]2 |' s" h& Y
CreateFileMapping 创建一个新的文件映射对象
|0 M8 J6 M9 |3 M" c" p! R; ^DeleteFile 删除指定文件 + m2 |& H0 N& U& M+ V! D3 r
DeviceIoControl 对设备执行指定的操作
4 T. ]& A3 Q$ L" f$ r7 {! FDosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值
% a k, u+ @0 n# ~5 m1 u& q+ e3 `FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值 9 M7 h& x6 T# ] B
FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间 3 B5 f0 D& q% B* p, ]
FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构 ' f- O9 @; w5 J n! `+ o3 e
FindClose 关闭由FindFirstFile函数创建的一个搜索句柄 * {6 ?' f5 Q# o- _" m, Y8 B' W
FindFirstFile 根据文件名查找文件
9 N5 Y u" q) B( ZFindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 . p( Q0 E( ]1 }& e/ N! m2 @
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 7 m+ U; _. g: E- ?$ M
FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘
, k( X/ m: u1 @; o' ^% ]9 Y& KGetBinaryType 判断文件是否可以执行 5 g! b+ Y2 Z" B: ^; R/ P
GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 9 n" Q; c3 O8 g$ ?- E
GetCurrentDirectory 在一个缓冲区中装载当前目录 ( j' i7 x0 ]) p' J$ G
DWORD GetCurrentDirectory(
( Y) {# c( n3 h+ F' j DWORD nBufferLength, //缓冲区大小
. l% m7 q" b8 r9 a LPSTR lpBuffer //缓冲区的首地址
4 f7 p1 l5 \8 A/ N3 \" S* z );% y- D8 j- ~& r/ z( ^0 ~3 j
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量
9 D+ d/ R2 ^$ J, \GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息
. {) l( f8 y* `7 D# |1 nGetDriveType 判断一个磁盘驱动器的类型 9 P$ P& C8 i. W/ I0 t6 M
GetExpandedName 取得一个压缩文件的全名
' a3 i9 L: d5 oGetFileAttributes 判断指定文件的属性 / {6 J1 u- F& J( v8 V) q% q( @
GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制 / i; V7 E% D7 ^
GetFileSize 判断文件长度
9 V, S) E) s% V! H* ~' pGetFileTime 取得指定文件的时间信息 - U4 s- u. @( Z1 B) L3 f- M
GetFileType 在给出文件句柄的前提下,判断文件类型
" y8 t9 ?) R0 w. BGetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息
) |3 v+ a6 r8 J; VGetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区
% L @5 N# |+ |0 s! TGetFullPathName 获取指定文件的完整路径名
1 d6 m$ [' R: b$ D% O1 HGetLogicalDrives 判断系统中存在哪些逻辑驱动器字母 : x$ L. q" d( T6 N; H
GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径
& \) A8 D4 r- s6 p: wGetOverlappedResult 判断一个重叠操作当前的状态 3 o" `* @2 u; X9 b; p
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 $ Y H4 n# r. @* B
GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表
" I$ V0 z! R0 r; F- \GetPrivateProfileString 为初始化文件中指定的条目取得字串 ! T) n" v8 d8 }! j
GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
8 |& s2 u' L( l4 g& M8 E" @GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表 ) {: I' v' Z$ c [" A; Z
GetProfileString 为win.ini初始化文件中指定的条目取得字串 ) G* p0 }' |- i v
GetShortPathName 获取指定文件的短路径名
\& N& p0 I$ P) X- c( G' x; SGetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名
, p# K' E0 W2 G7 @) P2 J& lGetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 ) {2 u, H8 }6 [* d d# R# G. e
GetTempPath 获取为临时文件指定的路径 % z4 r+ q: G6 U M M# B
GetVolumeInformation 获取与一个磁盘卷有关的信息
Q$ W( [ h! n3 U" [% IGetWindowsDirectory 获取Windows目录的完整路径名 " I' \2 s$ c& @- }) A8 I+ e
hread 参考lread * T, |9 K ]4 I
hwrite 参考lwrite函数
' D4 X! R- T" Z. h, X; ylclose 关闭指定的文件 7 k3 O. n! i6 J2 r# ]0 A, H4 ?8 R3 _
lcreat 创建一个文件 8 P% I D8 V. X! J) e. d
llseek 设置文件中进行读写的当前位置 % w( I b7 D9 M) a3 A2 ?6 A0 p
LockFile 锁定文件的某一部分,使其不与其他应用程序共享
+ a8 N2 V7 Q# PLockFileEx 与LockFile相似,只是它提供了更多的功能 7 \. ~% Z# m" c) W. h6 B
lopen 以二进制模式打开指定的文件
. e4 O5 K2 p+ g% r! J6 glread 将文件中的数据读入内存缓冲区
* L! y1 X2 C" ]9 Llwrite 将数据从内存缓冲区写入一个文件 ! E: O+ W8 H3 L+ L$ g
LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
0 c. ]3 I6 p* g7 _1 j. V: nLZCopy 复制一个文件 2 S2 U+ W- e! n4 l& ^& M$ Z
LZInit 这个函数用于初始化内部缓冲区 / a6 W/ v: F4 Q
LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件 1 U& y2 S/ a: A6 n
LZRead 将数据从文件读入内存缓冲区
; X9 u& X9 w& k( [& ^; FLZSeek 设置一个文件中进行读写的当前位置
; F% M$ I e7 X8 }: _$ hMapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间
# a* i7 }+ ?5 f! o8 |7 n+ `# g+ F6 }) L$ IMoveFile 移动文件
' e0 |: b9 J+ }, l( \& V+ p) MOpenFile 这个函数能执行大量不同的文件操作 3 [! d, v. g$ |! G- v g+ s. i
OpenFileMapping 打开一个现成的文件映射对象
. ~% ^- N% W( T# C2 lQueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况 0 } ~5 U9 z4 y3 }1 a! e
ReadFile 从文件中读出数据
1 L% J9 R9 U5 EReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
6 D+ T8 ~; N" v% tRegCloseKey 关闭系统注册表中的一个项(或键) T6 p. {3 |4 O$ K, Q
RegConnectRegistry 访问远程系统的部分注册表
' \4 @. G7 O" W$ C0 ZRegCreateKey 在指定的项下创建或打开一个项
3 |5 D8 A/ Z. s! ]RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数 ) k- G3 i r+ F$ d( ], R/ ~: x
RegDeleteKey 删除现有项下方一个指定的子项
/ _) I& S* S2 n2 u- l( e7 Z/ p7 j8 YRegDeleteValue 删除指定项下方的一个值 ) ^9 p0 b; `; ?9 U7 z- y1 \
RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx % B" m" ^2 k5 ~: f, `4 o! Q( D ~9 E9 a
RegEnumKeyEx 枚举指定项下方的子项
; f q9 A% l! r! m5 t& zRegEnumValue 枚举指定项的值
; ^# ~- ~3 K2 V7 ?* I oRegFlushKey 将对项和它的子项作出的改动实际写入磁盘
- B- C" |5 P) E, }( F5 L% ]' ZRegGetKeySecurity 获取与一个注册表项有关的安全信息 & y( M- X' D; a: w( {/ s
RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息
) v+ ?$ G0 B+ x4 Q- w& ~! ~RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制
7 @2 t+ h& B$ YRegOpenKey 打开一个现有的注册表项
7 c' o6 r% U* p* n; l, vRegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
% Z7 M2 i4 B% p+ _" {- Z4 zRegQueryInfoKey 获取与一个项有关的信息
$ G2 k( x# c( R/ W8 f* N- jRegQueryValue 取得指定项或子项的默认(未命名)值 7 m1 j M7 J2 a
RegQueryValueEx 获取一个项的设置值
- B2 s$ G0 E4 LRegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
" {. W" m6 q1 v6 m2 M! jRegRestoreKey 从一个磁盘文件恢复注册表信息
( R* [4 X1 n/ I% R# Z! m5 xRegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件 * S# y3 f2 G% Z$ N; h1 }
RegSetKeySecurity 设置指定项的安全特性
( e4 Y7 ^* z. c0 M5 kRegSetValue 设置指定项或子项的默认值
/ o. E% f& T) CRegSetValueEx 设置指定项的值 0 m( W9 N2 [5 i
RegUnLoadKey 卸载指定的项以及它的所有子项
# @7 e9 W' L) mRemoveDirectory 删除指定目录
. ^ H6 v2 p" W+ ySearchPath 查找指定文件 2 d% R; ]+ T2 q
SetCurrentDirectory 设置当前目录
; S) p* Z7 n8 g/ QSetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾
q- w+ t1 X d i- _ l ~7 dSetFileAttributes 设置文件属性
& E6 l, k' r |' kSetFilePointer 在一个文件中设置当前的读写位置
. ^- c1 C4 {1 z6 FSetFileTime 设置文件的创建、访问及上次修改时间 * e' h4 h( C8 [, a ~9 F. N
SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果
, b: |! y6 {" }3 zSetVolumeLabel 设置一个磁盘的卷标(Label)
3 I6 b* b/ ^* @) |0 LSystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构
* \$ R0 s: o* P* t: C4 x! IUnlockFile 解除对一个文件的锁定
: r$ `9 d, |# H8 fUnlockFileEx 解除对一个文件的锁定
" o* J% A7 Z% R7 G, S0 f1 V/ J5 `UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
4 _+ ?+ Z) u# m2 W1 EVerFindFile 用这个函数决定一个文件应安装到哪里
* r4 @" x! ?; V( AVerInstallFile 用这个函数安装一个文件
& `+ U1 Y4 K9 V i3 IVerLanguageName 这个函数能根据16位语言代码获取一种语言的名称
0 r. P1 @7 B; Q G: \9 v P/ @VerQueryValue 这个函数用于从版本资源中获取信息
7 @* u4 Y% t' xWriteFile 将数据写入一个文件
; G" U; N& L7 ?% o* OWriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调
M0 m% F- t& f+ y6 R) F, b lWritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值
$ g2 s! o' i2 M9 E+ W" Y! BWritePrivateProfileString 在初始化文件指定小节内设置一个字串
5 {' v" V* n# e& `6 g! A4 sWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值 5 V9 `5 j$ v. x& I6 y* J& Z0 H
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串 9 s! d0 N3 h% x+ V+ Q+ B! j% R" v+ ~
4. API之打印函数
4 ? @# W2 ~9 f/ j! m A. iAbortDoc 取消一份文档的打印
2 p; @ S$ X! zAbortPrinter 删除与一台打印机关联在一起的缓冲文件
/ |6 a- m. D7 GAddForm 为打印机的表单列表添加一个新表单 ' C* b, N1 J/ P! p- o
AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号 8 A1 K' A9 h6 \" | i: {
AddMonitor 为系统添加一个打印机监视器 ' \) E- x& |" K( i5 D
AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口 4 f" {9 \ n. l" w4 k
AddPrinter 在系统中添加一台新打印机
{' Y5 M$ W% B, J1 A9 B) }8 gAddPrinterConnection 连接指定的打印机
4 l% p% T; Q6 q1 p$ S# {AddPrinterDriver 为指定的系统添加一个打印驱动程序
1 V6 a+ k+ I v& ~( {4 j2 F2 RAddPrintProcessor 为指定的系统添加一个打印处理器 % u; c6 p5 X! J5 O z
AddPrintProvidor 为系统添加一个打印供应商 9 d# s: u- L8 m: W0 G9 B
AdvancedDocumentProperties 启动打印机文档设置对话框
1 {/ j" k# e- y5 N/ @ClosePrinter 关闭一个打开的打印机对象 9 h8 W, R, X# `; |
ConfigurePort 针对指定的端口,启动一个端口配置对话框
# d+ h* k, F% w! s/ T- Y; |ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接 ; g, ?+ K0 ^; G
DeleteForm 从打印机可用表单列表中删除一个表单 # ^+ U& M$ @3 ~. ]
DeleteMonitor 删除指定的打印监视器
8 K- @3 U" A9 M% \3 a( E4 `DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口
& N5 k# M- s# s t- m, |5 t9 YDeletePrinter 将指定的打印机标志为从系统中删除
" E/ c' Q& ~4 ~* w a7 A$ UDeletePrinterConnection 删除与指定打印机的连接 5 c8 a5 S/ f- \' [+ B6 P
DeletePrinterDriver 从系统删除一个打印机驱动程序 5 d, k" e. k/ g4 z7 }
DeletePrintProcessor 从指定系统删除一个打印处理器 ; d# `/ W; d- b: H2 ^8 j
DeletePrintProvidor 从系统中删除一个打印供应商 + L5 z0 t5 Q/ d& ^+ T: i# ?/ j
DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息
5 _+ m0 A, S" H! l+ WDocumentProperties 打印机配置控制函数 5 {4 z5 }. [' t' O- Z
EndDocAPI 结束一个成功的打印作业 + K# {/ Y% ]2 ~7 Q( A
EndDocPrinter 在后台打印程序的级别指定一个文档的结束
5 e5 T% Y8 @ ^* T3 N! q9 HEndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页
% V6 B, A5 j) I( O! V& pEndPagePrinter 指定一个页在打印作业中的结尾 $ S7 F. w& R( |- i- Z0 O i
EnumForms 枚举一台打印机可用的表单
# s m; z$ e0 o) aEnumJobs 枚举打印队列中的作业
0 {% ?1 V1 K `: o% p( X7 }EnumMonitors 枚举可用的打印监视器 2 ?2 V0 @/ ]5 t3 @, Q
EnumPorts 枚举一个系统可用的端口 4 V; @+ |$ J: A9 u0 M, Y
EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序 ' W5 ~8 l. }% r: w% I5 r
EnumPrinters 枚举系统中安装的打印机 ( p2 a8 }5 h! g/ H& N% d9 N. v6 N, D& {
EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型 " a+ n. ]# Q/ Q% e' t2 {% Q
EnumPrintProcessors 枚举系统中可用的打印处理器 L: X# w* ^7 _* r3 x1 u- f
Escape 设备控制函数 9 b' q$ |( a1 e# |8 T# ^
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象
, j( i/ r: ]* r: p% GFindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化
9 ]- a& F& I9 p9 V0 QFindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因 + }0 K% H; K. V2 l/ J1 a+ ~
FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 ! I* U# D& u+ c) N/ Y
GetForm 取得与指定表单有关的信息
: K6 x2 p0 Z8 L) uGetJob 获取与指定作业有关的信息
; s0 }- E( U- |+ t$ ~$ zGetPrinter 取得与指定打印机有关的信息
3 q3 h4 b, ?5 X+ c0 CGetPrinterData 为打印机设置注册表配置信息 : G# V, s7 f5 {7 q3 V
GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 - V# I$ D/ @2 w# ?
GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
0 P4 |' w y! O( f, `$ }, wGetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录 4 L [+ | k* O* K) y& s4 Q
OpenPrinter 打开指定的打印机,并获取打印机的句柄 ! n6 C' l/ A+ ]) ?
PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框
& J' K0 L! H5 L h: H/ IPrinterProperties 启动打印机属性对话框,以便对打印机进行配置 % ]( I( h' O- m! J
ReadPrinter 从打印机读入数据
+ M) d% v2 \% t: s' n/ NResetDC 重设一个设备场景 & T( T- P! [4 U+ J0 R3 N
ResetPrinter 改变指定打印机的默认数据类型及文档设置 , F- D) i8 W/ `7 K
ScheduleJob 提交一个要打印的作业
5 R3 E2 f6 ^# G- fSetAbortProc 为Windows指定取消函数的地址
# W2 c# S. M' aSetForm 为指定的表单设置信息 ; V) G: c) C$ F: ~
SetJob 对一个打印作业的状态进行控制
: T8 N' Z8 Z! G5 Q& ? k. sSetPrinter 对一台打印机的状态进行控制
2 O# E+ T3 X) ?SetPrinterData 设置打印机的注册表配置信息 4 G4 O. a6 K: e# \; f
StartDoc 开始一个打印作业
6 I7 Q% v1 G5 D) \ {, @StartDocPrinter 在后台打印的级别启动一个新文档 : Y2 }; h* j/ h; {- N: O
StartPage 打印一个新页前要先调用这个函数 ' L/ W; @; x# q0 w
StartPagePrinter 在打印作业中指定一个新页的开始 2 A1 h8 Y5 [/ S( M2 {
WritePrinter 将发送目录中的数据写入打印机 9 l- T& ~/ Q8 U/ o" R+ _
5. API之文本和字体函数 , ~! V) K5 Q8 T
AddFontResource 在Windows系统中添加一种字体资源
6 e5 }/ _. w4 I" gCreateFont 用指定的属性创建一种逻辑字体
. q4 x" c! s" [1 [3 LCreateFontIndirect 用指定的属性创建一种逻辑字体
9 g7 }" k; u8 {( g& Y3 J: V9 S# a& BCreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 % F# N: }$ n8 M F
DrawText 将文本描绘到指定的矩形中 6 O: L* A( h7 w' z# V E0 d" A1 W3 [
DrawTextEx 与DrawText相似,只是加入了更多的功能 % W/ Z3 _. A* y5 _9 M
EnumFontFamilies 列举指定设备可用的字体 & A* u' m' A+ R/ q8 {
EnumFontFamiliesEx 列举指定设备可用的字体 ; k, E5 ^- _9 J& K" ]
EnumFonts 列举指定设备可用的字体 0 g& M) G, |6 E
ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数 ' J) Z p- T0 D8 q$ X
GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 . t! l- t' r: F+ v5 ~7 }# U
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 5 R/ ]1 V5 I5 K4 B t6 O
GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸
1 v% s' W! o& g" A) Y$ f Z2 e) t/ iGetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串
- f* \& S* J: |/ PGetCharWidth 调查字体中一个或多个字符的宽度 ! e/ r* H) u' |0 U8 I
GetFontData 接收一种可缩放字体文件的数据 " u4 j. O4 V$ E) K8 J
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
, r) a& s+ F2 A2 b1 i7 q% |GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息
% f- }5 _% o! V) lGetKerningPairs 取得指定字体的字距信息 . D, g9 o- X7 ^' |' [) |
GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息 ! y _3 H0 ~# m# D$ Z; w: [6 l
GetRasterizerCaps 了解系统是否有能力支持可缩放的字体
$ A7 c; I& h5 Q0 HGetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 6 Z% ~$ p0 K' J( A* P7 B
GetTextAlign 接收一个设备场景当前的文本对齐标志 \4 r2 s7 l. ^4 | ?
GetTextCharacterExtra 判断额外字符间距的当前值
3 C! E2 \ L2 Q# }; d) T6 S( [- @GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
3 @4 e9 A* f2 e4 z, L! |GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 ) v( t: r5 a, }( t, S7 E
GetTextColor 判断当前字体颜色。通常也称为"前景色" j+ h" b& R6 t9 P- H
GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
* Z8 E, L3 R2 G& O& wGetTextExtentPoint 判断一个字串的大小(范围) ) T5 I. P; R3 N
GetTextFace 获取一种字体的字样名
( x, F& H$ u& f: N" RGetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 1 T$ W$ W) i `& @0 M" H
GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态
E: e) y1 }4 Z' pPolyTextOut 描绘一系列字串 ! B+ ]7 F" h$ d8 \+ C: X v
RemoveFontResource 从Windows系统中删除一种字体资源
% [* B! N, `) n$ o9 E& [( {! |SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 ; i$ s- `0 T5 M4 |4 ^
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置 . i# O# h5 o& s- k6 x- j
SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 0 K, A1 M0 I/ @ S8 h+ v. i2 C9 X
SetTextColor 设置当前文本颜色。这种颜色也称为"前景色"
0 _0 z9 n+ |5 c2 f& A+ ESetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理
# L% |( V1 k+ D, VTabbedTextOut 支持制表站的一个文本描绘函数 % F, t5 T7 E3 J( t
TextOut 文本绘图函数
4 v- b9 Q! Q+ ~! ?" C, A5 HWINGDIAPI BOOL WINAPI TextOut(
; q9 Z+ F. @; `0 p7 o: cHDC, //输出设备/ ^! y+ d% N: D! {/ a
int, //输出的横坐标
7 L5 @$ ]' |4 rint, //纵坐标
2 |0 i$ i! E3 QLPCSTR, //输出的文本str5 X5 U& M# U e
int); //文本的长度:lstrlen(str)* l- r6 R0 E: O2 P- ?# i
6. API之菜单函数 2 m" e9 Q: }0 t/ H2 [, K
AppendMenu 在指定的菜单里添加一个菜单项 9 n4 D& g# ?$ F$ d
CheckMenuItem 复选或撤消复选指定的菜单条目 1 i" }, v$ _" ]6 _1 E
CheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目
" P0 m- |5 O1 p; |# A- C* DCreateMenu 创建新菜单 4 L2 i" \/ T& ^+ I$ G* X6 W0 o, ^
CreatePopupMenu 创建一个空的弹出式菜单 4 Z0 M. m8 M5 {6 l8 V
DeleteMenu 删除指定的菜单条目 4 x1 |5 S# r. y" E: g/ l0 B3 n
DestroyMenu 删除指定的菜单 8 M) G" e* }7 K X2 X' J( L
DrawMenuBar 为指定的窗口重画菜单 & n1 S4 _+ O0 i5 P' ]% z1 |8 W: l' d
EnableMenuItem 允许或禁止指定的菜单条目
1 a: b3 x9 t8 F7 E6 e( Y5 a: Q4 jGetMenu 取得窗口中一个菜单的句柄
. s$ x3 }3 K4 M0 h$ JGetMenuCheckMarkDimensions 返回一个菜单复选符的大小
4 P* ]8 n! W4 e# kGetMenuContextHelpId 取得一个菜单的帮助场景ID 2 j- u/ E% M4 t* f7 \3 h9 c
GetMenuDefaultItem 判断菜单中的哪个条目是默认条目
/ O& f- N$ T( @" W7 \- eGetMenuItemCount 返回菜单中条目(菜单项)的数量 ; Z% W" I! ^7 x1 m( P$ z
GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID
, [# }3 `5 e/ @& p/ _& H9 P+ IGetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息
! q& q* b& u9 } r- ]GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 0 K/ m. j( h$ o
GetMenuState 取得与指定菜单条目状态有关的信息 : J! }+ T3 L7 G& S7 h2 }
GetMenuString 取得指定菜单条目的字串
4 Q- {* ]$ T3 n7 n$ @ ^. `GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置
- b+ O+ Z- F$ c& ?- C: XGetSystemMenu 取得指定窗口的系统菜单的句柄 - j' ?8 ?! k9 r$ ]
HiliteMenuItem 控制顶级菜单条目的加亮显示状态
% @9 {' o9 |: s2 a9 X& _9 r* KInsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动 ! @4 b3 ]- Z4 U7 ^. T* z Q8 d
InsertMenuItem 插入一个新菜单条目 + V3 A- o9 v8 E- h, g$ E
IsMenu 判断指定的句柄是否为一个菜单的句柄
) q/ d6 D5 C1 Q0 n( J0 A6 ALoadMenu 从指定的模块或应用程序实例中载入一个菜单
# `2 \+ ?- ?, Y$ a2 d, tLoadMenuIndirect 载入一个菜单 1 \( s5 w, b, a a7 g& x& v
MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 1 W- n& K. D) ?+ a5 V
ModifyMenu 改变菜单条目
9 }. C( G2 i$ r* D+ m5 pRemoveMenu 删除指定的菜单条目
& k2 M5 P1 h+ O. h( _: NSetMenu 设置窗口菜单
6 w( z4 k3 X% p( ?SetMenuContextHelpId 设置一个菜单的帮助场景ID 0 n4 C8 F, \) W# Z
SetMenuDefaultItem 将一个菜单条目设为默认条目
2 q3 y7 n& O# y. b8 C2 x' K# |. }SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)
8 ?% }* F5 a: E2 r1 z$ b3 b$ l% BSetMenuItemInfo 为一个菜单条目设置指定的信息 8 N7 K, l% x" |9 K% s
TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单
0 q. _/ |0 o1 V# W6 m8 ?TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能
# @! y! v1 V: W# @; m! F/ X7. API之位图、图标和光栅运算函数 & g7 t, o0 P ~' _9 S4 `. w
BitBlt 将一幅位图从一个设备场景复制到另一个
3 G5 d6 H5 q, G WINGDIAPI BOOL WINAPI BitBlt(. n7 T4 r0 H! V, ? }
HDC, //目标HDC6 d8 R+ M# q# e) }6 F" K: V
int, //X1
2 y9 O, \# O% n8 Q) w5 M" @int, //Y1
& z* Q" u: R- R+ W6 jint, //width# {8 [1 j$ N* H7 r
int, //height- k" B) a6 c1 K T0 k" O1 `1 n$ P- N0 M
HDC, //源HDC
* P3 W3 W* B! f- Z1 l# Y9 ^int, //右边的距离
6 O" Z0 m( C. P9 yint, //??8 }- N3 ~: ~5 O0 X0 c0 D8 v
DWORD); //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|! t0 R( \# @- U: s9 K2 {
PATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS2 m. u% n6 ^& p* @+ t& f
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
8 W+ B/ ?% }5 `! Z8 ZCopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作
7 F( y* v0 ]: w# Q# H/ g3 xCreateBitmap 按照规定的格式创建一幅与设备有关位图
0 I2 L/ p1 ?! i" b- tCreateBitmapIndirect 创建一幅与设备有关位图
3 F$ G2 @+ R$ hCreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容 8 {$ C# c: h. @
CreateCursor 创建一个鼠标指针 , K& d( v" l. q& t
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图 , j6 j5 m2 {: t
CreateDIBSection 创建一个DIBSection % Q: }# v7 Z2 y3 |* w8 I. b
CreateIcon 创建一个图标
1 p7 K* M. {: sCreateIconIndirect 创建一个图标
/ g8 l5 C1 c9 X" r3 {; P3 i/ `DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 9 W/ R9 G/ S7 M1 R, Z5 t
DestroyIcon 清除图标 0 ]: H A; F, g* s
DrawIcon 在指定的位置画一个图标 5 i& n O: a5 T6 e' g# Q# C- @
DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能 * Q6 o7 t! C: J! H7 U* k
ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
. J6 U& X Y/ W# v: ?5 J9 aExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来
2 B" R2 m) h) {GetBitmapBits 将来自位图的二进制位复制到一个缓冲区 " `" D7 A8 D% M4 w* J. ]) g( R
GetBitmapDimensionEx 取得一幅位图的宽度和高度
8 U# [* \& x+ m) AGetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息
+ [( `/ L9 }5 ]+ B* f2 d rGetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里 ; m) y. }( y8 L6 G8 i9 B
GetIconInfo 取得与图标有关的信息
: `! n2 m; ]: G6 |GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式 5 ^; J* L$ E9 ], H
LoadBitmap 从指定的模块或应用程序实例中载入一幅位图 # `7 K% f P ]9 A
LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针
/ R5 V& l, }8 s0 C- ]' v- r. ZLoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 " ~( J [2 W; a* U* p% f
LoadIcon 从指定的模块或应用程序实例中载入一个图标 & ~1 r5 t! c( S; e& j2 Z
LoadImage 载入一个位图、图标或指针
t- {9 s# x: ~8 f2 m2 `HANDLE LoadImageA(5 K3 _" r% I& f. ^1 v
HINSTANCE, //当前实例句柄:AfxGetInstanceHandle()/ w9 {2 S2 g5 j( Q- ?! E6 T
LPCSTR, //资源所在的目录:c:\help.bmp7 }4 O. b. v/ S, e. v
UINT, //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE
- I0 h5 K: D$ O int, //
/ I' |- W, _: ^ @% m int, //
# v c, `0 H" ~7 V& _% f& _2 ]UINT); //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|
+ P: F" ^' l3 i5 u: BR_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR| m1 E3 e3 }0 j$ V* Z2 q
LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED. Z3 r" O2 r0 m! p% U1 n5 I0 R
MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理
! g0 V0 G3 y- k$ N2 TPatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景
1 N* H% h6 W1 bPlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
5 ?7 w- e: v/ ^ A5 i: TSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图
5 a1 ?. v# s" qSetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 + d) i3 _, R" K: e! n
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息 5 [5 d7 ?% J* K. d
SetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里
2 L. _6 [! z/ @& U, B+ D; lSetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
6 g* s. M' M$ wSetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式
) e8 b6 g1 L2 F( ^# G8 _9 TStretchBlt 将一幅位图从一个设备场景复制到另一个 8 f& A$ H6 a7 K
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
$ Z2 O* F8 o& B8. API之绘图函数 ( \$ n* h: o3 G( a6 a
AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作 ( l/ x' X% T4 G, s( d0 c s
AngleArc 用一个连接弧画一条线 0 m' A* M$ {- o! A# V! K
Arc 画一个圆弧
: I; n; Y# m# \+ `7 H9 k# @7 `BeginPath 启动一个路径分支
- N! ? z! u( RCancelDC 取消另一个线程里的长时间绘图操作 # W0 l$ m4 t4 E7 Y0 g [
Chord 画一个弦 ; t& H9 m. G: x1 U; ~# w
CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 : C) P/ _# v) ~) e' F4 r! n/ |9 `
CloseFigure 描绘到一个路径时,关闭当前打开的图形 ; I$ Z9 M# I0 A- Q
CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄
# l. s0 X7 h3 T# y1 U, ICopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
6 C Y. ^( }+ o( t( ~* `CopyMetaFile 制作指定(标准)图元文件的一个副本 / x1 c2 S& K* _6 S* W" T
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
5 p. _* A- [" }: CCreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)
: [- |/ O( M" v$ h0 mCreateEnhMetaFile 创建一个增强型的图元文件设备场景 5 L" D5 m0 X2 T9 t% R! A1 Y
CreateHatchBrush 创建带有阴影图案的一个刷子
; V& E- I: ?9 ~, Y NCreateMetaFile 创建一个图元文件设备场景
2 V) C' T5 `' W1 hCreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子 ; T4 a& y7 v) l$ W4 _- P
CreatePen 用指定的样式、宽度和颜色创建一个画笔
- d; l6 w) H. a' xCreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
. c, s0 q- m6 T: S6 HCreateSolidBrush 用纯色创建一个刷子 ) u5 D* `7 {: u. }3 b
DeleteEnhMetaFile 删除指定的增强型图元文件
; m [4 ~/ j; `4 k& pDeleteMetaFile 删除指定的图元文件 5 i* R; C3 S* a& X7 H
WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放/ V7 H+ q) y6 k$ U+ J% B/ ~
DrawEdge 用指定的样式描绘一个矩形的边框 5 c z" o1 z) e- ?, x* K$ W$ O
DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
. }8 g+ ]% ]4 |/ \6 V8 j2 q( sDrawFocusRect 画一个焦点矩形 # [$ Z% w2 b0 ?% ^
DrawFrameControl 描绘一个标准控件 , g$ c7 D0 P5 F: W6 W
DrawState 为一幅图象或绘图操作应用各式各样的效果 / I( g2 u, }$ v& R
Ellipse 描绘一个椭圆,由指定的矩形围绕
; c K6 U! l% dEndPath 停止定义一个路径
! s- E; X9 I b1 L5 VEnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录 6 I! W, h# [6 O t
EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录 - X) ?$ w8 M# N, }9 p2 c |# s
EnumObjects 枚举可随同指定设备场景使用的画笔和刷子 : G* m, x* I8 K4 S+ Y
ExtCreatePen 创建一个扩展画笔(装饰或几何) 5 t& E& p+ b+ ^. b7 i
ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
" F/ d/ h9 N- A; tFillPath 关闭路径中任何打开的图形,并用当前刷子填充
3 v% [% V( q6 |9 _4 s! VFillRect 用指定的刷子填充一个矩形 " A& e6 q' x6 F% D2 m! H
FlattenPath 将一个路径中的所有曲线都转换成线段 $ d0 u+ G+ y5 g0 U7 w$ v/ g
FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域
+ p x: u) Z5 k. D; HFrameRect 用指定的刷子围绕一个矩形画一个边框 ; O1 ^$ W2 n% W
GdiComment 为指定的增强型图元文件设备场景添加一条注释信息
& s; a& F$ Y" h) _, X+ qGdiFlush 执行任何未决的绘图操作
& S6 W0 V3 @* z9 _! ]: LGdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 0 Z; _$ c# ^1 ~, \% m( @
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列
z3 @6 Z) K2 E% r VGetArcDirection 画圆弧的时候,判断当前采用的绘图方向
6 d; R" k. \7 ^0 }9 O7 FGetBkColor 取得指定设备场景当前的背景颜色
# I+ @0 f+ K ?- HGetBkMode 针对指定的设备场景,取得当前的背景填充模式
8 X6 M; {$ x# [: ~* ^GetBrushOrgEx 判断指定设备场景中当前选定刷子起点 1 n+ d; A# c3 n& x, w4 g
GetCurrentObject 获得指定类型的当前选定对象
" L( Z/ ~& E# {' K# L- t+ N" QGetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置 8 ~, H% ~* i. G" A, E
GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄 9 Q- V( C" v" w: j1 v
GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里 8 r+ r& q8 X+ [( H
GetEnhMetaFileDescription 返回对一个增强型图元文件的说明
$ s3 }& S1 ^( |* R8 Z9 }0 ]1 ~GetEnhMetaFileHeader 取得增强型图元文件的图元文件头
3 v" O6 b% M. N& E7 \; {GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板
, O: {: h5 W% W9 [% |( QGetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 $ r2 q8 X# \( V; z. W7 P& I) v
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区 $ i* I. G9 |5 U; p
GetMiterLimit 取得设备场景的斜率限制(Miter)设置
/ \( ^% s* J$ D" N. {( S9 C# g7 gGetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色 ! g% Y, |( Z! ~3 K: M
GetObjectAPI 取得对指定对象进行说明的一个结构
2 B, I; P; N$ N. `$ D' z+ `GetObjectType 判断由指定句柄引用的GDI对象的类型 / S& _+ C8 N; M3 L5 E& q( D# v
GetPath 取得对当前路径进行定义的一系列数据
! @9 d7 C1 ], ^! X$ N/ Z; R1 VGetPixel 在指定的设备场景中取得一个像素的RGB值
# f) w7 W! P3 B, oGetPolyFillMode 针对指定的设备场景,获得多边形填充模式
( F+ P4 t* z* e: d2 w. g0 SGetROP2 针对指定的设备场景,取得当前的绘图模式 ; L2 d1 C8 i& \7 c/ G7 ^0 f
GetStockObject 取得一个固有对象(Stock)
1 L( J5 j6 L# w6 r- hGetSysColorBrush 为任何一种标准系统颜色取得一个刷子 : E6 Y* c: {6 x+ |
GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件 * v( N0 n Y' O3 p: o
InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形 0 [& R5 Y* ?$ n# H4 Q
LineDDA 枚举指定线段中的所有点
, ?7 g) U5 J" n# XLineTo 用当前画笔画一条线,从当前位置连到一个指定的点
8 k( I" E% V2 F6 P/ K6 ~MoveToEx 为指定的设备场景指定一个新的当前画笔位置
- {9 o# |5 n0 ~; BPaintDesk 在指定的设备场景中描绘桌面墙纸图案 $ W$ `2 [0 G/ z, N
PathToRegion 将当前选定的路径转换到一个区域里
2 p7 I6 z& ^/ O. o$ oPie 画一个饼图
( h+ e3 t, n' p0 [PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件 / f$ r- W1 M& M0 o" n1 j& Z# ]
PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 1 c7 S8 L8 z: U9 ^
PlayMetaFile 在指定的设备场景中回放一个图元文件 9 M1 M1 \1 K ~6 n, V+ i
PlayMetaFileRecord 回放来自图元文件的单条记录 . x1 G% O& ~" X+ k) }1 x
PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线 2 a E; E; Z( p4 w9 g
PolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成 4 ]2 s, q. \5 A/ ~# T& c6 E
Polygon 描绘一个多边形
k. c) h" s; sPolyline 用当前画笔描绘一系列线段
8 A4 ?! R. c p; k: I" c1 i2 V6 ZPolyPolygon 用当前选定画笔描绘两个或多个多边形 2 d% w4 ^/ K' v5 ^+ \; {
PolyPolyline 用当前选定画笔描绘两个或多个多边形
5 R) ~. j9 z) p( t! kRectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充 f0 ~# q! l& R! J) M/ S- Y- v3 S
RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充 & k; c. X) A2 t8 E7 _5 T5 n5 q9 s+ Z% H
SelectClipPath 将设备场景当前的路径合并到剪切区域里
& d. l7 j: R- L! r9 ySelectObject 为当前设备场景选择图形对象
5 h) |/ K$ {. P/ P$ _1 I WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);
6 [0 G# D N7 N- }5 N3 ZSetArcDirection 设置圆弧的描绘方向
$ O4 R8 Y: ^/ x! l3 WSetBkColor 为指定的设备场景设置背景颜色
+ Y }: A) D9 x( eSetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
: Y& \4 s8 Y1 S( m2 ?SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
7 U$ F' d0 \) g3 {2 oSetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件 ! g ], ~ A- a) f" E9 _4 R( G
SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 B) _; f1 ], N
SetMiterLimit 设置设备场景当前的斜率限制 ; M7 n! L6 v& Q0 m6 x
SetPixel 在指定的设备场景中设置一个像素的RGB值 3 H. H& H4 |, u8 Q6 O
SetPixelV 在指定的设备场景中设置一个像素的RGB值
8 m, u$ s) I) q$ x( |+ MSetPolyFillMode 设置多边形的填充模式 9 z( I3 K) S; }% S, h2 B
SetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致
/ v7 Z# V z2 m/ y$ [8 ESetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件
$ q0 N! ]% W. i; b$ Q1 C0 ^, s& e0 dStrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域 , c' h4 r0 h _& ^ ], f4 R
StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭 6 W+ s) n) [: I9 h! E; m9 k7 h
UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数
/ J! L: ?5 E( B- R& x4 S; nWidenPath 根据选定画笔的宽度,重新定义当前选定的路径
_ j8 ]% {# H9 ?+ M% @' j9. API之设备场景函数
. f! s `/ G9 E! _- {0 G0 LCombineRgn 将两个区域组合为一个新区域
5 v f4 g8 ^. q( D0 j" l! X; ACombineTransform 驱动世界转换。它相当于依顺序进行两次转换
7 {; C# B% F. Q" x T: b0 YCreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景
# N$ ?3 _' P7 o9 YCreateDC 为专门设备创建设备场景
0 h7 N: U9 U( p3 f2 }CreateEllipticRgn 创建一个椭圆 1 ^' l$ ~) D3 H9 F+ ], r7 ^. v( D
CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域 ) w! b2 E: [' l7 ?5 H; L3 U
CreateIC 为专用设备创建一个信息场景 6 h l5 g+ I% v4 h- [
CreatePolygonRgn 创建一个由一系列点围成的区域
& Q K) U7 f& |CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的 2 ]8 u$ \7 M7 ` E f( u
CreateRectRgn 创建一个矩形区域
( l" A! o5 V: a7 s' \; w, U" ACreateRectRgnIndirect 创建一个矩形区域 7 [* F( W1 A5 |' g: ^0 @
CreateRoundRectRgn 创建一个圆角矩形 * M- v2 f% Y! |2 p
DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源
' s, U( ~0 U O* V2 ADPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标
1 J/ R1 v. y3 SEqualRgn 确定两个区域是否相等 8 m& V" j) a, Y) D( L4 g
ExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图
' h/ g* ]/ O; C1 [+ k% HExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域 ; V* g7 M. ^$ I" f
ExtCreateRegion 根据世界转换修改区域 : v" F* g& v" _
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区 7 Z$ d- @% M+ O M) x* a
FillRgn 用指定刷子填充指定区域
2 Y: A0 X! ]7 qFrameRgn 用指定刷子围绕指定区域画一个外框 3 l. w+ c( _4 T( _
GetBoundsRect 获取指定设备场景的边界矩形
) x; ^9 R, g/ d& I% J7 j+ W! uGetClipBox 获取完全包含指定设备场景剪裁区的最小矩形
# `: w4 k! u7 B, _6 a$ S! zGetClipRgn 获取设备场景当前剪裁区
5 z7 _! B+ V. U0 n4 R& KGetDC 获取指定窗口的设备场景
; l4 C: J2 |& P& }GetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项
- k0 C* G, X6 p+ tGetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示) $ t3 _9 Q# r4 n* N
GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息
4 q% E- D, x D* Z9 B! NGetGraphicsMode 确定是否允许增强图形模式(世界转换)
; s+ T& J1 @" T' cGetMapMode 为特定设备场景调入映象模式
7 o: H& i% N8 v/ }2 gGetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
5 \5 `- q$ m1 F! r7 C( oGetRgnBox 获取完全包含指定区域的最小矩形 7 i* g; V. Z" I3 M5 ^% y$ B/ {
GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新
7 W# c( u, `! f9 d- T/ m+ v7 LGetViewportExtEx 获取设备场景视口(viewport)范围 ( L4 P( Q( u3 M& L( E
GetViewportOrgEx 获取设备场景视口起点 6 S. v% `. j/ R/ `+ O0 g
GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景 0 G# {) [# Q/ j
GetWindowExtEx 获取指定设备场景的窗口范围 5 [6 N! l9 `; \; p
GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点
6 a2 ], P9 d& @/ w4 A4 IGetWindowRgn 获取窗口区域
; }9 f+ O) K( _ J( hGetWorldTransform 如果有世界转换,为设备场景获取当前世界转换
; A7 P& G: A4 D( OIntersectClipRect 为指定设备定义一个新的剪裁区
. P, }1 z4 r" AInvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画
r5 o1 y" W0 Y+ h, _" H6 p* j9 g ?1 AInvertRgn 通过颠倒每个像素值反转设备场景指定区域 ) z) w, q9 K% F5 l' M
LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标
. a, W# n$ V0 ~; {0 t, g$ r4 I8 UModifyWorldTransform 根据指定的模式修改世界转换 v% S; P& e& k% D2 s3 T
OffsetClipRgn 按指定量平移设备场景剪裁区 9 T3 O/ {5 `0 \8 r4 t( q
OffsetRgn 按指定偏移量平移指定区域 0 t* ^$ b7 v# d- k2 G6 t. A3 ^
OffsetViewportOrgEx 平移设备场景视口区域 7 h/ l9 Z: Z6 w9 J8 Q0 Q. {
OffsetWindowOrgEx 平移指定设备场景窗口起点 7 M `3 M D4 f0 |( `
PaintRgn 用当前刷子背景色填充指定区域 5 c3 _2 F3 p+ s1 f* L4 X
PtInRegion 确定点是否在指定区域内 + b0 A' q- K: Z% G
PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内) 1 C! i- `2 z9 t* Y
RectInRegion 确定矩形是否有部分在指定区域内 - A; ~# Y$ w: a
RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内) ) G( N3 k% i" O7 G
ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
2 V9 V& `9 H0 ~, Y- F- W- rRestoreDC 从设备场景堆栈恢复一个原先保存的设备场景 ! H) A+ S& p8 C
SaveDC 将指定设备场景状态保存到Windows设备场景堆栈 * ?0 I) l5 t) r9 }; n
ScaleViewportExtEx 缩放设备场景视口的范围
/ u' I. l. V! RScaleWindowExtEx 缩放指定设备场景窗口范围
8 D; n4 W/ X! f% W6 XScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形 ; E: @3 v. U2 V* L4 a: ]* s
SelectClipRgn 为指定设备场景选择新的剪裁区 6 g) e7 d; H& ]. j: C
SetBoundsRect 设置指定设备场景的边界矩形
1 u1 U8 ]3 j& r9 W6 z5 vSetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换) 9 P9 T; B8 T1 f! t5 x. l
SetMapMode 设置指定设备场景的映射模式
1 F2 X) k, c/ @/ w3 BSetRectRgn 设置区域为指定的矩形
) W! `) s& Q5 m) z1 hSetViewportExtEx 设置设备场景视口范围 1 k) r) s7 [+ z# h; Y. c8 Y: X
SetViewportOrgEx 设置设备场景视口起点
) r7 n9 C& N# p% oSetWindowExtEx 设置指定设备场景窗口范围 . G( L9 n6 |! C# f& A; M c
SetWindowOrgEx 设置指定设备场景窗口起点 7 ?1 x) T/ R9 a% ^
SetWindowRgn 设置窗口区域 ( ~/ ]% V! h8 v: ~7 W
SetWorldTransform 设置世界转换
9 W+ w7 B; p* Y; r0 YValidateRgn 激活窗口中指定区域,把它从刷新区移走
/ i9 g- k& R" F8 M- l8 TWindowFromDC 取回与某一设备场景相关的窗口的句柄
! o& U1 `( E z. N ^0 W1 G: ?$ x10. API之硬件与系统函数
: m. E. E) F2 w( h8 VActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 + D; }, Z6 @! ^ b0 `
Beep 用于生成简单的声音
/ q( n$ }9 @6 y. c w) OCharToOem 将一个字串从ANSI字符集转换到OEM字符集
( }- V% d% [( E7 W; a7 T9 ^& rClipCursor 将指针限制到指定区域
. A9 _9 T1 ]7 ~, iConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID 1 ~& ] k" D2 q
CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 & y& K& R+ y2 G0 K' c8 G
DestroyCaret 清除(破坏)一个插入符
! E$ z" o$ r9 B3 F9 hEnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息 $ Q# s' @' J+ C7 D- ?+ a# }
EnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式 0 w( o! P; T$ f% }" l
EnumSystemCodePages 枚举系统中已安装或支持的代码页
1 D. r4 |2 p9 V/ b: KEnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置
/ ^3 ]6 q* g8 ~EnumTimeFormats 枚举一个指定的地方适用的时间格式 4 ?3 P1 ]; L! \ R @8 ]
ExitWindowsEx 退出windows,并用特定的选项重新启动 . Q3 E$ u: n; A# z( K% k
WINUSERAPI BOOL WINAPI ExitWindowsEx(
6 p1 U, w8 o/ h1 A5 F. m3 nUINT uFlags, //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG
1 N( j- ~7 U5 ~ f DWORD dwReserved); //0
7 Q' u/ a- k8 W* [ExpandEnvironmentStrings 扩充环境字串
! r5 g; i; N* B: ZFreeEnvironmentStrings 翻译指定的环境字串块
* C: w& c6 n1 DGetACP 判断目前正在生效的ANSI代码页 / u/ w y& F4 H2 {( F( C, n# H, s
GetAsyncKeyState 判断函数调用时指定虚拟键的状态
" J, t: R5 R) P8 f; CGetCaretBlinkTime 判断插入符光标的闪烁频率
- d. k- H" n5 C. i4 l2 I' @: S$ mGetCaretPos 判断插入符的当前位置 ) a( }" f. e3 Z3 ^, K
GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域 4 m- u9 h8 u) @2 m
GetCommandLine 获得指向当前命令行缓冲区的一个指针
' X6 l- o4 n& O3 ZGetComputerName 取得这台计算机的名称 : n; M* X( a/ A
GetCPInfo 取得与指定代码页有关的信息 8 v5 h9 m$ O* Y* G2 t* T
GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字 $ F8 f' H6 d7 M4 n" E- [
GetCursor 获取目前选择的鼠标指针的句柄 1 F+ }& ^, k) B. d( x% f
GetCursorPos 获取鼠标指针的当前位置 . v* @0 S: |, C+ V" @
GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化 & J# i8 j% X; w8 @1 v* u/ I3 }5 H5 y
GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 0 X* t6 `: s1 l1 M% M$ \
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄 8 a: S6 I8 H+ U% V0 n; W
GetEnvironmentVariable 取得一个环境变量的值
8 [5 @" [) V7 l- t& I% m: qGetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件
% s# l8 r4 z* b( }& _3 g% e+ mGetKBCodePage 由GetOEMCP取代,两者功能完全相同
; D# G. D+ Q0 h" n' C! X! V$ LGetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
6 q! S o! F' _% w, P1 U# p/ L4 zGetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
5 G* g3 D, j3 I5 g) \/ V" ]. h! BGetKeyboardLayoutName 取得当前活动键盘布局的名称
s" F( C" H9 s/ YGetKeyboardState 取得键盘上每个虚拟键当前的状态 3 W. y: |; [: t0 c
GetKeyboardType 了解与正在使用的键盘有关的信息
7 r, [1 k u* ]' F. D- L1 LGetKeyNameText 在给出扫描码的前提下,判断键名 / |0 L, B5 w j
GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态
( g- X, z8 ~$ h G, ]- M) [" aGetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
/ D1 R0 z$ B" g2 {9 yGetLocaleInfo 取得与指定"地方"有关的信息
% c& H- M/ Z# D8 |! aGetLocalTime 取得本地日期和时间 + E$ ]! X; M, t: H$ H! ]
GetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字 - t; Z% ^ P) y- \* `/ J) v
GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
: ?2 f+ H( |2 ]) X: DGetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型 $ N6 l; T1 t2 t, ]. w% t9 Y
GetSysColor 判断指定windows显示对象的颜色 + Q) e9 V1 q+ ]4 K8 d# j0 V& X
GetSystemDefaultLangID 取得系统的默认语言ID
! f0 z8 d+ A$ A5 e& A: TGetSystemDefaultLCID 取得当前的默认系统"地方"
! N9 D5 h/ @+ I* o7 lGetSystemInfo 取得与底层硬件平台有关的信息
" ]% k3 t: J/ k, d2 I/ I$ g, |" \GetSystemMetrics 返回与windows环境有关的信息
" I; `4 D' a0 N6 {$ [7 Q# L; G. jGetSystemPowerStatus 获得与当前系统电源状态有关的信息 y& X* I8 M% G& _6 j1 D9 x, {
GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式
/ r' \; f5 c5 R" bGetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步 g( ?( y% ^$ ]
GetThreadLocale 取得当前线程的地方ID X" S+ c ^$ J+ P# l) A; h
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒) $ Z! D% ?" I" L) L8 K# ^
GetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间 ) ^% U2 @0 W+ d6 Y6 ]! `
GetTimeZoneInformation 取得与系统时区设置有关的信息 * z) p! D4 e5 T( z% o! W: E% E
GetUserDefaultLangID 为当前用户取得默认语言ID
! R/ b) P4 o$ M& m9 B: o+ oGetUserDefaultLCID 取得当前用户的默认"地方"设置 0 y+ N8 t0 g" p
GetUserName 取得当前用户的名字
8 T5 I/ ]! F+ @2 g' pGetVersion 判断当前运行的Windows和DOS版本 % B; m% }, A9 A( `
GetVersionEx 取得与平台和操作系统有关的版本信息
) a, G' B ]/ ?. O( zHideCaret 在指定的窗口隐藏插入符(光标) % C( m% S' W+ Y; v: D5 S
IsValidCodePage 判断一个代码页是否有效 6 `1 ]( B, B$ Z3 i% f- M
IsValidLocale 判断地方标识符是否有效 : I- t9 k. k' \& K8 I
keybd_event 这个函数模拟了键盘行动
% E6 J1 y ] o4 iLoadKeyboardLayout 载入一个键盘布局
0 }6 M2 q2 ]6 }3 |$ \* TMapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 2 b* z! R2 @/ ~! _
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换
; k7 J. v, ^% {- eMessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的 9 S0 f& d ~+ O" ~: N! H+ D
mouse_event 模拟一次鼠标事件 8 e0 f* t+ g# i, X! Z
OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
# F8 `8 t4 |" T! B; T; P& a! nOemToChar 将OEM字符集的一个字串转换到ANSI字符集 " H) g( t4 L$ l& `7 _, x3 E8 ]
SetCaretBlinkTime 指定插入符(光标)的闪烁频率
$ Q* B! G/ G* a$ |& C. ]! sSetCaretPos 指定插入符的位置
; }! i" j5 n1 s" C. W6 A* V1 K- sSetComputerName 设置新的计算机名 / T8 N( x4 j8 v2 m9 ?/ a' U
SetCursor 将指定的鼠标指针设为当前指针 ; p" N3 U4 o) F) E3 u! G& N
SetCursorPos 设置指针的位置
0 b4 d& ^3 }2 B; o. W0 v5 O- RSetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间
( q" ^! K* `( H# x/ F9 R$ _2 i0 KSetEnvironmentVariable 将一个环境变量设为指定的值
- C/ m+ Q8 v8 OSetKeyboardState 设置每个虚拟键当前在键盘上的状态
) w2 L- @& H* B5 T0 XSetLocaleInfo 改变用户"地方"设置信息
1 @$ c5 @" U5 c8 o" T: W* OSetLocalTime 设置当前地方时间
0 Q5 I9 j- T8 _( Z3 o" aSetSysColors 设置指定窗口显示对象的颜色
3 ?# m% b2 c9 Q; W# h. cSetSystemCursor 改变任何一个标准系统指针 ) v. p' x) j; {4 Z5 }, w
SetSystemTime 设置当前系统时间 " x, L5 ~5 q% `" V9 @, S2 r4 U
SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 8 I( i( y1 T3 S
SetThreadLocale 为当前线程设置地方 S+ e$ ~, K1 t8 E# {
SetTimeZoneInformation 设置系统时区信息
! D/ S; b, E# a2 n8 S, J% W# gShowCaret 在指定的窗口里显示插入符(光标) % p U J. [6 \ X5 z
ShowCursor 控制鼠标指针的可视性
* s2 G( n3 Y9 [" s% K5 Y# \SwapMouseButton 决定是否互换鼠标左右键的功能 ! Q3 i* X: d. ~: a' y
SystemParametersInfo 获取和设置数量众多的windows系统参数 % ~ x9 M2 O1 \9 {, k; E" I
SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间 & V5 z- Q# i8 K, d
ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符 % L4 \0 V( b4 B7 N- D9 o: w
ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符 * Q" ~! H4 [: K3 ]1 _/ {$ J5 [
UnloadKeyboardLayout 卸载指定的键盘布局 ' W' d- s$ M9 M0 x) o7 u
VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态 : e* L2 x% K$ W3 i
11. API之进程和线程函数
! s- u: n c8 ~. [CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作 $ M; W5 I4 {- R0 ~! X: f/ l* {" u( _9 O
CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用
X9 c& [8 K6 Y6 A: [4 z3 }$ G2 uConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接
' S; ?9 `6 ?2 x1 d }$ uCreateEvent 创建一个事件对象 3 u& R9 T# n/ [' P$ f0 G) M
CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人) " ^, Y: ]3 W* } B( Y
CreateMutex 创建一个互斥体(MUTEX) ' ^% i. i6 Q# u
CreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用 ! w2 B8 o/ K3 h9 r5 o6 Z X
CreatePipe 创建一个匿名管道
, H, Q f% K' G! j. bCreateProcess 创建一个新进程(比如执行一个程序) 3 Z4 d/ E3 k% U: P ~( n0 l
CreateSemaphore 创建一个新的信号机 ! ~8 A) g E/ _' s
CreateWaitableTimer 创建一个可等待的计时器对象
5 b) n; J: X+ \9 B ADisconnectNamedPipe 断开一个客户与一个命名管道的连接
1 s* U/ ]( F IDuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄
7 f6 G% P- Q% L* z h; Y- Y1 qExitProcess 中止一个进程 ; ?' C- Y! e. V3 T
FindCloseChangeNotification 关闭一个改动通知对象
( {3 h/ J9 n1 m3 F& V u+ rFindExecutable 查找与一个指定文件关联在一起的程序的文件名 ' ?2 X9 g) \8 G; u `# i) o0 b2 u
FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化 0 |3 i0 F& a2 M# a7 [& b& a, ]
FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化
3 z' i, O7 u1 t. p P4 [( KFreeLibrary 释放指定的动态链接库
0 j/ U+ O- m, ]/ X* [% PGetCurrentProcess 获取当前进程的一个伪句柄 5 M- M: ~8 h9 k2 ]0 w
GetCurrentProcessId 获取当前进程一个唯一的标识符 i/ o& }1 y; y" b" r$ P+ U
GetCurrentThread 获取当前线程的一个伪句柄
7 N1 u. _* u& M5 y* c0 }GetCurrentThreadId 获取当前线程一个唯一的线程标识符 $ H: v0 ]6 e1 r1 N6 l, U: x
GetExitCodeProces 获取一个已中断进程的退出代码
% r4 k! w7 l! l8 {( ^GetExitCodeThread 获取一个已中止线程的退出代码 g; R3 M0 ~5 i9 V8 `% N9 c5 y
GetHandleInformation 获取与一个系统对象句柄有关的信息 2 _/ s8 a) C1 q! H9 J
GetMailslotInfo 获取与一个邮路有关的信息 ' u% I) [+ K; @ e
GetModuleFileName 获取一个已装载模板的完整路径名称 9 l! \$ n. M4 r! G( V
GetModuleHandle 获取一个应用程序或动态链接库的模块句柄
* |1 p2 f/ t( X GetModuleHandleA(LPCSTR lpModuleName);
& u& j0 _8 S- S/ f$ Q4 VGetPriorityClass 获取特定进程的优先级别
. G1 [) u0 g3 S0 a+ I6 W3 O5 LGetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 ' t- a8 J, M. O9 [' d" G
GetProcessTimes 获取与一个进程的经过时间有关的信息
7 D) g! Z! m9 _& r# C0 uGetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存 ) W; f$ q1 g- n
GetSartupInfo 获取一个进程的启动信息 ( p, M+ L4 r+ S/ o5 u) F- v
GetThreadPriority 获取特定线程的优先级别
7 t5 c; [; s& j% C( TGetTheardTimes 获取与一个线程的经过时间有关的信息 3 ~5 T' ^- a& u) s j# R
GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符
! x/ F7 l; n- |. D! qLoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
* ^) N& w) R9 K; w2 m8 O1 h% \LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间
3 X) g/ \% ]% R( N9 hLoadModule 载入一个Windows应用程序,并在指定的环境中运行 0 [# e5 B8 u7 c1 f q
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回 * N3 F F9 [$ L6 _- _7 T* G( k
SetPriorityClass 设置一个进程的优先级别 2 l1 q2 Y: Q/ b4 A4 u0 z& i
SetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序 ! y8 h' |+ l: o( C$ l4 p: O
SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量 * e8 t' c O7 f" G
SetThreadPriority 设定线程的优先级别 ' x9 i# Z; C: c K- ^; y
ShellExecute 查找与指定文件关联在一起的程序的文件名 4 K0 `( D5 ]4 l/ F/ b
TerminateProcess 结束一个进程 " ?/ N. ~+ [0 o2 x( x& I) j. @
WinExec 运行指定的程序
; T* J; H) r n12. API之控件与消息函数 - f+ W) ^, q: [4 o8 V& a; j1 T
AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小
: a8 s3 [/ ^7 |- _; z6 BAnyPopup 判断屏幕上是否存在任何弹出式窗口 + x! f$ F* P+ H7 S& g6 Y* P. {
ArrangeIconicWindows 排列一个父窗口的最小化子窗口
! B0 X% v2 P0 @1 g8 k7 Q* D xAttachThreadInput 连接线程输入函数 % ~7 L s& c" Q4 |6 S2 c. |/ S% J
BeginDeferWindowPos 启动构建一系列新窗口位置的过程 8 J) [/ s4 t3 |0 t! |: Y& \
BringWindowToTop 将指定的窗口带至窗口列表顶部
! B" y5 P0 G0 |( `& aCascadeWindows 以层叠方式排列窗口
: I& D' o1 X$ W; {8 h5 p# vChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄
( o; `/ ^! p- L4 m. n+ v% OClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标
* `/ E9 \$ F) T: q8 H0 p3 OCloseWindow 最小化指定的窗口
& `3 ~9 b; @% ^9 a" gCopyRect 矩形内容复制 & w" ^( r1 v6 p3 W$ I
DeferWindowPos 该函数为特定的窗口指定一个新窗口位置
$ n: p# r% R" r$ `DestroyWindow 清除指定的窗口以及它的所有子窗口 2 A* d' B2 }' [6 f2 s" S& G, d: f
DrawAnimatedRects 描绘一系列动态矩形 - A% [# X) `4 L
EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入
0 D S: Y. L) j# IEndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
0 r! _! ?' K! k$ w5 ?EnumChildWindows 为指定的父窗口枚举子窗口
( _7 G9 @3 t; z$ B# t$ L% o5 zEnumThreadWindows 枚举与指定任务相关的窗口 7 S( V0 J/ u/ G+ I3 b5 g
EnumWindows 枚举窗口列表中的所有父窗口 7 y) ]5 _( e) }: {% _: ]
EqualRect 判断两个矩形结构是否相同 * v- \ u. x# X/ {
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 , p; m3 \' h; s
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口 * z* t4 P2 I0 H& f
FlashWindow 闪烁显示指定窗口
5 I7 u0 O3 ^/ N0 s M6 s# o! ^) XGetActiveWindow 获得活动窗口的句柄
- w Z' j/ K; S* g; BGetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收) ' P( B2 a1 |, i" v
GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息
, C- I' {8 W. M7 }. Z' _- p. XGetClassLong 取得窗口类的一个Long变量条目 9 x/ @& j6 [3 o8 ]: n4 P: d6 n7 q
GetClassName 为指定的窗口取得类名
$ ~) J/ l, \9 P, gGetClassWord 为窗口类取得一个整数变量 1 k- ]/ x# ?. u% t1 r+ v; }
GetClientRect 返回指定窗口客户区矩形的大小
6 {8 w6 x# p' j# W! u# z; IGetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
/ z) T; b" N. Q+ A) h i' \6 ~9 QGetFocus 获得拥有输入焦点的窗口的句柄 2 p0 d/ }/ G4 {2 r7 Q4 V Z3 L
GetForegroundWindow 获得前台窗口的句柄
1 {4 ^1 n7 n, f. r- R3 MGetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄 8 x1 E8 t( B8 H
GetParent 判断指定窗口的父窗口
1 t. S! ~! }6 ]5 rGetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄
4 q+ I. T& y/ p: F- E. \GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分
% e# L m& M, u3 V( @GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系
f: O& D2 w+ g; Y; x1 n0 X7 \GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
X- x1 @" D4 V7 s3 H# ^GetWindowLong 从指定窗口的结构中取得信息 5 Z: u$ F7 y+ `5 u4 M& j
GetWindowPlacement 获得指定窗口的状态及位置信息 1 k7 L9 w p0 _3 b7 s8 V
GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
, b, b# k5 U) S6 V% n" mGetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容
. j- \6 Q1 v) dGetWindowTextLength 调查窗口标题文字或控件内容的长短 * @, X6 D: Z6 Q# E3 R5 m4 F i D
GetWindowWord 获得指定窗口结构的信息
4 E1 f* }! p: b6 IInflateRect 增大或减小一个矩形的大小
' \% ~* N+ |' [4 a5 r- x" W" G2 ~IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集
4 L2 R1 |5 T) d* |! z- }InvalidateRect 屏蔽一个窗口客户区的全部或部分区域 8 U2 ?- o" f) u; p$ q- e- P" H
IsChild 判断一个窗口是否为另一窗口的子或隶属窗口 * h- O1 j/ x- |% Y
IsIconic 判断窗口是否已最小化 8 k( `5 g: @( ~
IsRectEmpty 判断一个矩形是否为空
$ _$ H% P/ a/ ~IsWindow 判断一个窗口句柄是否有效 % l/ P' g# j. K9 K/ ?
IsWindowEnabled 判断窗口是否处于活动状态 - t: C0 \; L& A$ K- U0 Z) r n
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 / w* H' B1 Q* G; C0 E9 G# J
IsWindowVisible 判断窗口是否可见
0 m. H# J2 Q! QIsZoomed 判断窗口是否最大化 , M; X8 m7 W/ k
LockWindowUpdate 锁定指定窗口,禁止它更新 2 a2 g' ~3 U/ S3 |7 k
MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统
t+ i* v* i8 T7 j5 B" \MoveWindow 改变指定窗口的位置和大小
/ P1 v/ s$ r5 c! K9 bOffsetRect 通过应用一个指定的偏移,从而让矩形移动起来 2 g3 E: `/ Y+ `) Y
OpenIcon 恢复一个最小化的程序,并将其激活
$ \$ w1 f Z5 e. K' |' v* xPtInRect 判断指定的点是否位于矩形内部 6 i0 f0 d2 V5 P; J. H
RedrawWindow 重画全部或部分窗口
: \% Y) P: s9 kReleaseCapture 为当前的应用程序释放鼠标捕获
0 X) g2 v/ t- z W) _0 B8 E8 wScreenToClient 判断屏幕上一个指定点的客户区坐标
3 X1 b/ w$ ^; Y! r" F2 a' HScrollWindow 滚动窗口客户区的全部或一部分
) U5 c1 P; J$ x0 n# pScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分
: y4 ~3 \0 ]2 S3 |7 G/ aSetActiveWindow 激活指定的窗口
U. R- q, g# d5 b( @3 `5 ~SetCapture 将鼠标捕获设置到指定的窗口 " Q9 s8 m0 T1 A5 ]$ m
SetClassLong 为窗口类设置一个Long变量条目 " p5 J4 h7 u" }5 x% M. {) {$ f
SetClassWord 为窗口类设置一个条目 , c/ w/ {; s' h* a( R
SetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口 2 C7 a% J4 c* J: \; z
SetForegroundWindow 将窗口设为系统的前台窗口 8 E T+ z5 K% e" w- b
SetParent 指定一个窗口的新父
& a% B5 q' C, Z% @2 U8 p/ r* o" {SetRect 设置指定矩形的内容 ! L- ~0 T0 S( G/ Y2 u
SetRectEmpty 将矩形设为一个空矩形
) C4 q6 I) `" `1 y, `" ^9 oSetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID
' ^* X+ q& Y+ t, [) F; V% ISetWindowLong 在窗口结构中为指定的窗口设置信息 1 _: G M3 P- n+ o
SetWindowPlacement 设置窗口状态和位置信息
- V( ?( g! G* Y( c1 SSetWindowPos 为窗口指定一个新位置和状态
. U+ d( y( F- B0 R# {SetWindowText 设置窗口的标题文字或控件的内容
( Z1 e1 ]4 O6 G8 J c cSetWindowWord 在窗口结构中为指定的窗口设置信息 ( ^8 ?! G+ j2 \8 p" Y
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口
5 V' t6 a. q0 D# u CShowWindow 控制窗口的可见性 / {* f* D3 b4 @9 L8 p8 ^' s8 _" @
ShowWindowAsync 与ShowWindow相似
6 W: F$ J v) d# l6 |SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果
& A G! Z2 g0 E& |. `/ YTileWindows 以平铺顺序排列窗口
3 o# h) _# ^% bUnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果
% _. S. O) U: F; n7 `. L' e E1 [UpdateWindow 强制立即更新窗口
# u4 u1 N3 p' d) ~ValidateRect 校验窗口的全部或部分客户区
1 {* S3 B# k* tWindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口% D; d3 d: |% i9 k) c( L: r
高级音频函数—参看《VC++ 编程指南.chm》11.6) z4 ^1 [: W4 X* b7 t
Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。
1 a: m* F+ n' C/ _' ?3 h5 ` BOOL MessageBeep(UINT uType);3 X/ i; ^4 L6 x0 k$ l& D$ B
该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。+ \6 ^9 `# Z ~1 @- N5 E
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。
' [/ {% e3 l' [5 S( _级别
4 a, I3 T I! M1 j3 E | 描述
) H: H4 h: K( R | -1
! S& U, T6 Z7 h | 从机器的扬声器中发出蜂鸣声。 5 E H) a% D" W/ j+ q6 B" F3 c
| MB_ICONASTERISK
" _0 M+ K0 |8 N+ V | 播放由SystemAsterisk定义的声音。 % c$ S# b, @: \+ {% f, F0 o
| MB_ICONEXCLAMATION
4 K- S; Y' r. ~* F5 z9 [5 ^ | 播放由SystemExclamation定义的声音。
j4 {% F* n1 j9 s | MB_ICONHAND
9 O5 q) @0 ~- k m | 播放由SystemHand定义的声音。
5 @+ T# V0 [2 _+ | | MB_ICONQUESTION
9 X6 ]6 f; D! r# {% J | 播放由SystemQuestion定义的声音。
# _7 u: ~: E+ M; X8 ]1 p9 _ | MB_OK
+ o- i* l2 f& l% h2 ~4 H | 播放由SystemDefault定义的声音
. M, ]. a# b/ X: |! Q | BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);
6 A. m7 N* v! w! T) u8 u参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。
" |; a _3 d" j( `参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。& s; i) v' [- m6 t5 e( e9 J v2 g6 r
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。# P$ U: u/ Z5 n# |; r$ s0 ~* W# Q
标志
+ h- m6 `( s( J7 | | 含义 ' F t% M# F9 a3 H% _7 b' d
| SND_APPLICATION
; d& n' d d; d p7 [ | 用应用程序指定的关联来播放声音。
5 X3 \) ~* F5 O* @" r | SND_ALIAS B8 }+ K* m1 o. }
| pszSound参数指定了注册表或WIN.INI中的系统事件的别名。 4 c7 E( E" w) {; h) ?
| SND_ALIAS_ID * X6 G3 _5 N8 Y% Z
| pszSound参数指定了预定义的声音标识符。 0 U. G1 O4 s3 Q! Z$ ]: T
| SND_ASYNC , Z8 ?. v. R. d+ t
| 用异步方式播放声音,PlaySound函数在开始播放后立即返回。 . Y; b; r' ~+ }
| SND_FILENAME
% W# c: }: O/ C# D3 n | pszSound参数指定了WAVE文件名。 1 ~! C7 E8 A. ]7 X9 P
| SND_LOOP 2 {5 ]% H/ M2 Q" Y' a9 w
| 重复播放声音,必须与SND_ASYNC标志一块使用。
. {4 n+ h* n' B& B8 x | SND_MEMORY
: Z! p3 F+ S; G | 播放载入到内存中的声音,此时pszSound是指向声音数据的指针。
2 I# P3 g1 a4 t* |! x: U | SND_NODEFAULT 3 U: K9 B# L/ k: }0 x2 e
| 不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。
) c' J3 p% x0 ]( S | SND_NOSTOP
+ i4 b! \% r7 b" s | PlaySound不打断原来的声音播出并立即返回FALSE。
& _ `/ ]) u. Z' K$ A! N4 L | SND_NOWAIT / N& _! |8 u! W& A1 K
| 如果驱动程序正忙则函数就不播放声音并立即返回。
1 z+ e; \ R d) _4 P9 j3 U8 W! B | SND_PURGE
' n) c' \8 Z. k8 p; [$ t7 e" f$ \ | 停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。
# V3 s& H. {3 B2 R | SND_RESOURCE * N( e$ B$ C; n& y" K- g1 A
| pszSound参数是WAVE资源的标识符,这时要用到hmod参数。 3 y4 A, ?8 m5 M) S
| SND_SYNC
7 g5 n% E E/ l( ` | 同步播放声音,在播放完后PlaySound函数才返回。
4 h/ y" |* b8 f2 R5 L | BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);
" O, ~2 G' q& `& G* b5 r% G函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。$ s2 ~& _ I9 H- f* y
MCI播放
$ P7 z* D) X5 r( X" L$ Q1 z U所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
# ^3 V& \3 x% tMCIERROR mciSendString(
8 u+ e' b& x7 r; bLPCTSTR lpszCommand, //MCI命令字符串3 S( `# D- q, m$ ?/ D) U: S
LPTSTR lpszReturnString, //存放反馈信息的缓冲区
+ h- P' }/ `2 q3 j. I+ m3 A7 {UINT cchReturn, //缓冲区的长度
; |+ o6 y- Q9 w. t1 K$ V& \/ zHANDLE hwndCallback //回调窗口的句柄,一般为NULL
, s9 ]* w6 k# l- f# ?/ ~4 D); //若成功则返回0,否则返回错误码。2 ]; g; B* G. t: E8 P8 c7 \6 V
该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:
$ q/ J" n% `3 aBOOL mciGetErrorString(
& c7 E; d6 e1 s9 S7 q# n- w% fDWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码9 `2 l/ t# G4 h5 n) O* H _! }0 z
LPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区
' ]/ h1 a8 L/ ~1 A! m$ E, {- ]: LUINT cchErrorText //缓冲区的长度; g: F4 Y7 Y8 ~! }0 m8 i
);
# \7 `; x4 Y9 E |
|