|
原文:http://www.cnblogs.com/cltsq/articles/api.html* S2 _. {( d, q9 N, w
1. API之网络函数 7 v! @4 w z2 n% C+ b
WNetAddConnection 创建同一个网络资源的永久性连接
4 O, T* }& X8 R# Y6 x, p: bWNetAddConnection2 创建同一个网络资源的连接
1 E# m( R. ~/ b9 X( W( rWNetAddConnection3 创建同一个网络资源的连接
# l2 R: O0 q/ g8 dWNetCancelConnection 结束一个网络连接
4 a9 Q$ V9 E8 H, h) CWNetCancelConnection2 结束一个网络连接
; |% R4 D5 K( L. j. E1 ~WNetCloseEnum 结束一次枚举操作
" l0 }# Y7 ^. o! K9 e1 I) u3 K! SWNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 : |; L$ I; |% J1 [
WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接 1 v3 P2 k7 j! Q; Q8 l) h7 s. d
WNetEnumResource 枚举网络资源 ' M' N0 h! O p: F+ b' w# r& \7 Y
WNetGetConnection 获取本地或已连接的一个资源的网络名称
8 |) V' [/ v9 |* s" v1 qWNetGetLastError 获取网络错误的扩展错误信息
4 U) r( D* u+ L; w8 V$ Q7 }- bWNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 5 i0 Q! v! y: |8 \& T; K8 I
WNetGetUser 获取一个网络资源用以连接的名字 , y5 ]4 U' x% X
WNetOpenEnum 启动对网络资源进行枚举的过程
/ R3 H8 h- q, f+ q$ u" J7 [2. API之消息函数
2 v7 ~. ? k+ a* f7 i1 o2 `BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口 : B0 }9 \0 i5 l9 y9 n
GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 ) ~; V* [$ W( I) K/ M
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间
; G" |1 B2 W: ]6 q/ yPostMessage 将一条消息投递到指定窗口的消息队列 % e7 ~6 r% h7 d4 s3 ^5 }0 m3 b
PostThreadMessage 将一条消息投递给应用程序 # U3 B( L( A3 F
RegisterWindowMessage 获取分配给一个字串标识符的消息编号
* V% j2 g- I I6 m4 XReplyMessage 答复一个消息
7 P4 x2 M4 m/ h9 F# TSendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 : ~+ V5 H* R9 n8 X. t" K
SendMessageCallback 将一条消息发给窗口 3 _; B3 e9 a2 }
SendMessageTimeout 向窗口发送一条消息
! {8 R8 _& P! b$ W% rSendNotifyMessage 向窗口发送一条消息 # |- A; _: r4 n: {) E& `/ n5 O% z
3. API之文件处理函数
# J' T5 o7 r2 }4 n: ^CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 , i5 U. {/ x" S
CompareFileTime 对比两个文件的时间
- g' a( K7 i. n, c7 {/ J; L# {& TCopyFile 复制文件
* F/ ?2 S* ~2 N2 j1 ICreateDirectory 创建一个新目录 6 q- U7 Q3 ~' H0 _2 W
CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台
7 H! D% N. F, C9 tCreateFileMapping 创建一个新的文件映射对象 . w- M( M# z5 t" o( P" h- M
DeleteFile 删除指定文件
5 W+ V- E) S0 PDeviceIoControl 对设备执行指定的操作 7 S/ L( e: r x1 z# b$ f, u, E
DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值
4 [3 O8 @( I8 \FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值 4 e/ t' ]4 t$ a1 L' {9 D
FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
, Y7 G( q& m8 Y, P! Z, aFileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构 " Q1 w0 `$ M" e; Y8 Z6 q
FindClose 关闭由FindFirstFile函数创建的一个搜索句柄
; [' Z* @2 ]+ o4 nFindFirstFile 根据文件名查找文件
* i9 q, ^1 A- LFindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 % ^8 i$ \1 C/ N6 V
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区
3 K1 ?# N+ b, k/ i" F* sFlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘
, o: W- g- n3 [1 p4 mGetBinaryType 判断文件是否可以执行 9 a/ p* S' a/ h, m1 J, {" f: g
GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 3 E7 {3 w: P! `7 l- D
GetCurrentDirectory 在一个缓冲区中装载当前目录 ' K( `' ^8 E( ]5 j
DWORD GetCurrentDirectory(1 g& f P( N s" ~7 F) {9 l& B
DWORD nBufferLength, //缓冲区大小# t) f" m! b! P. V; G3 f
LPSTR lpBuffer //缓冲区的首地址
+ E d" |' T$ b/ L% A0 e );
3 @3 J/ [& |! _GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 - t8 U% R8 i0 ~5 k% J B$ d* s8 W
GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息
+ k, ]/ F' T9 [! {; zGetDriveType 判断一个磁盘驱动器的类型
m9 n* X2 ~$ i; J- |$ VGetExpandedName 取得一个压缩文件的全名 5 ^8 C" W# x+ f
GetFileAttributes 判断指定文件的属性
7 y3 y9 t1 P( i2 d GGetFileInformationByHandle 这个函数提供了获取文件信息的一种机制 3 U! j" T! L" ^& a& p5 t
GetFileSize 判断文件长度 . x) \" y4 c3 o g# E
GetFileTime 取得指定文件的时间信息 8 b/ ^7 q& L$ R t0 ]6 y) _% t; {
GetFileType 在给出文件句柄的前提下,判断文件类型 & r, j, k, K j* m% }
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息
8 f5 t$ E/ ^ z3 IGetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区
" ]- N* U4 o3 |6 a7 jGetFullPathName 获取指定文件的完整路径名
/ T8 g+ m: [ L4 `: [6 ZGetLogicalDrives 判断系统中存在哪些逻辑驱动器字母 0 ^( [) r' |/ I9 j8 K: y! U7 F
GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 k! h0 S7 p8 T: Z4 G/ N* i
GetOverlappedResult 判断一个重叠操作当前的状态 - P& A% k+ w% y! _' |/ ]
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 + J6 w1 K$ h# W X1 k
GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表
3 N; k: d+ X5 s3 p& _3 N4 VGetPrivateProfileString 为初始化文件中指定的条目取得字串 . P* m3 R: U; F7 G6 N
GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值 4 J B' j( A/ j* h/ _# u
GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
/ n' R, y; n1 f: S) _0 f9 U0 MGetProfileString 为win.ini初始化文件中指定的条目取得字串
& e+ h- y& A+ q bGetShortPathName 获取指定文件的短路径名 , U. A, Q. A! y7 i# _6 _+ D7 H
GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 + o* E. d& E9 r% N0 @! }
GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 4 s# N3 N5 ~; v; f4 l, r
GetTempPath 获取为临时文件指定的路径
. K+ r' l G4 T$ t& fGetVolumeInformation 获取与一个磁盘卷有关的信息
% g/ A, f2 t) y$ k1 S$ _: {GetWindowsDirectory 获取Windows目录的完整路径名 7 P( Y! }& @: `4 D! f' C; {
hread 参考lread
1 }5 {; h7 L7 F% q/ f* Y( Qhwrite 参考lwrite函数 2 J& m; `3 p0 Z, X
lclose 关闭指定的文件
1 m( g* m" B6 V9 x/ A& a: {lcreat 创建一个文件 # p8 z$ y% `. U, {
llseek 设置文件中进行读写的当前位置
3 c9 C3 t! c7 [5 e, aLockFile 锁定文件的某一部分,使其不与其他应用程序共享 $ A" t; B( X" {5 m$ r a
LockFileEx 与LockFile相似,只是它提供了更多的功能 # b7 n9 T/ y1 B' l; _$ k4 W9 ~
lopen 以二进制模式打开指定的文件 % |' j7 ]; e% E; Y
lread 将文件中的数据读入内存缓冲区
" T/ _5 Z' a3 q1 o2 Olwrite 将数据从内存缓冲区写入一个文件
/ g0 f4 k# N& G- BLZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
, j) H/ y5 x& }! L' F& X" \LZCopy 复制一个文件
0 R: J1 \& n! O+ nLZInit 这个函数用于初始化内部缓冲区
! T( N7 W3 b9 | l- HLZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件
$ B/ M9 o/ H* I& u- d p$ P' K8 ILZRead 将数据从文件读入内存缓冲区
; }# Q# U0 D( a+ _0 uLZSeek 设置一个文件中进行读写的当前位置 " X- v$ J0 o6 q0 _! V, R7 D5 E/ ]9 @
MapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间
# H2 K/ u, F9 V5 ^, {+ ~- `MoveFile 移动文件
, |! R* h# z3 [" b2 |4 b9 lOpenFile 这个函数能执行大量不同的文件操作
9 B! d! G! O5 s8 D0 x6 FOpenFileMapping 打开一个现成的文件映射对象
3 T3 f5 t6 p1 e& G/ w' aQueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
/ K/ B. g1 q; F6 n2 h( j/ PReadFile 从文件中读出数据
# g' q" U R, p8 A0 A( _% }8 xReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调 7 G+ J& f8 i3 f: d, \, y& {1 i
RegCloseKey 关闭系统注册表中的一个项(或键)
$ g0 m& f7 x& c% W# _% }+ {3 tRegConnectRegistry 访问远程系统的部分注册表 / x+ P& C3 ]8 }1 q
RegCreateKey 在指定的项下创建或打开一个项 * d! E! I; D. G& l- r
RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数 0 A' f; U L' F
RegDeleteKey 删除现有项下方一个指定的子项
+ o4 G- L1 J& c, r% FRegDeleteValue 删除指定项下方的一个值 $ E2 b6 Q+ M: ?* B4 \
RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx
# ?. ^- r6 U" c0 nRegEnumKeyEx 枚举指定项下方的子项 6 ?1 r0 M! G* E" |+ O8 L6 e
RegEnumValue 枚举指定项的值
E: e. H4 y* K( t* c: iRegFlushKey 将对项和它的子项作出的改动实际写入磁盘 ' r }. V. w* X: p6 a# j! l
RegGetKeySecurity 获取与一个注册表项有关的安全信息
% z7 w3 g3 d+ @' B9 S+ hRegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息 6 I, H3 e3 n7 b. o0 b$ q
RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制 ! M5 C' Z5 X- N* {2 n% N: B( K
RegOpenKey 打开一个现有的注册表项 & H& E4 c/ m) s+ V* W& v0 R
RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数 : l! \/ E/ h6 q, g4 E: d& t
RegQueryInfoKey 获取与一个项有关的信息 3 |4 j0 A$ O# G/ y$ M; a
RegQueryValue 取得指定项或子项的默认(未命名)值
0 I8 B5 {$ v8 \6 iRegQueryValueEx 获取一个项的设置值
' S9 ^/ ?! \8 [$ d2 jRegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
7 {3 o3 e2 _5 x. K, c4 Q' i% W, E0 t' TRegRestoreKey 从一个磁盘文件恢复注册表信息 6 n+ x- ?( I3 j. |5 x u& V/ x
RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件 1 {6 U3 w- p. f7 m8 S
RegSetKeySecurity 设置指定项的安全特性 2 `8 w& p l l% n. R* O
RegSetValue 设置指定项或子项的默认值
& A. t8 Y+ O+ O9 `2 c% d! RRegSetValueEx 设置指定项的值 # g6 w5 D. r2 A* k% \6 S8 G5 v
RegUnLoadKey 卸载指定的项以及它的所有子项
" Y7 W9 y3 p$ ?2 JRemoveDirectory 删除指定目录
, _+ c) o- J' [$ b% [! r/ ASearchPath 查找指定文件
8 Y& z2 d b# _SetCurrentDirectory 设置当前目录
; ^( T6 `% d7 z0 r1 d n) ~, sSetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾 4 q% Z. X! F' X$ e
SetFileAttributes 设置文件属性
- M5 }4 O9 R/ {+ S1 V j! F! F1 hSetFilePointer 在一个文件中设置当前的读写位置
. `( W6 u+ q$ l& g. v9 nSetFileTime 设置文件的创建、访问及上次修改时间
% [" O3 \5 B0 D/ t5 p" NSetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果
+ O+ ]) W! V( e# r1 sSetVolumeLabel 设置一个磁盘的卷标(Label)
# g6 R, y4 a8 _% LSystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构
2 ^; `: L0 _ W- X7 z+ Q+ V" R4 _7 @UnlockFile 解除对一个文件的锁定 , F# i4 P/ E; ^8 ]
UnlockFileEx 解除对一个文件的锁定 $ c7 u5 ?+ g/ N: }% S9 U( N
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
. }, J; @; H9 k% O* ]) kVerFindFile 用这个函数决定一个文件应安装到哪里 * w' {2 @5 W% U! T; @4 p# f
VerInstallFile 用这个函数安装一个文件
7 D! G; S' ?' w; Z# }9 w8 {VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称
4 `: R4 z' E3 ]0 FVerQueryValue 这个函数用于从版本资源中获取信息 ' C9 d5 r0 h S g* W) x* Q: R
WriteFile 将数据写入一个文件
1 b) u; _# h; }" }: Z: W9 j" X1 ~WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调
& Z* o3 t3 p7 K+ NWritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值 $ v: {( V1 d$ p( E1 `
WritePrivateProfileString 在初始化文件指定小节内设置一个字串
. Y$ Y& y. ^+ x4 a+ G+ m5 LWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值 # L. f, ?/ j! A3 l0 D+ k. M% a
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串 . M/ y1 ?% a& b f- `0 ?" M$ W
4. API之打印函数 ( \$ L" [, N% ]5 d/ ]
AbortDoc 取消一份文档的打印
6 m( p9 Z8 K4 A2 e S) Y6 NAbortPrinter 删除与一台打印机关联在一起的缓冲文件
8 |4 Q. R% k: R% ~AddForm 为打印机的表单列表添加一个新表单
* ]. y7 l* R( {$ e' [* pAddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号 , g D0 b( Q6 i( Q4 p% K
AddMonitor 为系统添加一个打印机监视器 $ y8 }' I. R v5 i$ Y8 ^- _! h
AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口
0 @2 D% w& |5 V7 YAddPrinter 在系统中添加一台新打印机 : ~; e p, _! n( r! o
AddPrinterConnection 连接指定的打印机
& Z8 U2 h2 K3 f( h' i* Y; oAddPrinterDriver 为指定的系统添加一个打印驱动程序 l* a) m% B8 ]) A9 H! R
AddPrintProcessor 为指定的系统添加一个打印处理器
' B/ V' T5 {7 L! b/ @9 b6 UAddPrintProvidor 为系统添加一个打印供应商 7 n, u Z; u( \ u
AdvancedDocumentProperties 启动打印机文档设置对话框 & X1 A- J- ^. u0 o
ClosePrinter 关闭一个打开的打印机对象 ' }* U$ O" J5 G; K2 X( ^: J
ConfigurePort 针对指定的端口,启动一个端口配置对话框 4 q. I; Z( G" Z( D& ?7 S i
ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接 ; `* y U4 I1 C/ c% G6 S: r' m
DeleteForm 从打印机可用表单列表中删除一个表单
$ u, p t: C3 ?9 f9 cDeleteMonitor 删除指定的打印监视器 : k" Y# ^% Q, W8 e2 `
DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口
( {: A' L9 e9 b5 z( f* G* @) PDeletePrinter 将指定的打印机标志为从系统中删除
, } g3 L3 T+ p% d7 P0 l0 uDeletePrinterConnection 删除与指定打印机的连接 : u J% ~. _" W
DeletePrinterDriver 从系统删除一个打印机驱动程序
9 R, `( I9 D8 yDeletePrintProcessor 从指定系统删除一个打印处理器
, W4 A: c; n) QDeletePrintProvidor 从系统中删除一个打印供应商 ?* C! M! k$ B6 e, x, S. R6 n9 I% C' b
DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息
# t) _) T- q3 H' k! g- QDocumentProperties 打印机配置控制函数 . Z0 t- c7 ~- H! o# W
EndDocAPI 结束一个成功的打印作业
8 i7 p$ I" z& y' L9 Z$ N k) Y3 L! AEndDocPrinter 在后台打印程序的级别指定一个文档的结束 3 q$ F C: M* i
EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页
, L5 P" t" A/ Q- B) wEndPagePrinter 指定一个页在打印作业中的结尾 7 `3 e" M8 c& x1 f3 l, D3 {7 M2 s
EnumForms 枚举一台打印机可用的表单
, B d' g4 p9 V2 OEnumJobs 枚举打印队列中的作业
# M" ]. e, i+ z* |+ J5 F& [EnumMonitors 枚举可用的打印监视器 3 o% G( c% i. e
EnumPorts 枚举一个系统可用的端口
6 ?3 \3 {! H0 @5 v# ]EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序 ( r o/ J+ w5 L( n) h! c
EnumPrinters 枚举系统中安装的打印机
J" ?; Q: Q# q7 l0 YEnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型
7 F7 E; b0 P) A3 HEnumPrintProcessors 枚举系统中可用的打印处理器
4 G" C) i% E6 i1 L5 \2 W: j4 J; m( w! ~( QEscape 设备控制函数 " i. n; r, T( M% I
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 $ S$ ]( r! b& I1 L
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化
- L7 s! A7 Q# SFindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因 0 W" r" N% Q8 H
FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区
* s6 f9 L+ X/ a! O0 n7 E* kGetForm 取得与指定表单有关的信息
2 x7 d4 z1 w( x" C& _+ fGetJob 获取与指定作业有关的信息 : i4 ^# A4 ]+ ?3 p! A% d
GetPrinter 取得与指定打印机有关的信息 2 n; T$ E$ r6 ?8 M( t
GetPrinterData 为打印机设置注册表配置信息 ( W: W8 }& U+ \6 k# C& F
GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 ( D' N! S- v' n! a* i
GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
6 i5 ^/ ^2 U. R; i' B7 GGetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录 1 C, I6 a; W5 P* }# o F# e
OpenPrinter 打开指定的打印机,并获取打印机的句柄 # o. j( {, O% }" X
PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框 + e. A' H" _6 F6 A( u- k# H( l2 a! P
PrinterProperties 启动打印机属性对话框,以便对打印机进行配置
1 E- w' w9 X3 `: q/ Y$ f$ ?8 |ReadPrinter 从打印机读入数据
3 i6 |7 o5 j: }ResetDC 重设一个设备场景 # K' e. a2 B% f x2 w/ o1 _
ResetPrinter 改变指定打印机的默认数据类型及文档设置
7 ?* @$ o/ u' t3 F* {ScheduleJob 提交一个要打印的作业
/ C- L& }) m; sSetAbortProc 为Windows指定取消函数的地址 $ n3 }3 l& _. F+ |! _2 s
SetForm 为指定的表单设置信息
1 A" O4 v( w D5 P& D/ O/ eSetJob 对一个打印作业的状态进行控制 / F1 B9 T G1 H
SetPrinter 对一台打印机的状态进行控制
* C- i5 m4 `! } E- H) HSetPrinterData 设置打印机的注册表配置信息
) a. [' D' S8 d4 _( }% g& oStartDoc 开始一个打印作业
2 F( r0 Q s" ]& Q8 J7 c, yStartDocPrinter 在后台打印的级别启动一个新文档 . H% o+ F* O, x* o
StartPage 打印一个新页前要先调用这个函数 8 C4 I& b7 y) M1 A
StartPagePrinter 在打印作业中指定一个新页的开始
3 M" ] a4 D7 ^$ M% yWritePrinter 将发送目录中的数据写入打印机 & P3 E7 ^7 K" O0 J: J6 p
5. API之文本和字体函数 " Y+ m" K4 Y) k/ n1 g5 ^
AddFontResource 在Windows系统中添加一种字体资源 2 U) j6 X# L9 z$ `. ?/ F
CreateFont 用指定的属性创建一种逻辑字体
/ Y: o( k# K( P5 k7 A% ~; }CreateFontIndirect 用指定的属性创建一种逻辑字体
/ q/ T! b0 [ o' uCreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 4 n# ~& f; y3 M+ m/ q
DrawText 将文本描绘到指定的矩形中
4 p# h! g: a) w, m8 rDrawTextEx 与DrawText相似,只是加入了更多的功能 $ O1 [. F+ p# ^7 v8 F
EnumFontFamilies 列举指定设备可用的字体
( c% g1 F. Q& ^1 Y2 v, SEnumFontFamiliesEx 列举指定设备可用的字体
% f: a. F( {5 r$ c0 xEnumFonts 列举指定设备可用的字体
' L- R+ U' ~+ K |ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
. [8 e, s% h0 @8 sGetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 " ^- ~0 {% Q2 m7 ^
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 ! v+ V+ @7 b' ?3 g1 j0 b' }
GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸
* R4 s6 ?, ]; jGetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串 / W6 k! H0 J( I: M$ f t! J1 S1 P$ D
GetCharWidth 调查字体中一个或多个字符的宽度
( M2 `- z7 t: U% X' u5 EGetFontData 接收一种可缩放字体文件的数据 " A$ N4 I9 I# a5 u
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息 5 e' A$ Z* U+ g( [$ H- K
GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息
1 d) {% G, z8 y3 I m/ [! v( gGetKerningPairs 取得指定字体的字距信息 . T3 [" E q4 H% @
GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息 + @! H4 ^5 w" n8 z% e: C- m
GetRasterizerCaps 了解系统是否有能力支持可缩放的字体 & g" @; l- E, w
GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素
1 |7 P4 \8 t3 B I# _GetTextAlign 接收一个设备场景当前的文本对齐标志
3 O9 N, r! o$ h I; ?% ]' OGetTextCharacterExtra 判断额外字符间距的当前值 # v+ Q+ {' _. E8 I! n
GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
; N' y1 a3 J7 mGetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 0 F' l9 o0 B8 r& L
GetTextColor 判断当前字体颜色。通常也称为"前景色"
f6 |1 ^+ q- X/ B8 w, l2 nGetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
- h q* o/ W) h' kGetTextExtentPoint 判断一个字串的大小(范围)
0 A/ I! [5 p, K2 Z8 s S3 FGetTextFace 获取一种字体的字样名 + C. \* n8 g3 w% E8 k9 d* Q" V
GetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 - f# S: b/ F0 i+ r
GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态
4 V/ `5 Z! w5 m1 g: L. K& x, gPolyTextOut 描绘一系列字串
; U; N. H$ E0 x: L1 H3 SRemoveFontResource 从Windows系统中删除一种字体资源 7 v8 E( @9 w' s, _$ E9 i3 R1 \
SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 5 s+ p: a2 K+ W, O- c* q# b
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置
- P* O+ j* ?) K2 a9 \% o+ ~SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 ! @7 I T" e1 z- N
SetTextColor 设置当前文本颜色。这种颜色也称为"前景色" # ]' R6 f0 r2 K9 v, p! f
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理
, v0 }. o! p( q+ s$ [3 N) J) FTabbedTextOut 支持制表站的一个文本描绘函数 4 J, n8 B- u. |3 G& u
TextOut 文本绘图函数
0 X# ^1 C! A; [' k% `WINGDIAPI BOOL WINAPI TextOut(; i: ^. ~& A' W9 c$ a' g3 ~
HDC, //输出设备
" w3 m) C! X- b' Lint, //输出的横坐标
4 l1 r5 Q. ]/ p" x0 V1 Q% |- yint, //纵坐标
" N& B" K' V; oLPCSTR, //输出的文本str7 o, _' m' C, {; w. z) h
int); //文本的长度:lstrlen(str)
6 H9 _; \ h& E! ]% J7 B. H6. API之菜单函数
( z( m% }0 z: S! f$ b- Z wAppendMenu 在指定的菜单里添加一个菜单项
% ~0 M9 \2 [1 u" _CheckMenuItem 复选或撤消复选指定的菜单条目
+ ~+ W8 a* Y8 a; FCheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目
; x) a1 m) Q! y9 B0 d8 |$ bCreateMenu 创建新菜单 3 n: i: \9 t" L
CreatePopupMenu 创建一个空的弹出式菜单
& ~) H& g- x; c/ Y* y, Z2 `DeleteMenu 删除指定的菜单条目 6 `( B5 ]3 y- @4 x, h
DestroyMenu 删除指定的菜单
+ |. [# b" X: E% g" D" mDrawMenuBar 为指定的窗口重画菜单 + R- j8 h% A) E# g) I
EnableMenuItem 允许或禁止指定的菜单条目
3 u7 B [1 V3 nGetMenu 取得窗口中一个菜单的句柄 * P% i. F3 r# Z; A
GetMenuCheckMarkDimensions 返回一个菜单复选符的大小
7 W2 e5 h: K' o2 k* G4 X* X! R0 TGetMenuContextHelpId 取得一个菜单的帮助场景ID 7 P% T, k6 w" ?( c. V
GetMenuDefaultItem 判断菜单中的哪个条目是默认条目 2 B4 C" f! @- R8 n
GetMenuItemCount 返回菜单中条目(菜单项)的数量 , c& M6 F' z1 W
GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID
5 K' L: ^% g) |GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 8 V& ]/ X+ a$ d; d
GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 3 n& q$ E1 ^1 g! s1 _2 e
GetMenuState 取得与指定菜单条目状态有关的信息
2 V2 D) n* u3 D4 T/ [GetMenuString 取得指定菜单条目的字串 " j! |8 I6 t% m; i7 o9 u4 s
GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置 2 N+ v1 L8 U/ |& l) X# ] h
GetSystemMenu 取得指定窗口的系统菜单的句柄 1 B9 ^# k: d6 H) P9 c$ s7 A
HiliteMenuItem 控制顶级菜单条目的加亮显示状态 0 P$ X. p) A. _
InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动
: P9 x' K! n1 o5 x# Y; L* GInsertMenuItem 插入一个新菜单条目
* J4 |' E! Y$ {IsMenu 判断指定的句柄是否为一个菜单的句柄 6 d* \1 ]6 F7 j) {3 a. v9 S- I" i
LoadMenu 从指定的模块或应用程序实例中载入一个菜单
+ |5 `- P, M' N6 G8 TLoadMenuIndirect 载入一个菜单
7 e- t! Q& e, I2 V* o1 KMenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 2 I3 [* o4 T- I0 g- Y2 S: M9 G1 D
ModifyMenu 改变菜单条目
& M! O- w, f) IRemoveMenu 删除指定的菜单条目
4 h+ O6 t/ g! Z% r- K7 cSetMenu 设置窗口菜单
/ T6 D$ F! E0 x: N7 TSetMenuContextHelpId 设置一个菜单的帮助场景ID
6 g7 d$ [0 C" t) U5 K+ |SetMenuDefaultItem 将一个菜单条目设为默认条目 ' _0 M7 R; b# d; J% B1 r9 J! G) K& R
SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)
% x: [+ {- e( P: K( QSetMenuItemInfo 为一个菜单条目设置指定的信息 - D0 r, R2 ?1 D/ I0 }+ N7 O: X
TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单
8 ?; \ L7 G" ]" L4 W! ITrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 " h9 P3 o; r. \+ |, W+ r) I
7. API之位图、图标和光栅运算函数 ! M9 t$ d* f% E6 d
BitBlt 将一幅位图从一个设备场景复制到另一个
I" x% n- M) P# c. R! m WINGDIAPI BOOL WINAPI BitBlt(
! `4 b6 W- L3 R: ?1 UHDC, //目标HDC i( Q' B: i/ u5 `7 `
int, //X1: a2 x9 o: I D8 G7 r7 ^* W
int, //Y16 t9 e7 v: p4 d A
int, //width
% Y: V4 `, L1 d$ T/ qint, //height( O3 \6 P( Z- G
HDC, //源HDC8 ~3 B/ g7 B, f2 |
int, //右边的距离
1 i0 Z% P! R+ z! ^/ `0 zint, //??
" z0 i+ Y8 Y# r; uDWORD); //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|# [- P8 Y/ V" A5 A, u' N/ q
PATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS/ e4 j5 g. c5 v; z
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
9 J7 f4 T; g! z! ^CopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作 + Q9 G# ~/ m6 Z; g2 W; H9 F. l
CreateBitmap 按照规定的格式创建一幅与设备有关位图
( S2 b Y% p: ?5 _, aCreateBitmapIndirect 创建一幅与设备有关位图
6 I# L+ q# t2 Z1 T: \& Y) CCreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容
; _' }1 I- @' FCreateCursor 创建一个鼠标指针 9 d0 f+ N6 r0 H$ T9 R) v
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图
0 A; } c9 r7 q7 w5 I/ ~6 LCreateDIBSection 创建一个DIBSection
, I# ]- n' R: p! [6 v+ @5 _, tCreateIcon 创建一个图标 - B9 o: i7 N4 @) Z
CreateIconIndirect 创建一个图标 ; Y9 a4 Z# D0 M( F- k6 b
DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 # t2 i' V5 o: m
DestroyIcon 清除图标
y: ~! J% H9 |4 G1 {1 fDrawIcon 在指定的位置画一个图标
# t+ J6 r+ R* Q6 O( g" M3 l0 @ R- b4 XDrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
, |4 c; N/ Y3 j$ _+ `ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
8 ~1 S7 q, Z6 l1 y% uExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来 , \1 A3 [' \+ ^
GetBitmapBits 将来自位图的二进制位复制到一个缓冲区
( v( w: n/ G" O) h/ c: P2 wGetBitmapDimensionEx 取得一幅位图的宽度和高度 / G- p5 H# s# v2 R
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息 $ q7 {! \5 ^. C/ i, b
GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里 + ]. Y/ g' h4 c9 m! B t0 N: z
GetIconInfo 取得与图标有关的信息 # |0 I) H% S- x; A) r/ s
GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式 6 G- l, s* ~3 a7 X: E: K$ c! t- |2 ?, ?
LoadBitmap 从指定的模块或应用程序实例中载入一幅位图
' L; o- N+ t/ |: OLoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针
1 b+ u$ w5 i$ M' Z/ x. v2 Q; sLoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 & l0 g' ?% @# M8 `4 G$ |- |
LoadIcon 从指定的模块或应用程序实例中载入一个图标
& p! A, B7 h$ c' qLoadImage 载入一个位图、图标或指针
* w- I3 K' n- |HANDLE LoadImageA(' r/ }( u9 L" A' L0 [8 I
HINSTANCE, //当前实例句柄:AfxGetInstanceHandle()
% h% a" W) m1 J$ R* n LPCSTR, //资源所在的目录:c:\help.bmp3 G; x2 |. s. ]& x
UINT, //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE3 x! y2 j8 Z0 b U0 h% J: W
int, //
7 q, q: m# H s- m8 H* f int, //% V9 q6 `- w" a* r
UINT); //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|
7 h& Z1 E5 s4 A$ _6 x/ rR_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|+ \# A" J4 k- Y7 }- C; ]4 U) C
LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED6 u8 Y7 w- b; W5 R
MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理 & P! s# F+ C# `7 P# T2 o
PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景
% N7 D7 P3 R: c8 P: f9 b5 v8 T1 CPlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
) u% A3 O" g7 p9 jSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 8 d) N9 E. d9 O. v8 e2 {; Z' p
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位
3 ~8 ^1 w" n( o6 j! lSetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息 $ [ ]3 s' x. j$ C2 I
SetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里
+ M1 T# W7 Y! P$ C1 x0 R* ?SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
# V4 M; z9 A! w; e4 G! D4 hSetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 / H! X) ]5 j7 j4 b6 K8 d2 c3 U* y; M
StretchBlt 将一幅位图从一个设备场景复制到另一个 $ m6 d( ? n. _ y4 h$ M/ d
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景 9 u) \1 L& j* o- @, q+ ]
8. API之绘图函数
) h& E4 o+ }& o! R! P6 Q* YAbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
' m! }# P+ E/ N) J& rAngleArc 用一个连接弧画一条线
! `/ q8 G8 }! X. I4 p, yArc 画一个圆弧
6 x" }% T- T: ^6 F& IBeginPath 启动一个路径分支
: J/ v8 E0 m* w' @$ ^* i( H4 WCancelDC 取消另一个线程里的长时间绘图操作 " [- R0 \. H+ Z5 t S8 c% m
Chord 画一个弦 5 [( i/ V* Y% b7 g) {; ~
CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 6 y' K& T! \1 q3 e0 e
CloseFigure 描绘到一个路径时,关闭当前打开的图形 * `( P [$ [9 L+ Z) w
CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄
; W5 ~' f4 I$ ]1 Q2 XCopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝) % y( e1 m' @9 U ]9 R
CopyMetaFile 制作指定(标准)图元文件的一个副本
! A2 X- q3 S, QCreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子 0 D6 \3 f$ [. E% n
CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) 2 ~6 o4 j$ ?$ F+ u- n2 p+ o7 ]
CreateEnhMetaFile 创建一个增强型的图元文件设备场景 5 _+ M( [- q0 X$ U
CreateHatchBrush 创建带有阴影图案的一个刷子
/ }* S3 D4 C" L/ N( |CreateMetaFile 创建一个图元文件设备场景 ( b h; \8 c, P8 A
CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子 8 m( Z# t3 {2 e \& d% G9 l
CreatePen 用指定的样式、宽度和颜色创建一个画笔 " a$ h, n9 ]8 A" y0 _ y
CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔 % g2 s6 f6 u# H' X
CreateSolidBrush 用纯色创建一个刷子 + {9 A. H' Y R7 m
DeleteEnhMetaFile 删除指定的增强型图元文件 / n5 a7 h$ ]& Q* ?
DeleteMetaFile 删除指定的图元文件
y; v' H& f) l% v0 d- rWINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放2 R4 B# C/ L5 x. a" ^( o) b
DrawEdge 用指定的样式描绘一个矩形的边框
6 I4 f, H* Q; y G) D. X* }6 C8 oDrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
6 n0 m" y1 }+ n. L6 V2 @DrawFocusRect 画一个焦点矩形
5 K( x5 v, p( mDrawFrameControl 描绘一个标准控件
) K1 X0 a! z4 B1 YDrawState 为一幅图象或绘图操作应用各式各样的效果
' b3 C* } j; V9 }1 vEllipse 描绘一个椭圆,由指定的矩形围绕
( p% l; [1 |1 f, R- M; @1 P4 w6 ZEndPath 停止定义一个路径
) B0 B/ N9 ^7 Y' B% w; wEnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录 * i/ b4 S" W0 x( E$ d: F
EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
" c1 [# w+ J/ N7 T; b3 b* eEnumObjects 枚举可随同指定设备场景使用的画笔和刷子 & v( ?) c; T0 s
ExtCreatePen 创建一个扩展画笔(装饰或几何)
u3 T o7 }$ ^% ~ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域 $ u( |# R' s# ]: R# r9 g
FillPath 关闭路径中任何打开的图形,并用当前刷子填充
U2 G9 D7 j4 G5 _FillRect 用指定的刷子填充一个矩形 7 _& o8 _8 O& d; n+ X& [$ F
FlattenPath 将一个路径中的所有曲线都转换成线段 7 P4 R' L V1 F, I- k8 }
FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域 3 Z* j! }* R0 S: l
FrameRect 用指定的刷子围绕一个矩形画一个边框 # X3 i& |/ A |9 ^' p" A
GdiComment 为指定的增强型图元文件设备场景添加一条注释信息 , A2 i1 k& I& K* ]% h
GdiFlush 执行任何未决的绘图操作 3 s% y; f# [" I0 u A8 u& j4 o U
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 $ y- D: g6 p* l2 W3 ~7 ~ ?" Y
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列
/ }- z5 v6 M+ }4 H; l% J& D7 oGetArcDirection 画圆弧的时候,判断当前采用的绘图方向
6 x, ^) W S' k: P4 _GetBkColor 取得指定设备场景当前的背景颜色 / h* W/ B$ H( h2 g" d% v
GetBkMode 针对指定的设备场景,取得当前的背景填充模式
8 G4 z8 Y" B0 J+ W! QGetBrushOrgEx 判断指定设备场景中当前选定刷子起点
( ]" \+ O" Q0 Y0 ?' VGetCurrentObject 获得指定类型的当前选定对象
3 D" c6 _- ]) D; [GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置 3 b; i2 @* u' L* U: Q% J
GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
& j& J$ D) `/ u9 d3 m. |! pGetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里 & S5 o. D+ y3 h- h: P* i' Y
GetEnhMetaFileDescription 返回对一个增强型图元文件的说明
9 }4 } k: S1 G0 hGetEnhMetaFileHeader 取得增强型图元文件的图元文件头 ; m8 K0 O2 x+ z8 k0 G% d: D
GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 $ d6 |3 p4 y9 b, e$ R; ?* Q% u
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 1 Y; W' ]7 X% f# _ S( |
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区
7 c$ @! w6 [7 b3 K! S" z) S/ o5 [GetMiterLimit 取得设备场景的斜率限制(Miter)设置
4 ]4 w w, H" H7 n9 \4 RGetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
. e& Q1 C) x1 b" E, q kGetObjectAPI 取得对指定对象进行说明的一个结构
; I* p+ E; X0 t; y/ Z4 D, [GetObjectType 判断由指定句柄引用的GDI对象的类型 . {$ L% I V6 y0 d3 T
GetPath 取得对当前路径进行定义的一系列数据
; v2 l8 i& k' B4 LGetPixel 在指定的设备场景中取得一个像素的RGB值
! \4 @) `. L0 z$ s ?GetPolyFillMode 针对指定的设备场景,获得多边形填充模式
5 f3 s0 A8 ~1 g* f' RGetROP2 针对指定的设备场景,取得当前的绘图模式 ) O0 |6 Y5 Z. G; c8 @9 e& ]0 I# B6 L
GetStockObject 取得一个固有对象(Stock) % ^/ m+ d) d1 V8 t
GetSysColorBrush 为任何一种标准系统颜色取得一个刷子 3 k, B+ e8 H* a: a* @/ m/ ?' Z5 `
GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件 P9 W& K- c4 _; V5 E. i
InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形 . N4 L/ [: R0 K/ ~
LineDDA 枚举指定线段中的所有点
. S$ y4 Y w2 I1 T6 iLineTo 用当前画笔画一条线,从当前位置连到一个指定的点 3 v2 ?# x: Z+ S7 U8 E- [# p2 n
MoveToEx 为指定的设备场景指定一个新的当前画笔位置 4 d: F0 G7 d4 U0 E
PaintDesk 在指定的设备场景中描绘桌面墙纸图案
7 I- n3 t8 c5 i h0 X4 XPathToRegion 将当前选定的路径转换到一个区域里 * G. J: R; h7 Q, I7 c7 _4 n* o. ^
Pie 画一个饼图
2 E# D2 I1 v+ o. ~$ @% r3 UPlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件 1 ?7 s; i. A) q
PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录
+ g, |# u. ]1 n5 rPlayMetaFile 在指定的设备场景中回放一个图元文件
$ p0 T" s, M; ^+ @PlayMetaFileRecord 回放来自图元文件的单条记录
/ L& K* c4 R$ j4 b# x) OPolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
# p8 @4 ]% [! d; K ~+ RPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成 4 W4 _" o& c* Q6 T; l3 G3 L
Polygon 描绘一个多边形 3 W; k* t4 r. \/ N# f) J8 C8 ?6 O
Polyline 用当前画笔描绘一系列线段 0 ]9 M$ f* G# R { j
PolyPolygon 用当前选定画笔描绘两个或多个多边形 7 C( ]+ M& F0 T/ p
PolyPolyline 用当前选定画笔描绘两个或多个多边形
& I# u) z6 F9 S7 V; ERectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充 3 c4 b" V& F( v* @, b( w( W+ x% k. ]
RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充 " f/ {+ g! m+ [9 C' s6 ^
SelectClipPath 将设备场景当前的路径合并到剪切区域里 , Z3 R1 I6 j( o z+ W/ V/ o) L/ N
SelectObject 为当前设备场景选择图形对象
% z3 W0 N! Z+ m2 q1 u. k WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);
3 b1 S" L* {- d# T8 X7 ], M" [3 vSetArcDirection 设置圆弧的描绘方向
2 K+ z6 N _- @1 N0 X S" p! t5 uSetBkColor 为指定的设备场景设置背景颜色 7 u/ s6 V! E0 b. Y3 N% r/ q. m
SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式 7 H8 F0 |( a% I& F) D8 X
SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点 F: J- B* J+ G \
SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件 6 U1 A$ O9 ^6 T* `, z2 |% Z
SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 , @0 s! T* u; H2 m* N# d- W) a( w
SetMiterLimit 设置设备场景当前的斜率限制 7 ?( e! K% T& T
SetPixel 在指定的设备场景中设置一个像素的RGB值
+ c8 G3 L5 P8 T5 \SetPixelV 在指定的设备场景中设置一个像素的RGB值 * c6 V- [; e, n1 d8 q9 ]& S; {
SetPolyFillMode 设置多边形的填充模式
8 X$ ?. j8 y- j( @- ?9 q) ]SetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致 0 a# {9 [0 S& f- K7 k
SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件 # _" b; N( a1 `7 m( A4 X8 l- ^ v( e
StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域 : Z A) {2 b2 o" _0 X4 d$ ?
StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭 . J" P# S. r3 w" P5 ?; w% M# K% @
UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数 7 O- C/ |6 Y: {, H
WidenPath 根据选定画笔的宽度,重新定义当前选定的路径
2 p, {; `. L. u& W+ R7 N. A K( t* G6 k9. API之设备场景函数 4 d* B: `! ]+ y5 _! c7 {- B' ?
CombineRgn 将两个区域组合为一个新区域
6 }9 }4 x; p* g2 i) @0 eCombineTransform 驱动世界转换。它相当于依顺序进行两次转换 : q& `# i9 c2 H
CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景
# X, r a1 k1 Q5 N a& iCreateDC 为专门设备创建设备场景 ( X# d% X/ K( s8 B4 M& u
CreateEllipticRgn 创建一个椭圆 ( q+ y2 @" v n& c
CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域 ! |+ v8 F- i8 L- D7 p5 l
CreateIC 为专用设备创建一个信息场景 ! F- q+ s" T" M
CreatePolygonRgn 创建一个由一系列点围成的区域
u& [# n$ ~+ KCreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的
* r& `3 _6 S$ B" n( B6 aCreateRectRgn 创建一个矩形区域 ' r' L- P2 F, N3 G# {
CreateRectRgnIndirect 创建一个矩形区域
4 y$ A# \% a f3 ~! \1 \CreateRoundRectRgn 创建一个圆角矩形
2 M% u* ~& y/ q) e2 T% y% ]DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源 3 @* n1 X+ X H& n: z8 M* b8 Q
DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 " [) Y) m. U( F0 q1 N m8 }
EqualRgn 确定两个区域是否相等 $ q( m" M4 y |! N( U6 x; A
ExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图 : _5 A% {" s" U. L* I
ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域 - m6 |' j, U' I* K" h$ C
ExtCreateRegion 根据世界转换修改区域 0 v* [2 V5 }# o0 I
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
# m4 n9 n& K4 `- W" WFillRgn 用指定刷子填充指定区域 ( ~0 @4 D3 x# _5 K
FrameRgn 用指定刷子围绕指定区域画一个外框 ! J- v$ h. w m' I: K+ g
GetBoundsRect 获取指定设备场景的边界矩形 ! X; t* B5 ]9 g1 {, r; F5 \
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 - O% C6 k5 L; V- R8 n
GetClipRgn 获取设备场景当前剪裁区 ( r" N( t2 U% r7 Y+ z: s
GetDC 获取指定窗口的设备场景
% H$ O: O4 u# y, F' D/ oGetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项
8 S6 T5 T Y& Q0 A6 pGetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示)
8 e* c6 a" B0 lGetDeviceCaps 根据指定设备场景代表的设备的功能返回信息
+ y( G+ a: r( v7 f2 \* nGetGraphicsMode 确定是否允许增强图形模式(世界转换)
f3 _/ T% c6 w1 _) Y) Z" m* l0 YGetMapMode 为特定设备场景调入映象模式
: _) L# G. e$ }0 I* W( {GetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
2 z! W3 W. o7 K! S5 P' E8 wGetRgnBox 获取完全包含指定区域的最小矩形
- \' z2 \2 f7 E9 PGetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新
) U# @( D9 ~# J5 G& ~7 U7 F+ N# L+ yGetViewportExtEx 获取设备场景视口(viewport)范围 L1 F: q$ q# G
GetViewportOrgEx 获取设备场景视口起点 6 K' R+ P- s, E! [1 z# R
GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景
6 L4 X+ N& k6 }/ h6 `4 nGetWindowExtEx 获取指定设备场景的窗口范围
' [/ U" @) |0 F- HGetWindowOrgEx 获取指定设备场景的逻辑窗口的起点
2 a" Y0 b% }9 {1 z6 V/ L4 jGetWindowRgn 获取窗口区域 , k4 a. O. M: K8 X# V; p
GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换
4 X, {- R# t0 ^2 D( H$ y2 n5 RIntersectClipRect 为指定设备定义一个新的剪裁区 " X4 O0 A% L+ \( C: y, a* M! l
InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画
- v& R: ?6 w# o7 D% f- jInvertRgn 通过颠倒每个像素值反转设备场景指定区域 9 F% V* z. W( [3 @
LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标
5 d9 } F1 B4 sModifyWorldTransform 根据指定的模式修改世界转换
' ~0 }6 f4 @( x: C* UOffsetClipRgn 按指定量平移设备场景剪裁区 # z O# ^, P; a2 j* m2 y
OffsetRgn 按指定偏移量平移指定区域
$ u+ j, i+ d! o8 _* cOffsetViewportOrgEx 平移设备场景视口区域 0 D$ { V8 z( [4 H1 C& T( B/ O
OffsetWindowOrgEx 平移指定设备场景窗口起点 / `( y- Y& b3 q5 e2 q/ @4 h
PaintRgn 用当前刷子背景色填充指定区域 : o5 L; N, o' N% r1 _* V' r
PtInRegion 确定点是否在指定区域内
0 q3 d. ^' y% Z8 N. a4 ?( f1 U0 ZPtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内) 5 b; K$ a7 w1 |8 O
RectInRegion 确定矩形是否有部分在指定区域内
' G7 h: B$ k& [8 d; Y1 L+ gRectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内) 6 R+ A4 I+ G0 i4 q1 k& o t) X; ]
ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景 + a# S# t8 j+ Z' j
RestoreDC 从设备场景堆栈恢复一个原先保存的设备场景 1 q8 W# c# M6 M
SaveDC 将指定设备场景状态保存到Windows设备场景堆栈
0 n6 P) d9 R3 A: E; h; FScaleViewportExtEx 缩放设备场景视口的范围
- j; d3 Q5 T M' E+ WScaleWindowExtEx 缩放指定设备场景窗口范围 - Z% C# s a! Q$ b
ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
' ]4 a1 E/ @* l% s9 Z# P5 cSelectClipRgn 为指定设备场景选择新的剪裁区
* {- W: |/ v4 E2 DSetBoundsRect 设置指定设备场景的边界矩形 $ Z0 [& y" r5 W7 d4 |
SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换) 9 O1 }. P9 M2 \) x9 m0 U
SetMapMode 设置指定设备场景的映射模式 5 K% l8 p' s: ?( E* E* s0 E1 D q- ~; G
SetRectRgn 设置区域为指定的矩形 ! F( W- ?3 L7 D
SetViewportExtEx 设置设备场景视口范围
3 U4 F$ v+ Q. ], e4 ySetViewportOrgEx 设置设备场景视口起点 ; Y. G g. c1 P) Z7 O) C" ~0 ^$ i
SetWindowExtEx 设置指定设备场景窗口范围
% }; G Z! l' R& G$ B+ c; T- G8 N. i9 \SetWindowOrgEx 设置指定设备场景窗口起点
K2 M' G% C% h5 _1 o" USetWindowRgn 设置窗口区域 # h- |+ u- I; L8 R0 i9 m$ E9 J4 h
SetWorldTransform 设置世界转换
5 t8 A# ^ T: @, [, {8 \ValidateRgn 激活窗口中指定区域,把它从刷新区移走 5 L- k* M' x& w% ^
WindowFromDC 取回与某一设备场景相关的窗口的句柄
, E' Z0 Y$ [3 g$ M% j! k6 E10. API之硬件与系统函数
. U. E0 k H, {4 U7 l+ U6 g. UActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义
" R4 G0 y* d1 Y& _3 q' v8 WBeep 用于生成简单的声音 $ j% u. R; J+ e0 \7 x* T
CharToOem 将一个字串从ANSI字符集转换到OEM字符集
1 H9 h- `( q( w$ g5 D5 K TClipCursor 将指针限制到指定区域
* Z8 o% W( u% }. @( eConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID 4 B: x$ W& P0 O5 G [- p; c5 W
CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符 ; s" J: T7 T$ C: J
DestroyCaret 清除(破坏)一个插入符
" k- ^' Z/ x7 U( s* j9 D" {/ ^EnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息
! t7 U `1 K: o0 ]7 p6 QEnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式
8 u1 A2 h# P3 \: i( c `, jEnumSystemCodePages 枚举系统中已安装或支持的代码页 / Y% Q& \" Z, X' k
EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置 " x/ i: h4 m3 W. K* ~+ w
EnumTimeFormats 枚举一个指定的地方适用的时间格式
# @( ?$ j3 W% iExitWindowsEx 退出windows,并用特定的选项重新启动 7 Z3 z) r/ A- }( ^' f/ Q- U# J
WINUSERAPI BOOL WINAPI ExitWindowsEx(1 x5 s7 d' q/ |1 r+ a3 o
UINT uFlags, //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG7 E+ }3 g# T$ o4 Z! I, \
DWORD dwReserved); //0( {3 g2 Z. b; J. n! ^
ExpandEnvironmentStrings 扩充环境字串 % |: z) _3 x5 h1 G
FreeEnvironmentStrings 翻译指定的环境字串块
% ~5 |) N: R/ |" d- w4 }4 G; U! hGetACP 判断目前正在生效的ANSI代码页 ; x8 J( y1 f! l7 u) c
GetAsyncKeyState 判断函数调用时指定虚拟键的状态
( l" `' L7 Q* n. YGetCaretBlinkTime 判断插入符光标的闪烁频率 3 u: q" h5 D; ]% Z r3 L$ W
GetCaretPos 判断插入符的当前位置
5 q; z% } Q' u4 xGetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域
1 v, _: e4 A# h2 S) ^GetCommandLine 获得指向当前命令行缓冲区的一个指针 ; z3 Q- x2 P* k
GetComputerName 取得这台计算机的名称 , m S" ^8 F0 O- X5 A: w# u
GetCPInfo 取得与指定代码页有关的信息 2 C1 U, D+ H6 S% Q. t9 B( O
GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字 % A/ t4 f! ~6 y9 o
GetCursor 获取目前选择的鼠标指针的句柄
6 }3 d! }" n! B' F& JGetCursorPos 获取鼠标指针的当前位置
2 {% u1 X1 w/ o1 G' m5 _7 XGetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化 1 R% E# F5 p! v3 e E
GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 6 |4 ?+ [: Q- _( w: ]% B, d
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄 . n4 t, p. x+ A. Q
GetEnvironmentVariable 取得一个环境变量的值 9 P' H3 W' ?. B. A* b
GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件 # ?8 c/ x2 f N6 X
GetKBCodePage 由GetOEMCP取代,两者功能完全相同
6 P7 A9 [9 q' b6 h* |# EGetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局 . M1 X8 s4 [5 p
GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表 / s6 j" b9 N' V1 N$ d
GetKeyboardLayoutName 取得当前活动键盘布局的名称
* J! v5 X3 k7 e% uGetKeyboardState 取得键盘上每个虚拟键当前的状态
/ v& T% {$ ~* mGetKeyboardType 了解与正在使用的键盘有关的信息 9 s; |* M0 N. k' t; V4 ?6 F
GetKeyNameText 在给出扫描码的前提下,判断键名
9 S$ A2 Y5 T9 V( L: P3 ~" H: `GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态
5 w7 A0 ?- z8 v/ bGetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息 ( a0 e* o! e; m6 N- k
GetLocaleInfo 取得与指定"地方"有关的信息 ( B; n' ~3 y* T7 j4 v/ h
GetLocalTime 取得本地日期和时间 7 F$ e' J3 z* D, m8 O) O
GetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字
4 M+ P) T2 [3 d3 ]8 n; j# RGetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
% W1 @. h2 A0 C9 [7 r( YGetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型 * [: D9 T% y4 G3 p3 {' [) Y) [4 d
GetSysColor 判断指定windows显示对象的颜色 ' R. J' y7 X; r9 C2 e) v8 @) U
GetSystemDefaultLangID 取得系统的默认语言ID
3 e7 m# g# ~- K2 \; ?+ ZGetSystemDefaultLCID 取得当前的默认系统"地方" % A; M6 |3 h c/ o# Z8 S0 |, Q
GetSystemInfo 取得与底层硬件平台有关的信息 - L8 m9 z0 d' B! o v# l) r$ g
GetSystemMetrics 返回与windows环境有关的信息
5 R- G7 ~# W5 a. |# W. kGetSystemPowerStatus 获得与当前系统电源状态有关的信息
8 M7 w, n% |. b ~GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式
' w' M- `$ s" s" I" o& n4 kGetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步 5 u6 }8 s/ h4 R, O2 j: G
GetThreadLocale 取得当前线程的地方ID
) p- R( r& U+ w" RGetTickCount 用于获取自windows启动以来经历的时间长度(毫秒) 2 n% ~. f" }) |
GetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间
5 A& d. j! n p2 K; ^7 [- vGetTimeZoneInformation 取得与系统时区设置有关的信息
& \6 w; M2 Y( x, O, MGetUserDefaultLangID 为当前用户取得默认语言ID
9 G3 |( o0 A0 y7 s; i$ s) ~GetUserDefaultLCID 取得当前用户的默认"地方"设置
0 [6 Y, N4 j& D( o! C/ f6 zGetUserName 取得当前用户的名字 , f3 i# b2 E9 @* O _1 z
GetVersion 判断当前运行的Windows和DOS版本
+ U- r. K! {0 I4 O4 u) ~4 zGetVersionEx 取得与平台和操作系统有关的版本信息 5 U# _% x6 J g/ q& h: s
HideCaret 在指定的窗口隐藏插入符(光标)
/ P. e( X1 y* }9 r! ?' EIsValidCodePage 判断一个代码页是否有效
$ p) {& ~! J' O( yIsValidLocale 判断地方标识符是否有效 4 K. s8 ]+ E3 `. C& a ]3 l6 }. R
keybd_event 这个函数模拟了键盘行动
; Z2 [( i, [: Q) j) Q& tLoadKeyboardLayout 载入一个键盘布局 ! K8 N& x5 |# T% k: t. ]$ E
MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 t. U7 a/ O8 v& A7 p8 \
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换
+ E# l) Q9 o4 R" k1 TMessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的 5 n' E0 q- P# D1 R- u
mouse_event 模拟一次鼠标事件 9 c9 s& a# v# z1 w; ?7 A& K# E
OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态 , S" G6 U$ h, R' C
OemToChar 将OEM字符集的一个字串转换到ANSI字符集
! P6 f; g6 Y1 FSetCaretBlinkTime 指定插入符(光标)的闪烁频率
, J7 z+ W3 a. Q/ x8 z7 B8 S9 g) B9 ySetCaretPos 指定插入符的位置
: M2 B4 ~) m$ z9 HSetComputerName 设置新的计算机名 ! Y0 a' K* f* ^" k+ L/ ^) j: Q7 }2 r
SetCursor 将指定的鼠标指针设为当前指针 ) j" Q. V" v5 S: u& {6 n! s! k0 h- {
SetCursorPos 设置指针的位置
* z5 E. N# f) R% \$ ^& g- R4 uSetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 0 @5 F9 G# p1 J6 f# D; Z" U
SetEnvironmentVariable 将一个环境变量设为指定的值 * M N: R/ M i7 Q) T
SetKeyboardState 设置每个虚拟键当前在键盘上的状态 ' |3 ]5 [' o7 z* j! x i, C
SetLocaleInfo 改变用户"地方"设置信息 ' e; W+ h. f4 P5 g; V2 [, k
SetLocalTime 设置当前地方时间
% J/ }" Y ?# n8 Y2 j+ MSetSysColors 设置指定窗口显示对象的颜色
+ I4 B" v1 u' I# TSetSystemCursor 改变任何一个标准系统指针
; j: h6 m% u- j" fSetSystemTime 设置当前系统时间
; C7 {4 M, p# aSetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 : A8 e( k9 N' s5 ~6 m; l' ^# I
SetThreadLocale 为当前线程设置地方
8 S7 m2 e+ E% Y: s7 S0 a4 e, eSetTimeZoneInformation 设置系统时区信息
6 M! k) W, u: ?. T. r4 sShowCaret 在指定的窗口里显示插入符(光标)
$ G4 K8 j, S+ i% a: E- v8 xShowCursor 控制鼠标指针的可视性 ! F0 X: e' C6 x
SwapMouseButton 决定是否互换鼠标左右键的功能
- c% L, C+ \! J: _SystemParametersInfo 获取和设置数量众多的windows系统参数 ; i9 }- f# {; l: R- q% Y! X
SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
$ D5 e& W4 W( i7 iToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符
8 G; X+ o; V5 t$ v$ |" ?3 C, YToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符
+ x3 I, h" ?1 iUnloadKeyboardLayout 卸载指定的键盘布局 2 P/ q8 i; o$ t/ ?/ |, B5 E
VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态
: Q# x& y* q1 C+ H3 z( `* c11. API之进程和线程函数
& c5 o" I. z8 q* r% ?6 NCancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作
8 L. H3 q8 r2 XCallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 . n' r. N) S# V( N D2 J. ~
ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接
, ?- h& [9 }+ QCreateEvent 创建一个事件对象
5 p8 g* A q9 @( WCreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)
- @: m i, E) C! u0 |6 j( N% N5 cCreateMutex 创建一个互斥体(MUTEX)
: d% c3 [# h0 ]5 v3 FCreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用 + O3 A! c1 B! r! e( q
CreatePipe 创建一个匿名管道
+ K9 ~, Q3 _- k- I6 dCreateProcess 创建一个新进程(比如执行一个程序) p/ z$ M9 l% \% w! O s0 t
CreateSemaphore 创建一个新的信号机 1 q3 |! L }2 y5 U
CreateWaitableTimer 创建一个可等待的计时器对象 : P8 ~8 i( L/ z( R% H
DisconnectNamedPipe 断开一个客户与一个命名管道的连接 ! r* u( F, e, i& b
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄 0 J- J' I5 |( h9 h l' S
ExitProcess 中止一个进程
9 U3 M+ P) g( L; SFindCloseChangeNotification 关闭一个改动通知对象 : p \+ k5 V* E
FindExecutable 查找与一个指定文件关联在一起的程序的文件名
, t9 \2 T& m5 }. wFindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化 : @- ?( w% M# a' @/ j
FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化
* U( @8 C* X- h+ ~* n5 j; oFreeLibrary 释放指定的动态链接库 1 H+ D: J }. u; E S$ n* {
GetCurrentProcess 获取当前进程的一个伪句柄
- D6 J2 t" u: o/ F. H; p4 E( _- nGetCurrentProcessId 获取当前进程一个唯一的标识符 6 A8 A4 y4 [0 b7 o
GetCurrentThread 获取当前线程的一个伪句柄 - r) J: D7 l: Z
GetCurrentThreadId 获取当前线程一个唯一的线程标识符
" h2 o D: L' d+ v) t0 [" IGetExitCodeProces 获取一个已中断进程的退出代码
2 U8 m, x- s# ]: F3 d9 D* nGetExitCodeThread 获取一个已中止线程的退出代码
' I5 Q, Y0 e+ l: L6 S4 sGetHandleInformation 获取与一个系统对象句柄有关的信息
6 p) P0 p; d7 ]! Q0 yGetMailslotInfo 获取与一个邮路有关的信息 6 C# y8 H. \' Z: I
GetModuleFileName 获取一个已装载模板的完整路径名称
- r9 V8 e! N3 R0 x8 V+ FGetModuleHandle 获取一个应用程序或动态链接库的模块句柄
9 w8 ], @! w& ?; I* m+ v GetModuleHandleA(LPCSTR lpModuleName);
, h3 E8 L1 }/ g! A R$ q, wGetPriorityClass 获取特定进程的优先级别 9 n- ]4 W7 _8 T0 ?* A8 \( j4 o
GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况 ! S3 n6 ^. h; P6 o
GetProcessTimes 获取与一个进程的经过时间有关的信息 6 D' Z2 V' ?! i" l$ t5 q- G
GetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存
1 H! N+ n8 F: O* Q7 I; ^$ QGetSartupInfo 获取一个进程的启动信息
! ?# k+ \4 J! Q8 b- kGetThreadPriority 获取特定线程的优先级别
3 |* P8 b. V ^. G) `GetTheardTimes 获取与一个线程的经过时间有关的信息
5 U: B; \. u/ k0 S4 iGetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符 6 `0 Q' |3 q* ]* G# C
LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
% n8 `) k' g, X3 Y$ HLoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间 ( p+ J7 ^2 ?2 b% f8 P
LoadModule 载入一个Windows应用程序,并在指定的环境中运行 9 [. e6 r. n9 t; i9 Y
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回
+ F, {% P, o6 {SetPriorityClass 设置一个进程的优先级别
C5 }# y9 i" M( gSetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序 9 @. L) b! V% |# k
SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量 , P* f0 w3 M8 w1 i& m- s; I
SetThreadPriority 设定线程的优先级别 * Z M Q4 n( \& N
ShellExecute 查找与指定文件关联在一起的程序的文件名 % V1 a( |- ?% d. i9 \( V6 y
TerminateProcess 结束一个进程 # }; K3 I$ M3 O# m3 |
WinExec 运行指定的程序 2 W7 f# e% {4 N0 t
12. API之控件与消息函数 % e# G& Z" @6 ^- }1 E7 u |' g3 g6 ]
AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 & N9 Y4 r H1 G
AnyPopup 判断屏幕上是否存在任何弹出式窗口
2 Z( e% F D l Y( IArrangeIconicWindows 排列一个父窗口的最小化子窗口 + d, Y0 j2 n- |. e
AttachThreadInput 连接线程输入函数
]2 ?( n7 v2 s1 fBeginDeferWindowPos 启动构建一系列新窗口位置的过程
8 |' A3 Z3 P9 \: C% JBringWindowToTop 将指定的窗口带至窗口列表顶部
" \2 I" M7 R8 q- H# m1 MCascadeWindows 以层叠方式排列窗口 - m( B, ]3 }% R$ A. ]6 r
ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄
; W) z. L2 i+ vClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标
: `$ V( s( X& }' A5 }, Z+ b+ r0 xCloseWindow 最小化指定的窗口
( K; b |3 e' Z, x H9 N% JCopyRect 矩形内容复制 & k- u4 c$ n6 }4 Y& W a
DeferWindowPos 该函数为特定的窗口指定一个新窗口位置
6 w/ Y: z: N7 W7 v: x- V1 s0 u! xDestroyWindow 清除指定的窗口以及它的所有子窗口
# h. M. b% V7 Y8 FDrawAnimatedRects 描绘一系列动态矩形
3 N' |/ k( h7 w& B2 IEnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入 9 W y6 N7 S0 f6 s
EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态 : R8 ]5 K4 \ E- Z6 I
EnumChildWindows 为指定的父窗口枚举子窗口 / y0 @7 Q/ w1 a( ]! e2 A3 y
EnumThreadWindows 枚举与指定任务相关的窗口 ) |! x# J" O+ d9 {
EnumWindows 枚举窗口列表中的所有父窗口
1 ]5 d: ]; G& s2 Z$ l- h& WEqualRect 判断两个矩形结构是否相同 ( r& _. B( B4 L
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 ; L1 o4 b; O' G; h
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
4 x6 D6 I% Y/ C6 ^! |6 {FlashWindow 闪烁显示指定窗口 0 P: `5 A* _5 d9 r, U
GetActiveWindow 获得活动窗口的句柄 & M7 U5 m1 l' c. `6 }0 F
GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)
. Q1 F* x' S7 J. J ^9 VGetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息
- ]; l& r8 L- a5 V# C3 m7 \+ S( yGetClassLong 取得窗口类的一个Long变量条目
0 c& ~2 Y, p" E' H' i0 Z/ V; X- QGetClassName 为指定的窗口取得类名 0 N$ n: l0 A7 ]- Y) ?4 P7 d2 g
GetClassWord 为窗口类取得一个整数变量
; U. H% m% B3 j9 L/ W$ h5 eGetClientRect 返回指定窗口客户区矩形的大小
* h/ s- ^& ~ Y7 e& bGetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄 * K2 m1 v# N( U- W5 W. o+ j5 ~
GetFocus 获得拥有输入焦点的窗口的句柄
8 P: M' [! v4 Y% x3 P0 ~$ QGetForegroundWindow 获得前台窗口的句柄 $ q& K+ S* M! k) S1 {" Z: s
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄
8 e5 g) x9 T! dGetParent 判断指定窗口的父窗口
+ h4 G2 l0 Z2 }9 e9 o* ^6 BGetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄
% s* I1 L' E$ y0 EGetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 5 t- f1 h& W1 `; d
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系
/ S; n. |- p8 q4 \1 I# rGetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
$ v+ h" b" p: _( y" i/ M4 bGetWindowLong 从指定窗口的结构中取得信息
! H" J* g% n7 H: QGetWindowPlacement 获得指定窗口的状态及位置信息
" S* S* W5 n" w- ?+ yGetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 + M8 Z4 m) J" Z+ X. F9 j: X
GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容
0 {- e0 `: p. a, X! \5 @- _: VGetWindowTextLength 调查窗口标题文字或控件内容的长短 9 O1 X$ u5 Q! {" k$ B, n& [4 f
GetWindowWord 获得指定窗口结构的信息
# t s8 J! b% k) f) o K: |InflateRect 增大或减小一个矩形的大小
5 ?% G |, @, L4 y9 w5 y1 dIntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 - j# S" _9 X, ?6 s/ M4 u
InvalidateRect 屏蔽一个窗口客户区的全部或部分区域 ' E1 [1 |* U$ Z) b3 b- }+ }
IsChild 判断一个窗口是否为另一窗口的子或隶属窗口
3 T. n+ S; E) i1 e y2 eIsIconic 判断窗口是否已最小化 0 Z7 B A1 \: K
IsRectEmpty 判断一个矩形是否为空
, D: i9 _) w$ i- p2 ?" g2 EIsWindow 判断一个窗口句柄是否有效
8 V5 X- z$ Q# l) E; s0 |" vIsWindowEnabled 判断窗口是否处于活动状态 , @5 Z: _+ ?3 d5 }! R; G
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字
- I- t/ Y5 _5 a7 o0 v4 bIsWindowVisible 判断窗口是否可见 % c! c; W( h* \- h; @
IsZoomed 判断窗口是否最大化 ) d; k3 Y6 u4 k' a
LockWindowUpdate 锁定指定窗口,禁止它更新 0 N# W% _; i0 k3 p
MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统
+ _0 h% u1 e/ HMoveWindow 改变指定窗口的位置和大小
5 L. v; j; Z% n9 |OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来 - S. }- M5 `/ O6 D0 z, W
OpenIcon 恢复一个最小化的程序,并将其激活
9 ~! n0 ^* q$ _8 DPtInRect 判断指定的点是否位于矩形内部 6 a$ q u& }. v) ` b! I
RedrawWindow 重画全部或部分窗口
' V- F& \% N kReleaseCapture 为当前的应用程序释放鼠标捕获 9 P& u* ~# t' D) o" u, J0 D7 O
ScreenToClient 判断屏幕上一个指定点的客户区坐标 ' {2 P7 b' H; I1 y7 _* y& s/ J
ScrollWindow 滚动窗口客户区的全部或一部分
9 {1 W4 I! V/ IScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分
3 `, Y% G1 y* |1 b) A1 HSetActiveWindow 激活指定的窗口 $ ]4 O/ b7 D* |. b
SetCapture 将鼠标捕获设置到指定的窗口
4 M# J# Q9 F7 s6 |9 GSetClassLong 为窗口类设置一个Long变量条目 $ V: h% E6 H; z m- H+ \+ w0 V
SetClassWord 为窗口类设置一个条目
1 g7 }0 Y' Z4 q8 e% d! E% MSetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口
8 ]! C1 E( o2 fSetForegroundWindow 将窗口设为系统的前台窗口
' R" w1 `# d* R% |3 m( nSetParent 指定一个窗口的新父
1 H6 J+ V& P0 Q" WSetRect 设置指定矩形的内容 ( O! b' m, L! |" x" t. j) A
SetRectEmpty 将矩形设为一个空矩形 ( D% |: W' y7 r- o- F
SetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID 8 ?+ p. X# @; K- z) |# T$ H
SetWindowLong 在窗口结构中为指定的窗口设置信息 . J- ^; X. |! R$ T/ R8 Q# @
SetWindowPlacement 设置窗口状态和位置信息 ( K, S: C' P" ]2 X
SetWindowPos 为窗口指定一个新位置和状态 # {+ \9 S3 C' P3 y0 M; O+ _
SetWindowText 设置窗口的标题文字或控件的内容
2 s' i8 [. V/ r% K/ a1 DSetWindowWord 在窗口结构中为指定的窗口设置信息 , j) S7 M% T# c. I7 v8 L/ K
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口 2 q4 L. Q2 j' x# Q
ShowWindow 控制窗口的可见性
% ^% @* l* i/ j0 `" }ShowWindowAsync 与ShowWindow相似
9 l- N) C2 Q! I$ _SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果
8 U$ [1 z; @. ?9 k) N6 ^! Q3 @TileWindows 以平铺顺序排列窗口
) s: k. T/ d/ u2 n9 V5 k* f) F1 IUnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果 0 y1 {5 V# b% |% K
UpdateWindow 强制立即更新窗口
, |% T7 W9 p0 `2 H2 lValidateRect 校验窗口的全部或部分客户区 * C' K9 F J' j! A
WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口
( q% x- `( b& C& S4 H高级音频函数—参看《VC++ 编程指南.chm》11.6
! `4 u' x& |$ `8 W Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。3 e- }- |* m8 w) g
BOOL MessageBeep(UINT uType);
2 T: w8 k, m0 W/ ~; i3 `$ O该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。; o( I, S- o) Z
参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。+ X' D( l. ^+ d% n/ ^' W
级别 ! @; ?- i3 Q) B7 D# H" f
| 描述 " q7 O4 _1 L; b f) ?
| -1 / G s/ W6 p' @ V, r
| 从机器的扬声器中发出蜂鸣声。 ; ` {0 X8 O6 s" c7 F) \: s+ o
| MB_ICONASTERISK 5 o: r- ]4 a3 L
| 播放由SystemAsterisk定义的声音。
$ |6 d7 s+ P- S* Z. S- G& z | MB_ICONEXCLAMATION
- [4 w4 |* @6 e/ u$ n | 播放由SystemExclamation定义的声音。 3 E5 N8 a0 ~9 h6 A
| MB_ICONHAND 5 X8 M% i* P. f! C; t
| 播放由SystemHand定义的声音。
/ F7 b; F3 V7 ^& b7 @ U | MB_ICONQUESTION
) I! C' _7 T' u* T- D/ B2 J) s9 E | 播放由SystemQuestion定义的声音。
! m v e& ?. b2 x+ d: D | MB_OK $ v0 `6 G! Z9 C+ }
| 播放由SystemDefault定义的声音 & _/ L T: T. }
| BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);
' ^! Y6 ?! G* U. D6 J" k( O# y4 i v8 b参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。7 ?/ T& P. B9 O
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。
( P" f4 K& z6 Y4 v参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。
B" H* B0 ~9 b! W" n9 ]. H* D标志 6 I( _3 T, P& ^& W. z
| 含义 % z/ b, O) H5 C( U4 s& P# {
| SND_APPLICATION & z8 Y* O0 e1 T+ O
| 用应用程序指定的关联来播放声音。 8 g- d* u, m! N6 w7 F
| SND_ALIAS , w# X& |* \: U j# f5 }) T
| pszSound参数指定了注册表或WIN.INI中的系统事件的别名。
% l3 Y2 a: h! J# s- z | SND_ALIAS_ID / }6 w. f: |2 h8 v2 P
| pszSound参数指定了预定义的声音标识符。 1 i$ z \ }9 C( ~( `
| SND_ASYNC
8 f& f+ |; Q1 K: ^7 w' C p | 用异步方式播放声音,PlaySound函数在开始播放后立即返回。
9 Z7 q/ r. g9 ~; A | SND_FILENAME . N9 \( f" t: Q
| pszSound参数指定了WAVE文件名。
! M( u. w! C9 r0 m) d, W | SND_LOOP ( v0 M) |/ ~" t7 e3 L8 l1 i
| 重复播放声音,必须与SND_ASYNC标志一块使用。
1 y8 W( H }/ c3 J | SND_MEMORY
- x$ L# e# M& l | 播放载入到内存中的声音,此时pszSound是指向声音数据的指针。
, }9 C4 e, a+ U6 R+ p | SND_NODEFAULT / w4 I9 N& T) r
| 不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。
3 ]: Q/ l: H) p/ [: ^0 Q$ E | SND_NOSTOP 0 m' O# N) i" I" h
| PlaySound不打断原来的声音播出并立即返回FALSE。
9 b5 p) y5 U' h3 F" _" A; K) i | SND_NOWAIT
) s* z+ l% r. `/ Z. R) R: x | 如果驱动程序正忙则函数就不播放声音并立即返回。
2 z7 `1 x; V$ j% a; F9 e | SND_PURGE % \* {9 s9 H6 n, } y5 Y3 x
| 停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。 + w' U2 x- ] c/ D
| SND_RESOURCE
. b: g: t& P/ m& q7 H7 t | pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
$ E/ Y' j# f+ q3 W5 p @ | SND_SYNC
5 V7 J! {3 c( W0 Z3 t$ s | 同步播放声音,在播放完后PlaySound函数才返回。
2 {/ U6 g6 M4 x' s1 W, ^ | BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);: X. y" G+ O; o* {
函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。
- g _& Q( p$ p9 D7 e$ N1 TMCI播放
. x' i! d9 B" G& R所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
( p. U& q$ z/ R c6 p' _- zMCIERROR mciSendString(7 {, y* `4 U* G- {. {
LPCTSTR lpszCommand, //MCI命令字符串
3 e* C! Z, i1 x, p0 T: P) b2 ELPTSTR lpszReturnString, //存放反馈信息的缓冲区$ }) f: F/ I$ a9 Y' _) S* {% J9 f
UINT cchReturn, //缓冲区的长度
8 \$ y$ l' T* N! S! p1 u& ^HANDLE hwndCallback //回调窗口的句柄,一般为NULL) F6 ?- o0 _7 R# n5 c( ]; g) I7 F
); //若成功则返回0,否则返回错误码。- \+ w8 f9 z4 {/ b
该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:1 L5 l2 w' B6 Y0 O
BOOL mciGetErrorString(" D( T8 L. k: E6 n$ f1 S
DWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码$ @2 U0 h N6 C
LPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区
; C+ w& O5 t. ?0 s" p* S: X, |UINT cchErrorText //缓冲区的长度
: E, R$ l0 Y: m/ v3 U);2 ?& G& ~: ^/ ]5 F
|
|