|
|
原文:http://www.cnblogs.com/cltsq/articles/api.html+ T( W4 {' ^2 u. A& ~1 |
1. API之网络函数 , M' r4 j$ B) {2 _. U1 M* W
WNetAddConnection 创建同一个网络资源的永久性连接
4 S: r9 w; a9 A" o yWNetAddConnection2 创建同一个网络资源的连接 ! q# W# R5 C- f! S* o+ H
WNetAddConnection3 创建同一个网络资源的连接 " @/ F+ y! u& ]. z% t) r
WNetCancelConnection 结束一个网络连接 . A3 w3 K! L: g: F4 G) L
WNetCancelConnection2 结束一个网络连接
; l. P1 N# K4 ~: w r8 Y6 RWNetCloseEnum 结束一次枚举操作
5 {* T: p y( o8 X4 ~9 r- C* XWNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 7 O7 n5 Z1 I+ i& z
WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接 2 B6 d6 Z6 i) ?0 j/ c) X
WNetEnumResource 枚举网络资源 . ]+ l4 v2 {1 z
WNetGetConnection 获取本地或已连接的一个资源的网络名称
; h4 Q$ E% Z. }& b4 c6 O; LWNetGetLastError 获取网络错误的扩展错误信息 % o. ]0 {4 y% ]
WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称
; e3 e8 U1 H# u2 h) ^3 VWNetGetUser 获取一个网络资源用以连接的名字
8 U' @) p2 H0 K: _; yWNetOpenEnum 启动对网络资源进行枚举的过程
: n' A' K9 g$ w1 Y2. API之消息函数
, k3 F$ ~- w) L0 cBroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口 - I: d D3 M- S" {. I: n
GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 1 e: ?. X# {* E+ @ M7 r; M. ? r
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间
9 F; m: O, Y) m2 O* c4 zPostMessage 将一条消息投递到指定窗口的消息队列 # _9 o, {( r/ [* ~& }/ q' S* M( S
PostThreadMessage 将一条消息投递给应用程序
7 P; } Z7 D8 @9 n( W6 Z a* e$ FRegisterWindowMessage 获取分配给一个字串标识符的消息编号 " x: E( y+ B( [
ReplyMessage 答复一个消息 $ B/ i( e. E3 ~' \# H: t! _4 k
SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口
' ~- m- n% q5 j* i5 FSendMessageCallback 将一条消息发给窗口 . v& N% a3 s* W9 h6 g
SendMessageTimeout 向窗口发送一条消息
( r! u! Y3 y3 g- A2 i5 VSendNotifyMessage 向窗口发送一条消息
: i9 D" H$ B$ V! S% \' t3. API之文件处理函数 % R! y z# k( W f. p, k
CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 4 h9 Y* u' d9 S
CompareFileTime 对比两个文件的时间
% E5 ` |+ }" W- mCopyFile 复制文件 + D4 J! F* u7 N6 M
CreateDirectory 创建一个新目录 " x2 g& C3 y# u, ~
CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 ' N" ]8 g# P- p7 S: i- b) k
CreateFileMapping 创建一个新的文件映射对象 5 X* X" y! N4 L0 r. J
DeleteFile 删除指定文件 / k& m6 }$ U f% G% h
DeviceIoControl 对设备执行指定的操作
! ?' R) W- r' \. }9 C* S" UDosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值 ! P+ q5 y) x7 t) f' H6 d4 s8 r
FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
* j* M% D% t/ u. u! L I, B4 ~FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
4 }2 v% y! j% X, |; qFileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构 ; N6 p% J1 v* _3 U
FindClose 关闭由FindFirstFile函数创建的一个搜索句柄
/ J6 j" m. ~' l" F/ K; [: M& tFindFirstFile 根据文件名查找文件 ; i0 @( V; V4 C7 Q, m# |
FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 ; R9 S) p7 ]. D+ L/ S. i" j
FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区
8 z$ n+ t9 r( E( ?, FFlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 : k! n+ |; \" Q) }# D
GetBinaryType 判断文件是否可以执行 # O W. t6 ?% w6 \- _# o
GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数
: h: n+ j, A/ u2 m# GGetCurrentDirectory 在一个缓冲区中装载当前目录 W) g% k/ N# k: J
DWORD GetCurrentDirectory( h! L5 y# s" T2 N" N% x- N
DWORD nBufferLength, //缓冲区大小9 B8 e# W% n: _3 q$ Q$ ]8 u
LPSTR lpBuffer //缓冲区的首地址0 _4 ^' ?3 q5 \. Y
);: V/ K2 c0 T$ x) I( F y' t
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量
. ~: p* K, H# sGetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息
6 b7 Q; j& q3 r0 x+ Y dGetDriveType 判断一个磁盘驱动器的类型
2 O, N ~3 h3 P/ y* M# ^' ZGetExpandedName 取得一个压缩文件的全名
+ \! W6 d$ H5 u* t9 @GetFileAttributes 判断指定文件的属性
' H3 f( k: o1 |; n7 KGetFileInformationByHandle 这个函数提供了获取文件信息的一种机制 - J" o" c2 h( \7 p, h
GetFileSize 判断文件长度 " g# l+ Q( \: K" _! ?
GetFileTime 取得指定文件的时间信息 . Q' I4 l# G* g$ M4 P4 ~
GetFileType 在给出文件句柄的前提下,判断文件类型 $ ^3 F! o; @. _7 ^3 V8 q
GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息
' O+ V% k6 I) N b' jGetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区 $ G, o. r+ j0 m% M
GetFullPathName 获取指定文件的完整路径名
, p* D0 y+ ^" R* r, oGetLogicalDrives 判断系统中存在哪些逻辑驱动器字母
) x2 U+ G; V, K1 V+ d t9 kGetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 # V+ d( ]/ s# W( V9 b
GetOverlappedResult 判断一个重叠操作当前的状态 3 Z# S4 W2 s# W3 z8 X* ]
GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 : [, ~) v/ e7 G4 S# Y) S, Y
GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表 2 Q0 h1 z+ C: y' {
GetPrivateProfileString 为初始化文件中指定的条目取得字串 , \$ g6 B1 V9 }0 g2 e
GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
, {6 ?+ x+ H1 F5 [4 B A& v$ zGetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表 , d( @# p- |" y, X# Y' Q
GetProfileString 为win.ini初始化文件中指定的条目取得字串
9 A1 {! P# K+ s8 z2 k. N2 L& BGetShortPathName 获取指定文件的短路径名 * {: V* b) w/ V' ~8 N
GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 ) p% n6 ^: O5 L9 a! m: R9 u2 X
GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用 ( H5 \/ s( Z1 }0 ]+ i" J. n. H% `6 P
GetTempPath 获取为临时文件指定的路径 0 a' ^0 M3 n, }2 c5 U$ ^8 H z
GetVolumeInformation 获取与一个磁盘卷有关的信息
& T% I9 S9 N* R5 T3 I3 K! sGetWindowsDirectory 获取Windows目录的完整路径名
# `1 j+ H1 g! S4 khread 参考lread " {/ H& q+ M; {. B
hwrite 参考lwrite函数 2 w5 N" {2 l ?" o: q& h6 ^
lclose 关闭指定的文件 8 _' Z, C7 T. t0 J3 f" B X
lcreat 创建一个文件
9 k6 J( ?9 w a5 r3 e5 |, f1 ollseek 设置文件中进行读写的当前位置
i& d6 L8 t/ Z$ B ?3 O$ [LockFile 锁定文件的某一部分,使其不与其他应用程序共享
7 N- Y5 s" A+ N W* N$ y/ F% \LockFileEx 与LockFile相似,只是它提供了更多的功能 F; l% Q& o6 {) I" g/ y
lopen 以二进制模式打开指定的文件
3 m7 ~8 k( g! I/ V/ e, `$ Flread 将文件中的数据读入内存缓冲区 % V v7 K' H7 A5 I, E1 x6 S
lwrite 将数据从内存缓冲区写入一个文件
9 R6 W1 O9 ]) x, I/ lLZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件 9 l' L0 r2 d& {! J* M
LZCopy 复制一个文件
9 n1 X! c6 ]6 i. FLZInit 这个函数用于初始化内部缓冲区 ; [; Z- e% @0 {" G2 x$ a3 N1 c
LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件 ) h, s7 ~8 v5 m
LZRead 将数据从文件读入内存缓冲区 * X# H# b+ }8 w/ N
LZSeek 设置一个文件中进行读写的当前位置
8 e" M( `# ?4 EMapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间 2 c; T S- y, m( p8 @/ Z" Y
MoveFile 移动文件
0 |/ o B( m( m2 A3 \* u [OpenFile 这个函数能执行大量不同的文件操作 . F& f9 j1 D5 Y+ }6 X
OpenFileMapping 打开一个现成的文件映射对象
. Z W+ V5 b5 V5 ?QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
5 ]7 M S3 p2 ^$ ~+ t1 eReadFile 从文件中读出数据
# m9 s* T$ w1 L ?2 V; K. SReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
! k" y# ^+ _* Q8 ERegCloseKey 关闭系统注册表中的一个项(或键) & p$ l O, b2 {1 t) i0 t. H
RegConnectRegistry 访问远程系统的部分注册表 1 C1 D6 G: g8 _; k' B4 f
RegCreateKey 在指定的项下创建或打开一个项
) y" \4 M# Z, Z* xRegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数
3 ~% }, `0 l+ |RegDeleteKey 删除现有项下方一个指定的子项 3 C [/ o* Q9 h7 e2 U- f3 t# J2 j
RegDeleteValue 删除指定项下方的一个值 % [+ {1 P. l- T# W/ X
RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx
, s1 I; l l; F, H8 B* V( ?RegEnumKeyEx 枚举指定项下方的子项
& k7 _# l4 t7 R2 LRegEnumValue 枚举指定项的值 6 W3 { {/ i" D3 ?) J; I( N: `3 s
RegFlushKey 将对项和它的子项作出的改动实际写入磁盘
/ q9 U+ h- m! s( @" HRegGetKeySecurity 获取与一个注册表项有关的安全信息 : }. p! m+ ~; N6 R% w$ ]4 E3 r" b
RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息
, r# ~' K2 m( |. ]. @RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制
+ X# q, p9 z M, H4 b, |4 v& o( tRegOpenKey 打开一个现有的注册表项
! v" C+ a- M( \8 b* hRegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数 " W, q" T5 N3 V' c) {
RegQueryInfoKey 获取与一个项有关的信息 " I. L% T' Z) d7 w5 P
RegQueryValue 取得指定项或子项的默认(未命名)值
' n. U! x) k# Y" FRegQueryValueEx 获取一个项的设置值
5 o6 D f4 H1 zRegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
6 B+ B2 n* ?& |RegRestoreKey 从一个磁盘文件恢复注册表信息
% {; b% j7 n3 fRegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件 - ^1 m9 n, m& C/ a! H/ U S* y
RegSetKeySecurity 设置指定项的安全特性
' m0 b, g7 M; i+ s L- I( sRegSetValue 设置指定项或子项的默认值 & Q+ E8 A+ O. }7 z x( |9 }
RegSetValueEx 设置指定项的值 8 v7 U* A0 v2 x) p, A! A4 p) i
RegUnLoadKey 卸载指定的项以及它的所有子项 : ?1 C9 t4 A5 N; K, v2 s
RemoveDirectory 删除指定目录 ^6 ]9 g9 n3 y% w
SearchPath 查找指定文件 6 I8 M: F8 X8 s& s, `$ J# B
SetCurrentDirectory 设置当前目录
' g7 H' S! E- f% K( \! z2 kSetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾
/ F1 ^& C" y4 D4 ^SetFileAttributes 设置文件属性
* y8 L9 ]5 F$ k+ _. h+ SSetFilePointer 在一个文件中设置当前的读写位置
6 b8 v; ?5 L3 x; V3 y3 o* qSetFileTime 设置文件的创建、访问及上次修改时间
8 ~0 L* |- ~, i8 sSetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果
3 b5 n( \3 c* M8 v4 o1 z6 {SetVolumeLabel 设置一个磁盘的卷标(Label) 1 J: P% z4 m9 i/ l& [; c; I8 r
SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构 1 }2 @: T1 l8 X; g* [7 O0 ~
UnlockFile 解除对一个文件的锁定
4 H) Q. Y! x6 v3 I, i n. `UnlockFileEx 解除对一个文件的锁定 0 c6 T- b o4 p, @6 l: o
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射 % M0 o- S5 P1 z: |, Q& i
VerFindFile 用这个函数决定一个文件应安装到哪里 + h) ?3 F5 @/ y# t$ ^; E! C5 q8 a* o
VerInstallFile 用这个函数安装一个文件
5 m0 z/ ?1 d! M2 z. K( DVerLanguageName 这个函数能根据16位语言代码获取一种语言的名称
?+ c1 A) `' D& Z, C+ AVerQueryValue 这个函数用于从版本资源中获取信息
' p; Z) p$ y) `) \) E# gWriteFile 将数据写入一个文件
8 w2 D3 G5 r6 v8 \3 Q2 AWriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调 ) N z1 h6 c; ~% t- e, v
WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值
( m$ V3 {1 E: i9 rWritePrivateProfileString 在初始化文件指定小节内设置一个字串
3 P2 C% Q0 U z8 }1 w" OWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值 ( p- j& @3 Z, ?& q
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串 2 B4 V6 Q' q/ D
4. API之打印函数
' j+ I# x( X( i1 u* wAbortDoc 取消一份文档的打印 ) N( T4 J5 ]2 F. g; N( J
AbortPrinter 删除与一台打印机关联在一起的缓冲文件 ' P: N/ ^3 G+ D3 J) e) |) @
AddForm 为打印机的表单列表添加一个新表单
+ I" @' x& R% p) d( d- `AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号 9 b. R4 ^# K( G' f: _5 j
AddMonitor 为系统添加一个打印机监视器
7 R, P* H3 L: r' I {AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口 5 D0 v \6 W2 n- O1 D+ W( b) S- ~! |
AddPrinter 在系统中添加一台新打印机 - ^; { D E6 I/ P
AddPrinterConnection 连接指定的打印机 # n- t6 F: U \ k* C3 f
AddPrinterDriver 为指定的系统添加一个打印驱动程序
; r( J. S9 Z* \% L# `* X RAddPrintProcessor 为指定的系统添加一个打印处理器
: R( k! a- a; u/ s- {8 ]AddPrintProvidor 为系统添加一个打印供应商
5 Q; {8 V! I9 p& X, I1 J$ TAdvancedDocumentProperties 启动打印机文档设置对话框
: ^1 i5 n' ]; MClosePrinter 关闭一个打开的打印机对象
1 U. Z0 |& b( {1 l/ W9 {& G" TConfigurePort 针对指定的端口,启动一个端口配置对话框
! D* N2 s9 X9 P( @3 G& NConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
/ i, \' X1 Z- v9 R- aDeleteForm 从打印机可用表单列表中删除一个表单
0 a2 b% ~; @5 e5 k- gDeleteMonitor 删除指定的打印监视器
: A% @, R$ k8 G) \: T: K0 Z7 PDeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口 , g/ @* [$ B1 Z" d' h. ?
DeletePrinter 将指定的打印机标志为从系统中删除
: n: ]4 {0 t" O: Q' l6 eDeletePrinterConnection 删除与指定打印机的连接 1 M# K. z, }' `, R f
DeletePrinterDriver 从系统删除一个打印机驱动程序 3 e, h" F/ i X% ]* u! s
DeletePrintProcessor 从指定系统删除一个打印处理器
: R0 i3 a# Z4 a" h: q/ IDeletePrintProvidor 从系统中删除一个打印供应商
( h* z7 q( K% J' X5 u5 `DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 2 u. U5 C% W7 r9 o; w1 H- |5 e
DocumentProperties 打印机配置控制函数
0 O& r& L9 K6 O( o# N; EEndDocAPI 结束一个成功的打印作业
5 ?, X3 g* }% V% ?EndDocPrinter 在后台打印程序的级别指定一个文档的结束
B4 {& M9 ?8 X4 aEndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页
0 I( i1 ~( T2 N/ q$ mEndPagePrinter 指定一个页在打印作业中的结尾 ) P' U$ c; y2 P
EnumForms 枚举一台打印机可用的表单
2 e; }- f! M B6 R1 ?8 wEnumJobs 枚举打印队列中的作业
9 I: N4 z2 G1 F: Y) v# e" T* xEnumMonitors 枚举可用的打印监视器 3 X& k7 g" q- ]( M4 ?/ R
EnumPorts 枚举一个系统可用的端口 + e v7 L0 n1 u: }
EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序
6 {: D8 Y/ N5 m! g: V. u! iEnumPrinters 枚举系统中安装的打印机 + S+ K: A( q7 `9 c
EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型 7 c9 j$ F a) k
EnumPrintProcessors 枚举系统中可用的打印处理器
$ d7 D% L7 y# t' c9 AEscape 设备控制函数 & B2 J% s8 y( w
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 ; g9 N, Q0 S7 X* l2 `: I7 [
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化 7 b6 }' |$ \+ C
FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因 9 g1 l) g) n0 d9 j6 q; Z& c/ L( r
FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 n3 x7 h% f( ?, f
GetForm 取得与指定表单有关的信息 ! O% V3 y* U6 Q6 ]6 z$ l! |; o
GetJob 获取与指定作业有关的信息 4 S; H; u$ I( X- [
GetPrinter 取得与指定打印机有关的信息 & @0 ]2 B* s9 F$ R# m
GetPrinterData 为打印机设置注册表配置信息 8 @7 e7 s. W+ R7 K) P
GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息
) t* t! P8 j+ E& }2 FGetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么 . A9 U7 A7 s+ A/ ?
GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录
2 ] ~: p* X6 _OpenPrinter 打开指定的打印机,并获取打印机的句柄
8 k' A, o% j5 h0 W: EPrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框
9 {+ U o4 {/ F, X9 pPrinterProperties 启动打印机属性对话框,以便对打印机进行配置 3 _- d+ W8 l# `- C, u c' F; y
ReadPrinter 从打印机读入数据 5 ^3 r! [* r+ z0 F: g8 W$ a( z3 _$ j
ResetDC 重设一个设备场景
5 }5 D, O; Q4 a* g. gResetPrinter 改变指定打印机的默认数据类型及文档设置
: T1 O; u. x/ u- B2 ?ScheduleJob 提交一个要打印的作业
* N H) J8 H3 Q$ _& X/ V! nSetAbortProc 为Windows指定取消函数的地址 ; l. M9 e# q; g3 f! s
SetForm 为指定的表单设置信息 ?" ?8 o; _! Y
SetJob 对一个打印作业的状态进行控制
$ M5 ]: K0 X) |- Z; T9 TSetPrinter 对一台打印机的状态进行控制 " ~1 Y" P/ C" H' d0 Y. H
SetPrinterData 设置打印机的注册表配置信息 * p* W9 `1 L4 A/ W3 q
StartDoc 开始一个打印作业
1 t, D7 _6 g9 g# LStartDocPrinter 在后台打印的级别启动一个新文档
2 H8 V% n$ _, y, y1 J& kStartPage 打印一个新页前要先调用这个函数 2 c+ o$ \% p5 b8 u
StartPagePrinter 在打印作业中指定一个新页的开始
/ E( q% J# A2 [, oWritePrinter 将发送目录中的数据写入打印机
! i3 i- O/ h: F& n5. API之文本和字体函数
% ~& `: N1 W. _& V) nAddFontResource 在Windows系统中添加一种字体资源
0 ^6 R3 f" h, l8 I+ e2 _3 nCreateFont 用指定的属性创建一种逻辑字体 9 K4 a6 Y1 T6 B: C
CreateFontIndirect 用指定的属性创建一种逻辑字体
8 Q5 ]" o" _1 R. k; P+ n; K# eCreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 * z: t; @6 @1 i) f" x$ G9 w. {; b
DrawText 将文本描绘到指定的矩形中 7 a% F3 z+ @ s% m
DrawTextEx 与DrawText相似,只是加入了更多的功能 . L8 h2 A2 \9 O* b. z
EnumFontFamilies 列举指定设备可用的字体 . H$ z) h L8 w
EnumFontFamiliesEx 列举指定设备可用的字体 ! F8 ?! n. {- J4 V
EnumFonts 列举指定设备可用的字体 : _9 G9 J# @2 F# f1 x% [
ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
2 \3 Z) \' T/ X5 y/ [0 r% W. ^# _. ] g5 _GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 # | ]. N) H* b' Y H/ E; V
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小
2 \; g0 R, A/ ?' F5 A: f) ~GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸
" x# s9 u/ ]2 r8 K2 EGetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串
& _- R. v& u5 w6 |0 @GetCharWidth 调查字体中一个或多个字符的宽度 8 G9 c$ @: d! F) _
GetFontData 接收一种可缩放字体文件的数据 2 f6 i& p( `" R9 j: t
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
9 Y+ o8 Q# w" }5 M; {3 p( R [: T- VGetGlyphOutline 取得TureType字体中构成一个字符的曲线信息
4 m8 `3 x9 E$ i4 SGetKerningPairs 取得指定字体的字距信息 , t1 z3 h5 j; [! ^% b+ v
GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息
7 q0 X. b3 D! T5 m" bGetRasterizerCaps 了解系统是否有能力支持可缩放的字体 / r; N: h, B' C
GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 ' N4 i6 `: r( \
GetTextAlign 接收一个设备场景当前的文本对齐标志 R7 r4 {5 i# l0 E: r8 _( u
GetTextCharacterExtra 判断额外字符间距的当前值 0 O6 d, e6 B) @' O4 x+ y! K2 f S
GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符 3 T& j h* S! {* x2 J
GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息
+ J! P- t+ @8 x2 s$ `0 ?GetTextColor 判断当前字体颜色。通常也称为"前景色"
, l, O" O) A* L7 UGetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息
" H. s/ a0 m$ G, v% \ {GetTextExtentPoint 判断一个字串的大小(范围) / K1 S- M" X# T% b# D3 o0 ~. u1 Y
GetTextFace 获取一种字体的字样名 / _0 \( } D' H5 Q/ x* c; f! X3 C
GetTextMetrics 获取与选入一种设备场景的物理字体有关的信息
* w6 x8 K, s2 f8 f! ^GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 . E6 o8 W8 B7 d+ e4 j+ V
PolyTextOut 描绘一系列字串 ' `1 i/ {# L4 e& [
RemoveFontResource 从Windows系统中删除一种字体资源 0 G+ ^2 P6 [$ ], x. A8 ~7 b
SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 8 r z3 X1 D; x" u% L
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置
S+ u+ L8 _1 v; h( jSetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距
6 W8 V3 i& Q1 |/ K$ d) lSetTextColor 设置当前文本颜色。这种颜色也称为"前景色"
8 Z% F! A. A% TSetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理
) ~1 K% V4 E% n0 d$ L& G6 hTabbedTextOut 支持制表站的一个文本描绘函数 / E6 j0 n. z% m3 n; T
TextOut 文本绘图函数 , x1 E) @5 X6 _$ t- L% l$ S
WINGDIAPI BOOL WINAPI TextOut(
1 W6 O @# s2 m& y( |! i( qHDC, //输出设备
* A! M4 D1 `. T! m% Q4 Mint, //输出的横坐标2 |( o Q1 j6 g6 F% |( e5 a( `
int, //纵坐标' s, H G7 d9 b
LPCSTR, //输出的文本str
' H: y* ]7 x- A4 uint); //文本的长度:lstrlen(str)( j6 D8 g3 J/ X0 \/ O( E0 O+ l
6. API之菜单函数 + p3 A( f( X2 J
AppendMenu 在指定的菜单里添加一个菜单项 : {' {- c) R. m8 W
CheckMenuItem 复选或撤消复选指定的菜单条目 4 a- p1 @) E- ?/ u4 j
CheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 " }. i# E+ C) r5 V3 @
CreateMenu 创建新菜单 / h# S7 \ ]6 G- R# |% w6 p
CreatePopupMenu 创建一个空的弹出式菜单
, ^3 [ g* T; zDeleteMenu 删除指定的菜单条目 1 o2 Z2 T2 p& H# ?
DestroyMenu 删除指定的菜单 0 m) ~$ X5 ?5 g' r# t
DrawMenuBar 为指定的窗口重画菜单 8 N5 n! W9 ~7 z5 J) a
EnableMenuItem 允许或禁止指定的菜单条目 . I/ B, p2 o, y" r/ K9 F6 U( e
GetMenu 取得窗口中一个菜单的句柄
% d D8 g5 P& {0 VGetMenuCheckMarkDimensions 返回一个菜单复选符的大小 . T8 b7 W: A4 N8 W
GetMenuContextHelpId 取得一个菜单的帮助场景ID
1 r" d P! w2 A6 ?3 D8 M5 @GetMenuDefaultItem 判断菜单中的哪个条目是默认条目
! R; b# |/ N) q6 H: s) {GetMenuItemCount 返回菜单中条目(菜单项)的数量
7 E& A2 \/ I6 c" I. y& X/ aGetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID 9 x; t: j& K" V, d# j- S- n
GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息
* |; T, O" J) y! @$ {* e- ?* }7 b; C+ EGetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 + {+ L* X; \% y' R" l% `& x
GetMenuState 取得与指定菜单条目状态有关的信息 6 L+ `; r# F3 B% m
GetMenuString 取得指定菜单条目的字串
' f; m0 O" h$ }3 q6 zGetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置
. V9 u9 G& g: c+ B/ tGetSystemMenu 取得指定窗口的系统菜单的句柄 , _7 x9 b! J6 {% P% e) N
HiliteMenuItem 控制顶级菜单条目的加亮显示状态 ! @; i* h# h7 a! v3 q+ o( W G
InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动 , E" B2 ]# s0 a* ?
InsertMenuItem 插入一个新菜单条目 3 Q0 u1 b- a/ ^% Z) w& S
IsMenu 判断指定的句柄是否为一个菜单的句柄
$ x% v" g0 e& A: D" N" A. ULoadMenu 从指定的模块或应用程序实例中载入一个菜单
- C" g: D: v# W+ o+ ILoadMenuIndirect 载入一个菜单
( h$ |" U ~( k- LMenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点
7 F; B( X+ ?7 M1 O; n( Z" xModifyMenu 改变菜单条目
9 E) b% i! \+ p8 dRemoveMenu 删除指定的菜单条目 : X; ]* P( { e) Y7 u0 [
SetMenu 设置窗口菜单 ) ]4 Q# Q/ [: I% [& N
SetMenuContextHelpId 设置一个菜单的帮助场景ID 4 O5 ] W6 l8 W4 z1 A/ j+ d
SetMenuDefaultItem 将一个菜单条目设为默认条目 4 _& c$ Y* R) m A1 o' m9 q1 T* `
SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)
. b4 m, p: j1 r' h0 b. G1 pSetMenuItemInfo 为一个菜单条目设置指定的信息
+ h# T1 }8 q( d( ~+ J& {7 `TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单 - `( ], U. i( _
TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 : K8 y) U4 T7 U5 Q: }/ {9 T
7. API之位图、图标和光栅运算函数 & O' i1 y9 @4 d! l# G ^
BitBlt 将一幅位图从一个设备场景复制到另一个" X' Q# I! S4 p9 N6 ]6 P
WINGDIAPI BOOL WINAPI BitBlt(' L' X2 `2 U* p7 O- {/ x* t
HDC, //目标HDC* ^3 P$ A6 f @3 V6 T( Y$ B
int, //X14 h, o2 Q: }; ]* h* o* T$ p" o
int, //Y1
+ p1 [) n7 l$ X# Q& [int, //width
2 L" _4 O: G7 g0 j' ]int, //height4 d$ w$ f/ E9 u8 n
HDC, //源HDC! q) a- W) r$ g% V0 ?, {
int, //右边的距离
; U( ~& y% C, K1 ^# ~- m7 o Uint, //??
) e8 E" [0 @' f- n' _DWORD); //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
$ O) }0 N6 I k8 t \8 f- dPATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS
8 W; y$ H; f; b3 r GCopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
/ s# T. I# K9 k8 B" \CopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作 3 @9 P& r7 O1 f" p5 D( w
CreateBitmap 按照规定的格式创建一幅与设备有关位图
8 l, t' K: D/ _' y: R% H# o+ n7 iCreateBitmapIndirect 创建一幅与设备有关位图
) L; s" r; B5 E, D9 U3 X+ SCreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容
9 p" ?2 a$ R' n( J$ wCreateCursor 创建一个鼠标指针
4 b5 B5 M! L1 L6 {3 rCreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图
" y" p% N. J0 `* {6 gCreateDIBSection 创建一个DIBSection
% S+ K8 f7 o$ P oCreateIcon 创建一个图标 # P! P) v( O# A
CreateIconIndirect 创建一个图标 - _, o9 G3 g3 D& \, e Z
DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源
& {9 q( b/ H0 u2 T3 QDestroyIcon 清除图标
, N* s$ B: O* Y2 I* V) {DrawIcon 在指定的位置画一个图标 / s% M5 |$ k4 i B$ z
DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能
" E! D7 |6 h9 f6 C! h: {ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之
/ X$ o' k3 B: qExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来 $ c/ N" @3 ]) m. G f5 a/ F! |5 T
GetBitmapBits 将来自位图的二进制位复制到一个缓冲区
6 {7 P: x$ n6 K6 U+ y( W) B TGetBitmapDimensionEx 取得一幅位图的宽度和高度 8 i/ b' s, t) {$ _# x- {
GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息
4 E I7 Q) A$ x: F1 P. i* o& cGetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里
- c- I7 A6 h E+ E" U' mGetIconInfo 取得与图标有关的信息 7 U2 m& U& [6 I/ ?7 }
GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式
8 c1 N3 a3 d2 K/ R- L! Z- d) |LoadBitmap 从指定的模块或应用程序实例中载入一幅位图
5 y$ W/ @6 t" ]" @0 V4 v6 `6 |LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针
' |# o5 t0 _3 m+ y& h+ ~$ jLoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 , p W7 T" p& l. m$ b, V* r7 B
LoadIcon 从指定的模块或应用程序实例中载入一个图标
9 K" G! r5 f+ m$ T4 s# b$ `LoadImage 载入一个位图、图标或指针 2 C2 z3 b! `% J) `; U0 W9 ~" s
HANDLE LoadImageA(' @4 q) d% P. U+ b* }! n& s3 u! E
HINSTANCE, //当前实例句柄:AfxGetInstanceHandle()
' @3 `, \+ _- p2 c# t LPCSTR, //资源所在的目录:c:\help.bmp! b9 q; @* O& {' I" h0 N
UINT, //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE
9 P% r# a) E/ w- ^* a+ L' b7 j int, //: ~, X# d! l9 _
int, //) |- |6 \9 S8 _! E0 e- u/ L# a
UINT); //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|
1 i4 y4 C" P% ?8 ZR_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|
: n; n- h. a% h# {- Q" dLR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
) C0 ?" @9 \& l: [4 ]; iMaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理
9 k- g" T1 A6 s- h; S7 FPatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景 m) ?& [ \- _3 ~! |
PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
8 [- u# s+ b/ U% w0 x. a1 G: K; i! SSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 6 c {+ A4 j3 ^( B
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位
9 ~& e+ d8 {4 b9 u' ]/ f9 M6 g% h: {! t4 hSetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息
6 o0 E& Z+ {( C; t, I) d4 ISetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里
6 u, Q# o9 L+ l- jSetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备 . e4 D" Q$ F1 F; X
SetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 8 y5 G" d! o$ H! ]3 d6 h
StretchBlt 将一幅位图从一个设备场景复制到另一个
* t& {$ N" B4 u4 p. V7 QStretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景 / t. s1 m! W" J
8. API之绘图函数 ) X: {& r0 a2 b' N
AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作 ; c3 h L: N0 W
AngleArc 用一个连接弧画一条线
9 \, S3 E* W2 I, u+ n* @. _8 LArc 画一个圆弧
% ]" O& a1 g! Z9 CBeginPath 启动一个路径分支 4 w0 M+ @2 g5 v- P4 O
CancelDC 取消另一个线程里的长时间绘图操作
& h" R9 F' L) K% T9 VChord 画一个弦
8 q' x# `" Y2 e5 y i* _2 a/ ^CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄 ! D) R, u! S+ f6 Y3 W4 B/ D
CloseFigure 描绘到一个路径时,关闭当前打开的图形
" u V# e# c" g. t, |CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 - S% {; \9 g% B( I) D
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
3 @% i4 X4 {, ^- v7 D$ \CopyMetaFile 制作指定(标准)图元文件的一个副本 * |2 F3 E* b# {6 G4 y
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
3 T8 w( W, o: P1 @+ P+ ZCreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案) 4 s+ v9 `! v: S/ g1 e# L: v
CreateEnhMetaFile 创建一个增强型的图元文件设备场景 4 T9 X8 q! y6 A' c6 S5 B
CreateHatchBrush 创建带有阴影图案的一个刷子 $ Q5 K4 K8 L* u( l. U, ^. z
CreateMetaFile 创建一个图元文件设备场景 . ~' k, y7 H4 s
CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子 0 G9 ~( l' c* w5 t+ h- f7 V* V
CreatePen 用指定的样式、宽度和颜色创建一个画笔 $ E+ D# r1 x6 {$ \9 k
CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔 }( M2 Y. j# U: f6 @
CreateSolidBrush 用纯色创建一个刷子 + u& O0 h' {4 r
DeleteEnhMetaFile 删除指定的增强型图元文件 6 d: b: C8 x" n- l' ^/ I$ M
DeleteMetaFile 删除指定的图元文件 V) I# P: X, m- G
WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放
: b- e# n& I5 j( K! ^DrawEdge 用指定的样式描绘一个矩形的边框 4 { m9 E& e! ^1 q+ C7 N; e4 Z
DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
* f! i! {6 W1 n* L' c: y. n6 T7 fDrawFocusRect 画一个焦点矩形
( ?3 a- ?, X! k, }" U& q: KDrawFrameControl 描绘一个标准控件
, e) _) B# W& @; xDrawState 为一幅图象或绘图操作应用各式各样的效果
3 S* \( x0 D- l- gEllipse 描绘一个椭圆,由指定的矩形围绕
' P# j, _0 u% EEndPath 停止定义一个路径
- r0 o7 |+ n; GEnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录
; ^' K2 q0 Y# _7 YEnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
0 F$ N# Z) T+ s1 N# AEnumObjects 枚举可随同指定设备场景使用的画笔和刷子
; A! [* N& n& C/ X, m' ]ExtCreatePen 创建一个扩展画笔(装饰或几何)
1 ^* V8 V6 i5 W- h& v+ ?) |! sExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域
. I$ j/ ]1 G0 I9 g- M7 mFillPath 关闭路径中任何打开的图形,并用当前刷子填充 7 ~: c' Z# s4 d; `
FillRect 用指定的刷子填充一个矩形 9 b, J" b. l5 f8 I
FlattenPath 将一个路径中的所有曲线都转换成线段 & F! ^" T. V7 i% d5 M" b! m
FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域 7 H$ X9 i. Y5 P" w( k$ K
FrameRect 用指定的刷子围绕一个矩形画一个边框
( x! q e5 ^9 v4 RGdiComment 为指定的增强型图元文件设备场景添加一条注释信息
x2 U0 p) }3 v; e2 ~: S! s( WGdiFlush 执行任何未决的绘图操作 7 d' r' |: S D4 _8 D* D
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中
! j M/ `! N9 F: ]GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列 " |+ b1 O3 P, S3 k8 P4 O+ ]
GetArcDirection 画圆弧的时候,判断当前采用的绘图方向 & x# {9 O- F" G
GetBkColor 取得指定设备场景当前的背景颜色 7 z1 k0 U8 z0 q. H# ~6 U
GetBkMode 针对指定的设备场景,取得当前的背景填充模式
& j& ^5 j6 k+ J# v* mGetBrushOrgEx 判断指定设备场景中当前选定刷子起点
- j1 e/ C8 l' m+ S( FGetCurrentObject 获得指定类型的当前选定对象 , @6 m( Z* n/ {+ b
GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置 & L! E2 T+ z4 ~
GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄 / U9 Y! `- ]: K) O% e; F$ _8 _
GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里
8 y# i% R0 _- VGetEnhMetaFileDescription 返回对一个增强型图元文件的说明
; n5 ?) i3 _" i- P6 sGetEnhMetaFileHeader 取得增强型图元文件的图元文件头 " B/ C+ z0 X+ y
GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 4 p9 a }" q L+ Q$ }" M' J/ v& K
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 ( p0 c ]5 d% X! S8 `" X+ Y- T3 Z
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区
! W$ @8 J3 F$ K) X4 K7 AGetMiterLimit 取得设备场景的斜率限制(Miter)设置
* _9 n) B. n7 @# Q" j' m" rGetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色 7 A/ Y! g: Q, ]0 G; q0 b
GetObjectAPI 取得对指定对象进行说明的一个结构 # G: @" f5 P5 u$ y* |4 A
GetObjectType 判断由指定句柄引用的GDI对象的类型
* G& x! h0 ~, h! y' f6 {/ BGetPath 取得对当前路径进行定义的一系列数据
& F, o& q$ R: w& c" I/ JGetPixel 在指定的设备场景中取得一个像素的RGB值 " M+ d* p1 ~8 t9 c) ]3 b, Q
GetPolyFillMode 针对指定的设备场景,获得多边形填充模式 $ u8 A# o2 {( @ Q+ o g
GetROP2 针对指定的设备场景,取得当前的绘图模式 , a) e& w. a/ \- u! X3 b
GetStockObject 取得一个固有对象(Stock) 3 T' |8 J& w# ^. {' ?
GetSysColorBrush 为任何一种标准系统颜色取得一个刷子 + Z8 Y; {6 G3 E/ |; @
GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件
* Y) ~$ U, @* N/ i/ MInvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形 8 Y+ }' } i5 k6 r/ N2 Q; x
LineDDA 枚举指定线段中的所有点
! m4 M6 S: n- h" L3 F0 @, C( U6 HLineTo 用当前画笔画一条线,从当前位置连到一个指定的点
( j- ]" G5 D# {# a9 sMoveToEx 为指定的设备场景指定一个新的当前画笔位置
& O+ s0 o8 x8 i* BPaintDesk 在指定的设备场景中描绘桌面墙纸图案 / _: M: [" Z( Y; \4 U* p4 \0 h
PathToRegion 将当前选定的路径转换到一个区域里
7 ~# U) M# N3 R) ~Pie 画一个饼图
5 l/ T' M! f: a1 b( @ cPlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件
1 B/ W( e+ s1 l) }( w7 M* U' s' n8 OPlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 % d y& V' C6 { {
PlayMetaFile 在指定的设备场景中回放一个图元文件 ) d: R; R8 N2 v6 A" A: y- P
PlayMetaFileRecord 回放来自图元文件的单条记录
6 |4 `! L# N1 M* GPolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
; v9 R$ H4 h: s5 x; i# B5 E% J B2 gPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成 2 N; c9 `$ X5 w# V0 Z& Y9 i, T1 i
Polygon 描绘一个多边形
0 r5 ?' k* z% |$ Y: o3 d0 qPolyline 用当前画笔描绘一系列线段 4 S( Y9 I# ~% Y1 L( p; N, p
PolyPolygon 用当前选定画笔描绘两个或多个多边形
/ M, u1 [1 B! n) {8 z" lPolyPolyline 用当前选定画笔描绘两个或多个多边形
7 f E! y9 V) W; JRectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充
6 m- v! _# q0 A1 O; L5 s' @3 jRoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充
) |$ x! u) X2 F8 ySelectClipPath 将设备场景当前的路径合并到剪切区域里 ) R* w; ^( M9 w: M) G
SelectObject 为当前设备场景选择图形对象 # F; p, b7 d, h) A& L/ L
WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);1 U+ G8 M- k5 y! P5 l; h' M/ j
SetArcDirection 设置圆弧的描绘方向 8 A/ _8 S- Y0 j# c. Y7 v
SetBkColor 为指定的设备场景设置背景颜色 / U2 q4 g, m0 h' t1 F
SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式 , v7 o0 C) ?" G
SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
: `2 \7 i7 _( j! {% E* ~SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件 0 W/ w# s) F5 L4 x( \# \+ y
SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件
& ^) A; L9 {# x) v p$ ]" MSetMiterLimit 设置设备场景当前的斜率限制 ) z: E; o5 i- E j* _
SetPixel 在指定的设备场景中设置一个像素的RGB值
* r" _/ H! g( g8 T f8 fSetPixelV 在指定的设备场景中设置一个像素的RGB值
- \* `3 M! H$ x# R1 Q$ X5 TSetPolyFillMode 设置多边形的填充模式
; {5 r. q6 F+ b5 \- MSetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致 7 j: n# S6 h6 s: g
SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件
2 j, z; \& J, Z* U2 J( I0 M4 n* w$ D& `3 VStrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域
' \; U! Q& I$ kStrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭
- q6 Q9 S& X7 |8 J, LUnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数
- t& L$ B: X+ I& I* SWidenPath 根据选定画笔的宽度,重新定义当前选定的路径
/ P7 l4 ]' [, `/ M9. API之设备场景函数 8 y1 g/ i# F. e3 M
CombineRgn 将两个区域组合为一个新区域 9 E4 D T0 ^" V; L! c$ P; i
CombineTransform 驱动世界转换。它相当于依顺序进行两次转换 5 O# G* b# F. L3 F
CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景 8 k& O; L; W2 C! B" K+ J
CreateDC 为专门设备创建设备场景 0 y& i) _. v+ B( d/ R2 w
CreateEllipticRgn 创建一个椭圆
4 v9 I# p s! M; J3 |) u0 CCreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域
7 _# T1 {2 e: P: YCreateIC 为专用设备创建一个信息场景 + h' S' l) o$ s4 h& h g% G6 f/ T
CreatePolygonRgn 创建一个由一系列点围成的区域
* I, r* ~1 L7 |* qCreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的
K% ?, W% F& J% g4 @/ Q9 _CreateRectRgn 创建一个矩形区域
M. G1 F7 i) B: pCreateRectRgnIndirect 创建一个矩形区域
+ ^& m1 j& F. ~ }1 Z5 WCreateRoundRectRgn 创建一个圆角矩形
( j/ E2 j. |$ K2 S, @: t3 oDeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源
/ W/ ~. [" n J( yDPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 ) [$ I8 c/ E/ ^8 P% N0 a
EqualRgn 确定两个区域是否相等
" w' K4 ^; b; `& a4 E f* UExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图
; P+ H" g/ K5 _3 xExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域
W& {3 N( \* ]9 a# Z) VExtCreateRegion 根据世界转换修改区域 ) r, I; C$ K! I K4 N
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
/ Q4 ?& V2 ]1 l1 ~. iFillRgn 用指定刷子填充指定区域 $ [+ |+ \) m8 V, y4 _) V
FrameRgn 用指定刷子围绕指定区域画一个外框
a: D; [ G6 I6 F4 Y kGetBoundsRect 获取指定设备场景的边界矩形
, A) H* L' W! }. f- UGetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 . F* @ L |5 q% Y2 v2 ]
GetClipRgn 获取设备场景当前剪裁区 % b! ?5 q6 B: h. \8 @. ^# p0 }6 T9 Z# ^
GetDC 获取指定窗口的设备场景 . t- v d9 {0 s9 f) U \( q
GetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项
# K/ _6 {$ U2 s V9 dGetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示) 7 K3 @, Z9 B# z1 z% A/ d
GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息
+ m& M- }) Q. c2 E- q; z7 x5 y, UGetGraphicsMode 确定是否允许增强图形模式(世界转换)
9 i' ?) n; H5 @- q* R5 tGetMapMode 为特定设备场景调入映象模式
- M- H7 t/ O5 k. }1 IGetRegionData 装入描述一个区域信息的RgnData结构或缓冲区 6 A0 u6 K; \2 C6 \* V( `" v
GetRgnBox 获取完全包含指定区域的最小矩形
+ B9 V! ~9 n, S6 a& }8 @GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新 . y: n9 l6 }7 \0 S, c
GetViewportExtEx 获取设备场景视口(viewport)范围
- N5 _$ w8 W; c- \6 Y& C) BGetViewportOrgEx 获取设备场景视口起点
% Z# ^! ~* i/ TGetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景
A% q; o8 j$ I: o; pGetWindowExtEx 获取指定设备场景的窗口范围 ' V; N* x/ m5 ~' ]
GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 $ Y; I$ o7 O4 n& c% E" d! g
GetWindowRgn 获取窗口区域
( }( R/ O8 {# v. K7 E$ [GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换
$ r) w% q: e S. l, NIntersectClipRect 为指定设备定义一个新的剪裁区
; E5 Y9 m8 @5 [4 `/ I) ~InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画 $ u v1 d1 ]3 A% m# B3 _0 f- O2 G; }
InvertRgn 通过颠倒每个像素值反转设备场景指定区域
! C) \" T3 q- l0 Q4 \) oLPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标
5 n- T# }% }+ B! |4 v" tModifyWorldTransform 根据指定的模式修改世界转换
* j, Z! s# t( A6 f2 x' r. FOffsetClipRgn 按指定量平移设备场景剪裁区 1 h, U" ^9 q) E0 g
OffsetRgn 按指定偏移量平移指定区域 , I: V) I+ l+ m5 b$ ? P
OffsetViewportOrgEx 平移设备场景视口区域
9 x* S) y ? iOffsetWindowOrgEx 平移指定设备场景窗口起点
8 X1 y/ k: u, G4 w& l( c y6 Z6 SPaintRgn 用当前刷子背景色填充指定区域 # ?: ]& ~5 Q1 I) ^: m% n8 y
PtInRegion 确定点是否在指定区域内 0 g& d1 _3 s2 a7 S
PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内) 1 W `3 v0 _, z4 p% {7 D5 V
RectInRegion 确定矩形是否有部分在指定区域内
: Z% L1 q" D) I& J- ^2 m2 qRectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内) ) I8 Z7 |4 t/ S
ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
$ f) B3 _+ q) cRestoreDC 从设备场景堆栈恢复一个原先保存的设备场景 1 d) a; ?0 H. u* U* O
SaveDC 将指定设备场景状态保存到Windows设备场景堆栈
- V9 l- Z% @6 w% i& y# A' R2 pScaleViewportExtEx 缩放设备场景视口的范围
- h3 F: N. A0 VScaleWindowExtEx 缩放指定设备场景窗口范围
1 W0 \) ^& I! F% Q3 `ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形 8 ^$ W& u3 ~! |: r3 h1 f5 B
SelectClipRgn 为指定设备场景选择新的剪裁区
5 y% F; |3 N, b8 l6 zSetBoundsRect 设置指定设备场景的边界矩形
# |' d, w8 L* P7 x* BSetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换) # k# B2 G9 _3 h1 c) e
SetMapMode 设置指定设备场景的映射模式
$ n/ e- N; b+ q! ] A( p/ i( S- L* WSetRectRgn 设置区域为指定的矩形
" ~' `0 @5 z5 g- lSetViewportExtEx 设置设备场景视口范围
4 U1 V6 ^. ~# _" F% ~SetViewportOrgEx 设置设备场景视口起点 8 ~3 ~1 v$ P9 \7 ]
SetWindowExtEx 设置指定设备场景窗口范围
: [2 J% J! D. V4 Y& b5 sSetWindowOrgEx 设置指定设备场景窗口起点 5 t2 I5 j& A% A7 g
SetWindowRgn 设置窗口区域 9 M5 B0 G. d% [% D
SetWorldTransform 设置世界转换 . O/ q8 s$ a' C r7 ]- o
ValidateRgn 激活窗口中指定区域,把它从刷新区移走
1 z' m; f* k! A8 d1 N: }7 FWindowFromDC 取回与某一设备场景相关的窗口的句柄
8 {9 b2 M* ]) @4 B v0 G, B10. API之硬件与系统函数
- K& o1 M3 s4 C+ ?( p* W0 ~ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义
2 I1 P/ Q& A2 B" O, RBeep 用于生成简单的声音 3 C. g! U7 w& c, k: U" Y: G* b0 B
CharToOem 将一个字串从ANSI字符集转换到OEM字符集
" r* s1 _+ K R5 Z' n% c: TClipCursor 将指针限制到指定区域 ) W$ E. w) K( l% M' g
ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
+ n9 L0 m1 `; `! P/ s1 Y) e/ A7 nCreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符
3 D$ P7 r% }- i S7 R0 b- |5 mDestroyCaret 清除(破坏)一个插入符 4 P6 I5 P8 e" h% q+ s* P p
EnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息
2 U! d, S1 m: D# c( k1 j4 X5 }1 n( LEnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式 & i/ V1 u' \" v% [3 d' h
EnumSystemCodePages 枚举系统中已安装或支持的代码页 1 @4 T# S2 S& {8 k( J8 C
EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置
, h- N* _, b$ z5 @6 }1 SEnumTimeFormats 枚举一个指定的地方适用的时间格式 ; V/ o* R/ R% i
ExitWindowsEx 退出windows,并用特定的选项重新启动 2 G9 Z @: k+ o: d; J
WINUSERAPI BOOL WINAPI ExitWindowsEx(
8 u; K, ^% U3 E* @" h0 ]- g; r7 A+ DUINT uFlags, //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG* g( |# z6 x* n( M1 j% X
DWORD dwReserved); //0
R( m J7 i9 ]- o; D$ JExpandEnvironmentStrings 扩充环境字串 ) q1 b+ N" I1 C5 O
FreeEnvironmentStrings 翻译指定的环境字串块 ( I* e8 `/ ~8 }) T5 {0 T
GetACP 判断目前正在生效的ANSI代码页
1 o8 R4 e& A- v1 G c3 c$ h. VGetAsyncKeyState 判断函数调用时指定虚拟键的状态 + Q- o* z. b, o
GetCaretBlinkTime 判断插入符光标的闪烁频率 / |+ [2 R" b7 T. h% p8 p7 x
GetCaretPos 判断插入符的当前位置 . ]9 E% d* R. X; I+ \4 C4 X
GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域 - } }/ o. d7 U6 T
GetCommandLine 获得指向当前命令行缓冲区的一个指针 / ], G2 g' D8 V7 a X
GetComputerName 取得这台计算机的名称 : U5 V, f; D" ~3 J
GetCPInfo 取得与指定代码页有关的信息 # D& `! d% P! [& }" M
GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字 / p3 B5 |; X' U' }
GetCursor 获取目前选择的鼠标指针的句柄
4 B; s# ^$ {+ r8 x5 D# F. ]GetCursorPos 获取鼠标指针的当前位置
3 G) C, W' L$ nGetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化 3 O e7 N. E! Q! i
GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间
( T; A: R: u1 YGetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄 . n& B0 O" d/ j4 ]9 L& {2 k
GetEnvironmentVariable 取得一个环境变量的值
. W% A% [6 t8 F' T* v9 NGetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件
2 j9 x4 B- V7 U' o5 W7 sGetKBCodePage 由GetOEMCP取代,两者功能完全相同 R/ L7 w7 h4 p! l6 H
GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局
$ f) d- |5 w" H* e5 ?GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
4 e5 x. |( O- ~- cGetKeyboardLayoutName 取得当前活动键盘布局的名称
5 W+ S0 k+ S- K2 d ? U$ J( @# TGetKeyboardState 取得键盘上每个虚拟键当前的状态
, D9 n- G' O% d3 Z1 ^% w+ J- uGetKeyboardType 了解与正在使用的键盘有关的信息 " s' v4 Q6 H' B+ ~: M* \
GetKeyNameText 在给出扫描码的前提下,判断键名
: F8 K T8 @2 l' Y1 X BGetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态
3 Z6 W- j5 F( @& \GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息 / a# g A }9 m+ {: ^9 _
GetLocaleInfo 取得与指定"地方"有关的信息 ( w6 H/ d0 ]9 o# @
GetLocalTime 取得本地日期和时间
8 d+ \* o8 {8 _9 Y8 J/ {) FGetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字 5 W6 [2 H+ F: u5 h5 Z) H
GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页 8 s6 n. N# R7 f" @, \
GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
! b" M# a& V' I) _' MGetSysColor 判断指定windows显示对象的颜色
9 l* p; _& O) Q- Z$ }GetSystemDefaultLangID 取得系统的默认语言ID 2 P+ u' d" _5 |" ]5 ]: V
GetSystemDefaultLCID 取得当前的默认系统"地方"
) o; X* @- w" H7 W \. Q* s# A" ~GetSystemInfo 取得与底层硬件平台有关的信息 * E- |. F" { T- j$ X3 F4 y
GetSystemMetrics 返回与windows环境有关的信息
9 N& [0 `' Z# Z. {, I$ E0 SGetSystemPowerStatus 获得与当前系统电源状态有关的信息
* F/ U+ V; I( a; RGetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式
/ o- Y4 }2 T9 GGetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步 * m4 u) |4 C4 c5 k( z+ A, |9 N! {8 K& `
GetThreadLocale 取得当前线程的地方ID 3 _; s/ x0 [: J; z4 t- ]
GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
5 ^8 k# {* h# `* |, W; vGetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间
% d6 C$ a0 }* eGetTimeZoneInformation 取得与系统时区设置有关的信息 - K. F' Y% R5 L' k- F
GetUserDefaultLangID 为当前用户取得默认语言ID 8 Y; f7 p1 m$ C. s
GetUserDefaultLCID 取得当前用户的默认"地方"设置 4 D, `# X, Y( p% d' w# F
GetUserName 取得当前用户的名字
3 |" n$ E. x8 x! t; \ Y) ZGetVersion 判断当前运行的Windows和DOS版本 " \1 s- u* K% y/ v8 \
GetVersionEx 取得与平台和操作系统有关的版本信息
8 P) a5 G$ M2 ^: ~3 @HideCaret 在指定的窗口隐藏插入符(光标) % ~7 u' F; w! `! v
IsValidCodePage 判断一个代码页是否有效 ' p2 P. h& p2 m1 u, D+ { h
IsValidLocale 判断地方标识符是否有效
1 g4 C3 Y1 e! G/ l+ \keybd_event 这个函数模拟了键盘行动
6 z- B* N8 a7 j! r' Y! g: R. ^LoadKeyboardLayout 载入一个键盘布局 & A5 p2 {3 s. O1 a6 Y
MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 6 ^' t0 Z) \! o% D* L! D
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换 - c$ y5 h* A7 S2 I+ u) N9 N K3 J
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的 / R* |9 \& t0 p/ n5 ?
mouse_event 模拟一次鼠标事件 ) y/ M9 o6 b& K. O2 [
OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
2 e7 }# @$ C% v: |5 W* d8 pOemToChar 将OEM字符集的一个字串转换到ANSI字符集 : f6 o t! a+ k3 ~8 L8 x: z
SetCaretBlinkTime 指定插入符(光标)的闪烁频率 + d- B3 T# `4 ~" v
SetCaretPos 指定插入符的位置 % \. `3 s; F' o3 n! n( R
SetComputerName 设置新的计算机名 / s9 A/ D# g7 c f# B8 g8 b0 v
SetCursor 将指定的鼠标指针设为当前指针 * @* @( S7 _4 X. n& b- Y
SetCursorPos 设置指针的位置 ) S& c. L0 F$ i0 d7 Q0 v' ?3 b( \
SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间
! S" u- ~( N3 C k- x+ ?SetEnvironmentVariable 将一个环境变量设为指定的值
; k4 Z" o4 `( |2 x' ^2 H/ GSetKeyboardState 设置每个虚拟键当前在键盘上的状态
2 E) T- l$ x3 t: o0 NSetLocaleInfo 改变用户"地方"设置信息
5 O) M% d0 _ s- W s- L8 B# RSetLocalTime 设置当前地方时间 , Q/ g" s+ \8 B, X8 h+ Y4 u
SetSysColors 设置指定窗口显示对象的颜色 4 ]7 @7 ^; q& v0 h2 x& f( \4 H
SetSystemCursor 改变任何一个标准系统指针 , {% r$ Z) r2 ~3 n- p8 |
SetSystemTime 设置当前系统时间
% v1 p; t( k# m. _$ _% B2 hSetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步
0 U, u3 j. G+ v% dSetThreadLocale 为当前线程设置地方
I2 q$ H2 A& y0 Y/ \# T6 n c |SetTimeZoneInformation 设置系统时区信息
. p/ _9 U1 H6 }4 A8 ?- HShowCaret 在指定的窗口里显示插入符(光标) 6 [5 G" t* d, ]+ S
ShowCursor 控制鼠标指针的可视性 9 X' j8 v9 M! W v
SwapMouseButton 决定是否互换鼠标左右键的功能 / y; u( u; a4 Q4 S( U t N1 Z
SystemParametersInfo 获取和设置数量众多的windows系统参数
2 Z1 s% ~9 \6 h0 B0 NSystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
% [7 Z& M6 f% k6 Z, kToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符
( i2 L. f+ l/ l* G f TToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符 , G1 v2 h' [8 `/ V$ ^
UnloadKeyboardLayout 卸载指定的键盘布局 5 h5 P9 W1 w- Q) L* \
VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态
( t( }& ^1 v, D6 \" L8 E11. API之进程和线程函数
1 D" \- S, X7 T4 ~$ g2 TCancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作 . f; x$ I/ `' v, U8 k3 D
CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 7 [! C5 r9 Q2 [: o/ @
ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 3 y( @$ u+ G5 a( C* H. E7 @
CreateEvent 创建一个事件对象 4 r/ `! l' g0 J) }5 ]% [
CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人) . Y' i' I0 s0 d& D6 x% G
CreateMutex 创建一个互斥体(MUTEX)
8 y7 F) J: f7 bCreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用
" c/ b d6 H5 f8 `CreatePipe 创建一个匿名管道 # |, ]# E' V$ W5 E; ?* H
CreateProcess 创建一个新进程(比如执行一个程序)
5 t2 t0 y( H7 T, V" @( f+ uCreateSemaphore 创建一个新的信号机 * ?, N( g& p# z8 Q4 j0 f! `: {
CreateWaitableTimer 创建一个可等待的计时器对象 : Q$ U# W O- p' c
DisconnectNamedPipe 断开一个客户与一个命名管道的连接 , ~1 ~" k8 y! E) P
DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄
5 m1 [ o6 Q1 H9 y; [ExitProcess 中止一个进程
- P' n3 v! h, h) J& r3 O) jFindCloseChangeNotification 关闭一个改动通知对象 7 {% J) U8 ?1 D' f
FindExecutable 查找与一个指定文件关联在一起的程序的文件名
1 f7 L0 q* R- R/ [. C8 y/ VFindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化 % O- }3 ?8 G1 [! i
FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 5 @9 ^& j7 K& @" u: W7 l
FreeLibrary 释放指定的动态链接库
8 {" C5 l2 Y: h) g: T* T& NGetCurrentProcess 获取当前进程的一个伪句柄
, v- V% ?) V3 \% s1 o8 m9 YGetCurrentProcessId 获取当前进程一个唯一的标识符 - ~8 h! N7 |# y2 D/ r" t. |% k
GetCurrentThread 获取当前线程的一个伪句柄 2 s& O% z" j& Q \( @( s
GetCurrentThreadId 获取当前线程一个唯一的线程标识符 : I. S" _0 d3 y, a
GetExitCodeProces 获取一个已中断进程的退出代码 * t. S' ?- r2 V
GetExitCodeThread 获取一个已中止线程的退出代码
+ {6 v- Y" a5 ]GetHandleInformation 获取与一个系统对象句柄有关的信息 5 K( T1 I ?# J0 L4 w
GetMailslotInfo 获取与一个邮路有关的信息
7 f0 O0 j- J; B% H2 E4 F% ^GetModuleFileName 获取一个已装载模板的完整路径名称 n& k$ ^* F) B3 h& ]3 o
GetModuleHandle 获取一个应用程序或动态链接库的模块句柄 ; c7 _4 z1 q1 a7 Y* q
GetModuleHandleA(LPCSTR lpModuleName);
# F8 X# |5 W4 K" SGetPriorityClass 获取特定进程的优先级别
& A7 |) V( @( w: n. ?$ IGetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况
2 Z* b- M# Z$ z" }" OGetProcessTimes 获取与一个进程的经过时间有关的信息
& [3 n9 @) i, U; U* rGetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存 ' h ]4 W" v2 b x% d/ z
GetSartupInfo 获取一个进程的启动信息 8 c) j& I6 F$ ]& s% C
GetThreadPriority 获取特定线程的优先级别 " s4 h: }8 M" K% S: c
GetTheardTimes 获取与一个线程的经过时间有关的信息 3 [1 z& U: \- c' J5 |. d( l
GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符
. X: A. H/ g& C" ^LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间 " u9 d: X7 m6 Y3 T' `, d" [9 d
LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间
0 M- x+ j$ Q+ S* y4 r/ ZLoadModule 载入一个Windows应用程序,并在指定的环境中运行 6 L8 G u- `4 E( a5 j) G( q: F
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回 ! w# B$ ?( k2 p( T
SetPriorityClass 设置一个进程的优先级别
; A; G+ \, s% p! Q# `: c. PSetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序 . m) D9 A1 M) I: s8 ]% b
SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量 & y3 l3 h; Z0 k6 A) m
SetThreadPriority 设定线程的优先级别 # _: e6 p5 H: ` W
ShellExecute 查找与指定文件关联在一起的程序的文件名 # |5 W- ^1 S6 D9 s b3 r8 T& m
TerminateProcess 结束一个进程 - n2 X3 t; m0 N4 w' }- @7 W
WinExec 运行指定的程序
' i2 a! R/ z) ~: W1 `12. API之控件与消息函数
R+ _7 Z2 B. x4 RAdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小
$ O/ e/ K, v5 dAnyPopup 判断屏幕上是否存在任何弹出式窗口 ! q" W. q* o1 T, {3 K) s+ R1 X
ArrangeIconicWindows 排列一个父窗口的最小化子窗口 + o5 V8 y% ]6 m. y0 w
AttachThreadInput 连接线程输入函数
a) p. v) H. X5 R% m" C0 \& dBeginDeferWindowPos 启动构建一系列新窗口位置的过程 6 T& P3 q& \+ k# E# i" d+ P5 G
BringWindowToTop 将指定的窗口带至窗口列表顶部
7 P* o; x- u$ Q3 d5 u4 TCascadeWindows 以层叠方式排列窗口 ! D- }0 p! Y: `7 X. k
ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 ( ]8 e0 `5 J) U1 U
ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标
, Y/ S. L. B& ~& ?( P" v' A; d6 [& jCloseWindow 最小化指定的窗口
+ u4 D) k; Q/ U0 h* {" A& m3 R% GCopyRect 矩形内容复制
( d# ^( R6 z' KDeferWindowPos 该函数为特定的窗口指定一个新窗口位置
; S7 B$ o; z; [) j( Z: QDestroyWindow 清除指定的窗口以及它的所有子窗口
, a( I- [; J# u; ~DrawAnimatedRects 描绘一系列动态矩形 # Y" S" {/ h" A0 m. h; S9 U4 P% s
EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入 ; R6 p: s$ \6 `$ O5 b
EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态 2 h& b7 n; B" @& {/ ~
EnumChildWindows 为指定的父窗口枚举子窗口
, w. M6 I* L! K3 Q' fEnumThreadWindows 枚举与指定任务相关的窗口
, m- q; o( Q4 O. tEnumWindows 枚举窗口列表中的所有父窗口 : D5 {$ C+ M* ~" [% h
EqualRect 判断两个矩形结构是否相同 3 h" Z- E& h3 w7 M. P# P
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口 ! K' _" m% n0 r( O3 P1 O. i
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
2 U# ^* q6 p% m$ |/ J9 P) {' KFlashWindow 闪烁显示指定窗口
; M: Z( W: I# \! q8 \% QGetActiveWindow 获得活动窗口的句柄
x; Z" d# `% Q. \GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收) ' e; a0 L' G5 e( p. R
GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息
. H7 K( K+ L; M( p" v5 V+ b S3 CGetClassLong 取得窗口类的一个Long变量条目
7 g, g: q- }# F$ B* C% l/ ~, C& TGetClassName 为指定的窗口取得类名
1 u5 c. ?6 a3 M, i! N) iGetClassWord 为窗口类取得一个整数变量
. B& x: s# T0 A, F ]+ lGetClientRect 返回指定窗口客户区矩形的大小 5 l3 ]# A6 j4 {5 @7 |$ D
GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
& k! d4 Y8 v) W3 {. z; kGetFocus 获得拥有输入焦点的窗口的句柄 7 k1 B! c: B+ c* l8 u
GetForegroundWindow 获得前台窗口的句柄 ) t. r$ v4 K3 ?! H( f
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄
2 G5 d7 q3 o4 A) m0 U6 D" LGetParent 判断指定窗口的父窗口 5 X; u6 P6 ?1 E+ l1 f0 N
GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 ; I( B7 d4 e# E% N7 X2 b
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分
" Q- W! i1 ]! x# O5 F+ KGetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 1 W' s" u+ k3 T" R8 w. A
GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID 1 d* N7 h r4 K
GetWindowLong 从指定窗口的结构中取得信息
% P4 o" N" ]+ [" |6 o$ yGetWindowPlacement 获得指定窗口的状态及位置信息 3 s2 J2 S7 O9 \" n9 f' A
GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 + w& |+ k6 k( _- i1 \' ~% @, Y4 P
GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容
$ w6 s- q4 N6 kGetWindowTextLength 调查窗口标题文字或控件内容的长短 l, f+ X' O" S3 T7 W; F
GetWindowWord 获得指定窗口结构的信息 # f& _4 E. m1 \ J
InflateRect 增大或减小一个矩形的大小
* q% l- `* Q3 X6 w& Q: b% kIntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集
( w& N, o8 {9 d* W+ NInvalidateRect 屏蔽一个窗口客户区的全部或部分区域
* m; ~9 X4 o* Y6 o' B- A; |% OIsChild 判断一个窗口是否为另一窗口的子或隶属窗口 0 _/ U! V, \% g# g Q9 M
IsIconic 判断窗口是否已最小化
4 ?2 L% e* x) X$ ^4 P4 GIsRectEmpty 判断一个矩形是否为空
& H5 b @) b8 V. \- nIsWindow 判断一个窗口句柄是否有效 : t1 l! q8 L/ ^6 e4 ]$ T
IsWindowEnabled 判断窗口是否处于活动状态
! ^( h: d$ E4 Q/ |( H; HIsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 ( ?% O/ g6 c" i. O" _- C
IsWindowVisible 判断窗口是否可见
+ _* ]& D* w* \IsZoomed 判断窗口是否最大化
5 S u1 Z+ `) J! y# [. `, bLockWindowUpdate 锁定指定窗口,禁止它更新 " W3 d; Q c: }; R" i1 r# E3 Q
MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统 % F6 ~( }/ o9 a
MoveWindow 改变指定窗口的位置和大小
! `9 P% ~, X, z' ~! k* YOffsetRect 通过应用一个指定的偏移,从而让矩形移动起来 ! P+ z; _% c. m% y7 @' y
OpenIcon 恢复一个最小化的程序,并将其激活 a/ W* [7 z$ m" J6 n
PtInRect 判断指定的点是否位于矩形内部 9 }( F0 ]% T) ?- K& w+ B
RedrawWindow 重画全部或部分窗口
, p- F( t& `- N1 y9 S3 r$ vReleaseCapture 为当前的应用程序释放鼠标捕获
" q: ^2 \ F+ V( L* e) _ScreenToClient 判断屏幕上一个指定点的客户区坐标
% Q" y- M( G& ~ScrollWindow 滚动窗口客户区的全部或一部分 * [: C' {9 Z% V; n! G9 e2 p% M
ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分
! ?' I' G1 v3 NSetActiveWindow 激活指定的窗口
( @$ O' ?" G* x5 `SetCapture 将鼠标捕获设置到指定的窗口 7 F- g0 @& W, z. {, r
SetClassLong 为窗口类设置一个Long变量条目 0 E1 V; }1 }/ Y H3 t: P* Q; H c! ?
SetClassWord 为窗口类设置一个条目 ( t; Z( M0 s j8 y3 F
SetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口 ' [8 D3 k9 p7 t4 @
SetForegroundWindow 将窗口设为系统的前台窗口
* G6 S( x& S T1 DSetParent 指定一个窗口的新父
7 h v* ~' S+ q" jSetRect 设置指定矩形的内容
$ z3 R6 Q q9 p' [$ l# J Y' CSetRectEmpty 将矩形设为一个空矩形 6 s. v$ H5 W' y* d0 ^: H' y# D
SetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID 8 R8 Z- q j8 z9 I% M9 S
SetWindowLong 在窗口结构中为指定的窗口设置信息
. R* p- \! w0 h |0 a8 s( aSetWindowPlacement 设置窗口状态和位置信息 N; J1 N' r, h% K( G4 B, k
SetWindowPos 为窗口指定一个新位置和状态
4 y- D- J' }3 Y) }1 B+ ^8 fSetWindowText 设置窗口的标题文字或控件的内容
" m3 d2 K6 E# p7 k0 I4 Y; l/ h7 cSetWindowWord 在窗口结构中为指定的窗口设置信息 4 k+ F+ k& X8 V8 y1 p& X
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口
- w; n& O9 m9 `/ ^' l& o& `1 O1 \ShowWindow 控制窗口的可见性
' J w- O# c$ J; f9 x5 sShowWindowAsync 与ShowWindow相似 ! Z+ [. ~3 H3 p% }+ [
SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果
6 p, B1 ~5 k. x+ m2 n3 HTileWindows 以平铺顺序排列窗口
! b$ o% W. I# L0 W" C' t! jUnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果
! d( k* ?; ^3 N# V2 fUpdateWindow 强制立即更新窗口
& \0 [) p l! p. JValidateRect 校验窗口的全部或部分客户区
/ T. Q0 M0 O5 a KWindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口
0 ?6 q# ]& u# L高级音频函数—参看《VC++ 编程指南.chm》11.6. q. A1 H* z- k0 b0 G1 r0 I' g
Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。 R5 h# n7 S3 L% f/ m+ a, h( I" }
BOOL MessageBeep(UINT uType);, z# n* }, B" b
该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。
9 w/ X) @* C2 g# b参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。
% \7 Q h! _; g4 x- N1 P: i级别
" P# j/ k. \ K$ B2 U$ e: [ | 描述 ! x F- l3 y: L/ w [
| -1
m( A; ^. S* Q9 B$ L2 u7 C | 从机器的扬声器中发出蜂鸣声。 * {/ T! {" m! }5 D
| MB_ICONASTERISK
; V8 j5 A' a' u; h0 E | 播放由SystemAsterisk定义的声音。 ( P- L( w* O; c3 d) {
| MB_ICONEXCLAMATION + O$ ~1 o7 n' Q2 q
| 播放由SystemExclamation定义的声音。
$ o1 |9 k( ]" i. X& u# j* ]* N4 \5 E2 | | MB_ICONHAND ; i& |# h# o" {% C
| 播放由SystemHand定义的声音。 ) k. d: ]" J* V7 u. D- X& o
| MB_ICONQUESTION
; f @0 ~) x* H9 S T- V5 G | 播放由SystemQuestion定义的声音。
* ~7 p% i2 t5 V# j | MB_OK
/ R! z% W4 y% M7 Y% c& f3 L+ Z | 播放由SystemDefault定义的声音
8 u0 c# l7 Z. ]# F, y. Q: k- D | BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);4 l' y/ `- T3 o
参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。
" W0 |& r1 Q6 W" U2 R参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。
- g0 w: F$ J% W. G2 Y: d4 k- ]参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。% S; ?$ z3 ?- q% x
标志
; u4 h' X0 A+ V" N1 U | 含义 2 j/ Y% B3 B2 T. |! B
| SND_APPLICATION . E- X2 \8 |' @% Z8 b
| 用应用程序指定的关联来播放声音。
# ^% I6 `/ q8 T; _ | SND_ALIAS 3 |" ]: X/ L2 n% ~( g" v
| pszSound参数指定了注册表或WIN.INI中的系统事件的别名。 ( c# y$ U( E( R. D0 e0 Q7 }
| SND_ALIAS_ID
/ x2 T/ F) ]: p9 j8 R% s1 u | pszSound参数指定了预定义的声音标识符。 1 V) N6 m2 R9 `
| SND_ASYNC
$ H" I/ O* J4 v" a | 用异步方式播放声音,PlaySound函数在开始播放后立即返回。 7 @" k5 `3 Q: C/ `
| SND_FILENAME , y! \1 K' v3 v. o8 z, H% L, B9 z
| pszSound参数指定了WAVE文件名。
) n9 T( _+ w" n w( K! U6 K | SND_LOOP ) }* p, L. `) W; W2 U' }( }* \, s
| 重复播放声音,必须与SND_ASYNC标志一块使用。 ; ~9 E: v% S1 ^8 F/ h3 \
| SND_MEMORY
3 a, V5 X3 E4 _' b, Y/ Q' F2 W+ m% C$ K | 播放载入到内存中的声音,此时pszSound是指向声音数据的指针。 9 C2 C1 T0 [: J8 | V
| SND_NODEFAULT
* p# O6 s8 a6 n4 [8 o5 e | 不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。
; {- u T+ v$ c+ e5 G | SND_NOSTOP $ B2 q# ]# q8 v
| PlaySound不打断原来的声音播出并立即返回FALSE。
. ?9 N/ Q* Z7 j0 ] | SND_NOWAIT - c3 P3 c. D! c0 r
| 如果驱动程序正忙则函数就不播放声音并立即返回。
, I3 M8 s, f0 t0 {' X' A9 ]" s | SND_PURGE
6 m' l U! _1 k | 停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。
4 C L* i- c5 |0 p6 ]! [8 Q! s | SND_RESOURCE 0 [: H3 X5 Z6 ^" z% X# _
| pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
6 U+ X1 G, ~- J; X, e | SND_SYNC
' R/ J a4 o$ ] c! ` | 同步播放声音,在播放完后PlaySound函数才返回。
8 c1 U! B: c3 H" l | BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);
. i* y" `% q0 m9 R `" K0 N+ U函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。) A" {1 m7 h1 ^& ]. K' l
MCI播放! W9 \8 Z( U5 j0 |3 i% i
所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
( W# X- [5 Z: z4 w/ FMCIERROR mciSendString(
$ o* ?2 ^3 |) | s' hLPCTSTR lpszCommand, //MCI命令字符串
9 B3 k6 C+ M% yLPTSTR lpszReturnString, //存放反馈信息的缓冲区
1 T5 t' U" D( `5 c0 UUINT cchReturn, //缓冲区的长度
: d q r- }" A* OHANDLE hwndCallback //回调窗口的句柄,一般为NULL: P6 \5 ] p2 r) S
); //若成功则返回0,否则返回错误码。
3 m% |; x5 O% [7 Y; }' c该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:3 j; ]* s; g$ C* l# |% }0 T$ s: z
BOOL mciGetErrorString(
6 k: Q3 V+ ]6 F. vDWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码
1 O3 t( [' G# D% }$ YLPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区0 v1 E) N& a: H
UINT cchErrorText //缓冲区的长度
0 e) S- Q( U" i R9 T);& u5 |+ u6 `7 J# W& N6 E) r1 e
|
|