|
|
原文:http://www.cnblogs.com/cltsq/articles/api.html; }4 g/ e+ f0 w4 c' A
1. API之网络函数 . l# q: I% \3 V3 |
WNetAddConnection 创建同一个网络资源的永久性连接 % |$ \( x, P) |+ [( M3 g
WNetAddConnection2 创建同一个网络资源的连接
! T! O& v, f, D! `6 i) zWNetAddConnection3 创建同一个网络资源的连接 & o5 q2 q7 G0 K3 U; ^3 K
WNetCancelConnection 结束一个网络连接 $ n8 D5 L$ {5 R, E
WNetCancelConnection2 结束一个网络连接 7 Q- D" i* B/ O; J4 E9 o# _
WNetCloseEnum 结束一次枚举操作 . l e3 n- A9 _9 [8 X
WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 . ?4 D% c) ]0 B* D
WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接
5 N a: E) {& c5 ^ `WNetEnumResource 枚举网络资源
4 P g I; X% AWNetGetConnection 获取本地或已连接的一个资源的网络名称 , A, e+ x+ F, T% n3 ?8 X$ |. ~
WNetGetLastError 获取网络错误的扩展错误信息
, o# o8 Q o( U, B- W O$ dWNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 " p; ~' Q. ^2 w2 x: m( j5 ^" {' m
WNetGetUser 获取一个网络资源用以连接的名字
6 R( u5 S! T+ mWNetOpenEnum 启动对网络资源进行枚举的过程 ) B; B+ V6 L& u3 i" J b9 t" e# Y
2. API之消息函数
8 Y% D7 j9 V# T2 C9 k3 B- d6 R. HBroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
* l; P5 p( f' P' c FGetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置
8 e6 P# d0 b w3 a/ ]8 yGetMessageTime 取得消息队列中上一条消息处理完毕时的时间
" N( l- s! R0 T: @3 T/ v; sPostMessage 将一条消息投递到指定窗口的消息队列
/ m0 N7 B* F- ~PostThreadMessage 将一条消息投递给应用程序 6 h% Z& _6 h/ b
RegisterWindowMessage 获取分配给一个字串标识符的消息编号 ( ]/ T# N. j5 c1 ?* g4 T
ReplyMessage 答复一个消息 ! f7 D0 c6 C' d2 J! R. W
SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 ! p) \6 g; T3 j, Z) c
SendMessageCallback 将一条消息发给窗口
& o* G( I/ j$ G+ C" k* wSendMessageTimeout 向窗口发送一条消息 3 x$ T1 B. w0 Q
SendNotifyMessage 向窗口发送一条消息
) u9 p7 `( k( }5 @0 z# r: X3. API之文件处理函数 2 U q3 D0 O6 y% S! f" _1 n/ T
CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 ' ]% T( O; R) R& U0 W
CompareFileTime 对比两个文件的时间
0 [& C, X- l" B* j0 @& `( U1 H. BCopyFile 复制文件 6 ]3 E w7 A. Q* x( i I- D/ u6 m2 i
CreateDirectory 创建一个新目录
/ {; \* n9 E! {& R. [/ H- G h1 jCreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 2 l, w$ I+ F# @# }( ?
CreateFileMapping 创建一个新的文件映射对象 / s; s5 W- Q4 \: W+ a+ e7 r
DeleteFile 删除指定文件
+ f- @* S- k r3 t0 ADeviceIoControl 对设备执行指定的操作
0 L) H8 U+ ^& N' WDosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值
9 ^6 _ S5 F2 g) ^6 \ AFileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值
, a" z; ^9 T" \( D1 K4 IFileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间
' {( k4 \/ z& b) gFileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构 & H1 v6 t. C5 n F' G8 h
FindClose 关闭由FindFirstFile函数创建的一个搜索句柄 % J. Z+ E. W* z! }0 ~0 U4 n
FindFirstFile 根据文件名查找文件
3 F, b7 M0 l2 R$ m$ U, Y8 s {FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件
! V& ^# e" J$ x0 ~FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 ' {+ O2 t, j* l7 ?8 W! K
FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 5 R- ?8 z$ `0 z* @
GetBinaryType 判断文件是否可以执行 0 ]/ w9 z: o% W% \/ a5 \$ ~' h7 x
GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 : m+ p- I% Q3 \
GetCurrentDirectory 在一个缓冲区中装载当前目录 / \+ k# t! w. e
DWORD GetCurrentDirectory(, u5 M" W4 M5 a- J+ `" X
DWORD nBufferLength, //缓冲区大小
7 s' M; K5 g: I2 w/ f- D# C3 { LPSTR lpBuffer //缓冲区的首地址
/ z/ I0 j6 e9 \, _& t' I );% J) L" p, r3 @6 w7 h- S
GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量
1 M) O, `" Q d) P/ tGetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息
+ F5 N- I; c3 N8 e$ QGetDriveType 判断一个磁盘驱动器的类型 ( @( o2 o" o, e3 P) f. }
GetExpandedName 取得一个压缩文件的全名 ! L/ B5 V8 r( u$ Q1 j
GetFileAttributes 判断指定文件的属性
$ u. ]" Y2 j8 ^. A6 n1 M3 p" hGetFileInformationByHandle 这个函数提供了获取文件信息的一种机制
- e! I0 K' [' G. [GetFileSize 判断文件长度 , }6 H e9 K3 B. h) m2 y
GetFileTime 取得指定文件的时间信息
t' K( E) D# g+ PGetFileType 在给出文件句柄的前提下,判断文件类型
) n) q8 h1 E4 D$ S% \; MGetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息
1 r5 a# a! i3 A# QGetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区 ; R+ T: N7 W- o& l/ O2 j
GetFullPathName 获取指定文件的完整路径名
I" g x# x8 b6 ^/ R' bGetLogicalDrives 判断系统中存在哪些逻辑驱动器字母
) p5 H$ z0 }( w9 P9 L- z; hGetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 5 F/ j* h' m) M5 n3 l/ D' S Y; g
GetOverlappedResult 判断一个重叠操作当前的状态
7 |! S; P& t7 v# yGetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值 % b' b6 Q& S0 p
GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表
! E4 T* Q8 ~: w8 Z4 Q7 |GetPrivateProfileString 为初始化文件中指定的条目取得字串 : V. @2 L! {% @% q( t( |/ w0 n
GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值
9 u( x" s, Z; l* y& I5 I3 cGetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表
; ]8 O1 u1 d6 J: S. L" `! J$ HGetProfileString 为win.ini初始化文件中指定的条目取得字串
+ M6 {: x- E2 oGetShortPathName 获取指定文件的短路径名 ( N1 ^ @6 [. @4 B1 I( T
GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名
' F# A* b9 M. h3 d, z0 qGetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用
7 G: C# D: u0 d7 hGetTempPath 获取为临时文件指定的路径
- ^# [: y3 l) K, |( C dGetVolumeInformation 获取与一个磁盘卷有关的信息
4 w- v- H: c' bGetWindowsDirectory 获取Windows目录的完整路径名
6 r0 v7 V4 t; Phread 参考lread # |* T- g' M; W5 ] Q; _
hwrite 参考lwrite函数
: H' v; _# e3 r2 N- [lclose 关闭指定的文件
3 _$ |" y% G. {! n, k. s$ Clcreat 创建一个文件 7 K2 E7 Z$ H, Q# m
llseek 设置文件中进行读写的当前位置 2 ]$ U- }+ q; w% \3 n
LockFile 锁定文件的某一部分,使其不与其他应用程序共享 + n ]- S) M) Z& o5 n h Y
LockFileEx 与LockFile相似,只是它提供了更多的功能
# M; ~1 F K' Ylopen 以二进制模式打开指定的文件 + l' r( d* d: B* E9 N
lread 将文件中的数据读入内存缓冲区
# j X! S( b: W) c; C3 slwrite 将数据从内存缓冲区写入一个文件 6 K% d# U) ~4 [6 e$ K& ]' H
LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件
' y9 j3 O6 \; Q" m: nLZCopy 复制一个文件
, S( h: T# Q5 `9 B* [5 }0 d) e! _LZInit 这个函数用于初始化内部缓冲区
. T5 K- x- n, b) o; z- FLZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件 , C4 N5 W& J% P5 N0 x4 i" f- N7 a% e
LZRead 将数据从文件读入内存缓冲区 % g' b2 _$ k) P$ D; N! g
LZSeek 设置一个文件中进行读写的当前位置
+ a+ i0 e4 h( UMapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间 $ \: C& e% q9 e- k1 G: b; A4 M
MoveFile 移动文件
5 @ K7 q' R5 b7 v# q, tOpenFile 这个函数能执行大量不同的文件操作
3 B5 [) q+ d' \# X. n4 `7 rOpenFileMapping 打开一个现成的文件映射对象 2 e5 s1 {7 ?& w9 b
QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况 ( T. y, M- L& X0 |' }5 {
ReadFile 从文件中读出数据
$ X0 b: v d" n1 b8 b Z5 y9 [ gReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调 q) \# }- i6 J" w! }- r
RegCloseKey 关闭系统注册表中的一个项(或键) ( R7 |7 ^ S. g$ C- M
RegConnectRegistry 访问远程系统的部分注册表 + q2 ?" \! V% H3 b- n a5 d, W" c
RegCreateKey 在指定的项下创建或打开一个项
4 S- P! v' u, |9 [0 j4 j ERegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数
$ `- O: T5 s% k' Q x8 C2 pRegDeleteKey 删除现有项下方一个指定的子项
1 L4 |7 k9 j2 S5 o9 E% m/ x# ORegDeleteValue 删除指定项下方的一个值 4 M) i6 R3 M- r
RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx % l0 Y; w7 y# z
RegEnumKeyEx 枚举指定项下方的子项 - g0 p9 y3 J# d) ~4 @8 n
RegEnumValue 枚举指定项的值 2 [* M. \, @. j, w8 m
RegFlushKey 将对项和它的子项作出的改动实际写入磁盘
: {% I8 O$ z+ e. G' n' F, ]- ~RegGetKeySecurity 获取与一个注册表项有关的安全信息 1 m% f8 D) v6 z' z1 y* Q+ ]
RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息
- H0 [9 l1 H) K6 i0 @RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制
, x" H, S0 x/ L; T8 S: e) C' ?RegOpenKey 打开一个现有的注册表项 1 s: N# d/ M k" N, E: r* ]# h, @4 n
RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
* k) k- w0 ^( `' V' t+ ZRegQueryInfoKey 获取与一个项有关的信息
, z E& ]1 g4 z. [5 O1 G; GRegQueryValue 取得指定项或子项的默认(未命名)值
% ?) N. T$ Y0 S5 D7 s: TRegQueryValueEx 获取一个项的设置值 " I4 O3 O$ O; X- C4 D
RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
6 i1 U9 j& P% v0 c) W+ i% FRegRestoreKey 从一个磁盘文件恢复注册表信息 ' r, Y" w- X q
RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件 - u6 {6 U- r) ?! e1 G- a
RegSetKeySecurity 设置指定项的安全特性
( ]: N" R" [0 X0 VRegSetValue 设置指定项或子项的默认值 $ p& O: l6 @/ W$ A9 B
RegSetValueEx 设置指定项的值
: E/ o: | D$ V, S% P" G) G- x9 iRegUnLoadKey 卸载指定的项以及它的所有子项
S( p G$ i% f; ]8 v2 YRemoveDirectory 删除指定目录
$ b! N) ]( I* H# @& Z' @SearchPath 查找指定文件
" i* t8 d8 s1 bSetCurrentDirectory 设置当前目录
, f( c! l8 k1 ISetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾
5 `+ _7 y1 O6 T; YSetFileAttributes 设置文件属性
1 v# t- `4 j( gSetFilePointer 在一个文件中设置当前的读写位置 ) ?2 ^$ `" i1 i1 Z* O' c8 d
SetFileTime 设置文件的创建、访问及上次修改时间 : {, i' @+ t- h! L: F
SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果
2 Y& o3 ?- z( R, \& ^SetVolumeLabel 设置一个磁盘的卷标(Label) 1 p7 p- c/ l) H
SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构
V& [9 d/ l5 s4 r& X. sUnlockFile 解除对一个文件的锁定
. ]' K- `6 f4 n8 J( b# C9 tUnlockFileEx 解除对一个文件的锁定
- m' K# ~' D1 M) p. bUnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射 : A1 O# N" n% ?+ M; ]3 Y% Y
VerFindFile 用这个函数决定一个文件应安装到哪里 ' _& d# ?6 A; ~( i& X+ I. @; x
VerInstallFile 用这个函数安装一个文件 0 I0 p, p) z1 L7 U1 D2 l, ]* L& B& s
VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称
3 J) h: ^& {2 nVerQueryValue 这个函数用于从版本资源中获取信息 : c8 b3 u& [* E: A
WriteFile 将数据写入一个文件 8 t8 M% d7 ^1 E X* j; L
WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调
/ }" k7 J6 v, m9 b1 X5 \WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值
6 p+ F b6 _* F' D3 ]2 J/ zWritePrivateProfileString 在初始化文件指定小节内设置一个字串
; c7 Y0 d0 s- [# N @5 P! YWriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值 5 Z' D8 l+ O6 M- ]/ `9 p
WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串
$ U" \1 {6 W/ H7 ?6 [, r, ~( M4. API之打印函数
0 }7 T/ e& W& u F' UAbortDoc 取消一份文档的打印 1 b) {& {- n' s% u8 O& A( A0 ~
AbortPrinter 删除与一台打印机关联在一起的缓冲文件 : P' S0 K4 i# z }% ]
AddForm 为打印机的表单列表添加一个新表单 ' @, x( F8 T Y. c- { i, r
AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
* u. m% `' n9 L S' F }AddMonitor 为系统添加一个打印机监视器 ; {3 v5 F4 ^: q9 G4 _
AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口
! N! l; n5 S1 G h+ c' p% VAddPrinter 在系统中添加一台新打印机 - f4 h% R4 F7 F7 ?) w* U
AddPrinterConnection 连接指定的打印机 ! _1 o1 n$ P; C @5 t
AddPrinterDriver 为指定的系统添加一个打印驱动程序 & M. {: j& B# }& p, {
AddPrintProcessor 为指定的系统添加一个打印处理器
5 V3 E* s- `2 [- J) K' J; CAddPrintProvidor 为系统添加一个打印供应商
: |6 H7 G( J) F/ eAdvancedDocumentProperties 启动打印机文档设置对话框 - B; L' C6 m' B5 U+ B0 @/ z
ClosePrinter 关闭一个打开的打印机对象 ) K& D) R" M( ?
ConfigurePort 针对指定的端口,启动一个端口配置对话框 3 E& j: C- {$ R1 v1 i
ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
" }+ o# N. r- e8 b, c1 {DeleteForm 从打印机可用表单列表中删除一个表单 " @, ^7 }4 y5 O6 z9 } S6 ?
DeleteMonitor 删除指定的打印监视器 6 D8 A8 x, Z+ J+ E
DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口
6 L3 ~7 D2 }; v1 g2 ]' `0 IDeletePrinter 将指定的打印机标志为从系统中删除
' M& Y5 V- |: O0 L) Q6 ^DeletePrinterConnection 删除与指定打印机的连接
1 a" t7 b1 A+ B# H3 j% y; JDeletePrinterDriver 从系统删除一个打印机驱动程序
+ R; }" ?; \( H+ X- r5 K) }+ eDeletePrintProcessor 从指定系统删除一个打印处理器 5 _, Z3 ?/ j* r& g- H4 V& Q
DeletePrintProvidor 从系统中删除一个打印供应商 ' p6 G3 K( S1 P4 M
DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 . a" M" }. a# o' S! ^0 r* }
DocumentProperties 打印机配置控制函数
c1 D9 k8 j( t8 @& `EndDocAPI 结束一个成功的打印作业 . L8 j8 K3 w2 R) g7 v7 t2 l. x
EndDocPrinter 在后台打印程序的级别指定一个文档的结束
& e* p, c6 N6 X% R% U7 bEndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页
" A" J& D E9 X5 K% Z1 X! D# hEndPagePrinter 指定一个页在打印作业中的结尾
_6 F4 D; [& v- SEnumForms 枚举一台打印机可用的表单 ! x4 E& y' C; r
EnumJobs 枚举打印队列中的作业 9 O V! X2 p% i, A M
EnumMonitors 枚举可用的打印监视器 ! n) n# t' f" w; a* c2 D) {
EnumPorts 枚举一个系统可用的端口
8 F8 b4 q6 n+ n7 ]! k _! dEnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序 ( K) U, a+ y" d" ]) I% h8 t
EnumPrinters 枚举系统中安装的打印机
4 w" z+ d. d; o- \* B) o5 oEnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型
2 D( N) l' u6 h% DEnumPrintProcessors 枚举系统中可用的打印处理器 ) o( y4 S! S! H; f; T! q; b
Escape 设备控制函数
: T2 M( Z2 \! h; oFindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象
+ k; b2 I- F, U k, OFindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化 ( z, b: r; o. E# i* p( s/ _
FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
5 _/ q% z3 S6 ]* G- e. F4 E0 VFreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区
5 p' `# Z2 {7 z U) W" y- `GetForm 取得与指定表单有关的信息
, v; ^& V$ I' m3 ?8 l9 KGetJob 获取与指定作业有关的信息 ( D+ {6 L7 S! Q' q3 R- a2 e- ?7 w
GetPrinter 取得与指定打印机有关的信息
0 `( P% l! \. n- \( NGetPrinterData 为打印机设置注册表配置信息
. b |, `0 W$ x4 z+ D/ rGetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 ( [$ A3 {& s6 M9 O9 |/ @+ ~- j
GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么 $ g7 z3 G+ j, ?0 I1 n+ O
GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录
1 o' o! X$ I, uOpenPrinter 打开指定的打印机,并获取打印机的句柄
. f- I2 a- ?( I" aPrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框
' | Y6 w a1 c" X! DPrinterProperties 启动打印机属性对话框,以便对打印机进行配置 # d3 @% W6 ~6 x4 Z, j4 b
ReadPrinter 从打印机读入数据
6 S& l2 F; ~& S/ M0 N- W* kResetDC 重设一个设备场景 " @& y% G! g1 T) {
ResetPrinter 改变指定打印机的默认数据类型及文档设置 * g3 ~' O" w- G v( [
ScheduleJob 提交一个要打印的作业
- L8 q; T) Z! Z J; @; h+ YSetAbortProc 为Windows指定取消函数的地址
. E( c a. \5 C: P$ x2 d6 wSetForm 为指定的表单设置信息
1 i( O2 x% _6 q9 z7 d! XSetJob 对一个打印作业的状态进行控制 4 D, e7 j1 o Q7 Z
SetPrinter 对一台打印机的状态进行控制
. {! e- ^' w- n1 }$ p4 ZSetPrinterData 设置打印机的注册表配置信息
$ O4 b& t7 N" F) L! JStartDoc 开始一个打印作业 $ T& Y1 g" O" ]8 P& o' [
StartDocPrinter 在后台打印的级别启动一个新文档
. X5 C% |; ^9 X% A5 d* iStartPage 打印一个新页前要先调用这个函数
2 M1 E8 ?) ?$ Y! s, V2 qStartPagePrinter 在打印作业中指定一个新页的开始
! F) r; s+ d [WritePrinter 将发送目录中的数据写入打印机
. T$ A9 V! x1 j, {: u& o7 K- w5. API之文本和字体函数 * u! k. q5 p( Y+ {
AddFontResource 在Windows系统中添加一种字体资源
, z. k2 I. Z. q" }9 T( HCreateFont 用指定的属性创建一种逻辑字体
/ b8 r3 y4 N; x" k z- }CreateFontIndirect 用指定的属性创建一种逻辑字体
X% z4 e0 W) |7 i7 tCreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 & w! C- S" I: v
DrawText 将文本描绘到指定的矩形中
0 y: n0 m1 F1 l! ?) e8 I! k; }DrawTextEx 与DrawText相似,只是加入了更多的功能 $ C% e* Q! O! t$ u- V
EnumFontFamilies 列举指定设备可用的字体 ; @# W' @+ _ Q5 | b
EnumFontFamiliesEx 列举指定设备可用的字体
9 o0 B) j; D! \0 E1 FEnumFonts 列举指定设备可用的字体
) p2 s' l+ m1 R* v& X( S! {ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数
, X# U: I6 i( i% Q" r9 sGetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 , x+ Z$ n" |4 k R7 P
GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 1 B4 U2 w8 \. O: ~" b, ~# ~
GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸 , A/ |4 w% w+ E7 q: F1 [
GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串 H. s# o4 F0 l$ ?7 b! M. K# F- Q
GetCharWidth 调查字体中一个或多个字符的宽度 2 A, f( V T! S
GetFontData 接收一种可缩放字体文件的数据 $ N, m* h: w$ \* d- G5 C+ Y6 E# n
GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息
$ p3 a$ K+ _# z/ S, g& Q% F3 ]GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 + `9 U, `/ r# B1 b2 g
GetKerningPairs 取得指定字体的字距信息
7 g. p5 m0 C8 J2 O% s& ?GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息
- b9 \$ v8 `0 u9 v# y" RGetRasterizerCaps 了解系统是否有能力支持可缩放的字体
. W1 _7 I6 O) q- [4 D& v) gGetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素
4 ]2 j" d1 @ z$ e" k. \; ~$ Y2 gGetTextAlign 接收一个设备场景当前的文本对齐标志
$ S/ g) y: X: O. H: `/ L1 [GetTextCharacterExtra 判断额外字符间距的当前值
$ b: f$ T. Q5 P1 U3 uGetTextCharset 接收当前选入指定设备场景的字体的字符集标识符
" U' K. \, j7 [' H- yGetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 ! k/ q' { s8 ]+ f4 s) \
GetTextColor 判断当前字体颜色。通常也称为"前景色"
" E1 B5 G. I/ X( a9 _! g; f2 LGetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息 . ]2 {; {+ w6 Y1 e
GetTextExtentPoint 判断一个字串的大小(范围) ( F; c8 G" r0 K4 [: R5 e
GetTextFace 获取一种字体的字样名
+ f9 p5 g+ x! W% eGetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 6 I6 i4 Y9 D% a* |7 a
GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 : t; R( s' x6 T$ M# k
PolyTextOut 描绘一系列字串
- w2 c# _8 A3 K9 E" l5 {RemoveFontResource 从Windows系统中删除一种字体资源 5 n9 u. e+ `+ h, c3 d' H( t
SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 , _ P- \+ T k1 N$ ~* x9 O
SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置 7 K- X6 _5 D [! {
SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距
- f7 K& T+ {$ USetTextColor 设置当前文本颜色。这种颜色也称为"前景色" ! U' l+ S3 \ Q0 I
SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理 2 n. M$ q) B2 a+ \3 ]" p+ y
TabbedTextOut 支持制表站的一个文本描绘函数
5 L" ]* @. J* ~3 F! ~TextOut 文本绘图函数 . c0 n. F2 C3 y g: x9 K0 C4 [7 q
WINGDIAPI BOOL WINAPI TextOut(
2 M4 ~# ~: i2 u% }( vHDC, //输出设备
& ^4 v2 O1 V7 A7 t+ n/ f3 Cint, //输出的横坐标
/ q: M1 Q7 s+ G. k7 k& r& y9 fint, //纵坐标; e0 H' b Q. V- Y6 \
LPCSTR, //输出的文本str
8 s# t! f( t- e9 x& G. ]( Kint); //文本的长度:lstrlen(str)2 p) N, x" C# N$ e
6. API之菜单函数 9 c+ c# K! l: t2 Q
AppendMenu 在指定的菜单里添加一个菜单项
8 c/ }- X8 l- B% z; \CheckMenuItem 复选或撤消复选指定的菜单条目
3 T) M7 X8 x( O7 X+ P* rCheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 3 c8 u2 f# t0 n+ k' T8 y4 A3 j
CreateMenu 创建新菜单 0 ]8 a* }. \! S$ J+ B) Q
CreatePopupMenu 创建一个空的弹出式菜单 # a6 b3 H1 ^0 m8 |' C
DeleteMenu 删除指定的菜单条目
9 e# V" U& u# o% VDestroyMenu 删除指定的菜单 . j* C+ d' O) |+ i/ R
DrawMenuBar 为指定的窗口重画菜单
4 W% y$ f' l; i/ aEnableMenuItem 允许或禁止指定的菜单条目 ( U2 @ [5 }( g. f: U9 R
GetMenu 取得窗口中一个菜单的句柄
, T) I4 g; d ?GetMenuCheckMarkDimensions 返回一个菜单复选符的大小
) Y) `' z. I+ \ j8 m0 KGetMenuContextHelpId 取得一个菜单的帮助场景ID - e W5 y( q! ^$ }7 }7 F2 y; F
GetMenuDefaultItem 判断菜单中的哪个条目是默认条目 - |0 P* I9 ^$ D1 [* ^
GetMenuItemCount 返回菜单中条目(菜单项)的数量
6 f/ u ~/ Q) wGetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID ! T- e" L; c+ `' x5 [/ q
GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息
+ ~) G7 Y5 P3 M% m- X* H8 JGetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息
/ Y M. F' @# dGetMenuState 取得与指定菜单条目状态有关的信息
$ p9 }8 x( U' m% bGetMenuString 取得指定菜单条目的字串
1 P! N5 z7 m! h3 JGetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置
% ?' A' H, b2 }2 U. N; x" T7 HGetSystemMenu 取得指定窗口的系统菜单的句柄 : W9 R7 k; Q9 ~" p! f
HiliteMenuItem 控制顶级菜单条目的加亮显示状态
% |, X3 ]8 K8 ~" S* c; DInsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动 ' V7 W# l: q! p" }: a R* U9 z
InsertMenuItem 插入一个新菜单条目
. |2 \$ f3 \0 e }! J' |IsMenu 判断指定的句柄是否为一个菜单的句柄
! |) u& j4 u$ RLoadMenu 从指定的模块或应用程序实例中载入一个菜单
6 {; P2 @! @) kLoadMenuIndirect 载入一个菜单
6 i' T6 j# m$ ]3 q/ s6 q, yMenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点
/ }2 u; d* u8 t- \ModifyMenu 改变菜单条目 5 q, A3 i; `6 q, G/ V4 T
RemoveMenu 删除指定的菜单条目 6 w* s, S7 ], t l
SetMenu 设置窗口菜单 0 q9 ^1 J0 A1 N- ~# v9 o1 B
SetMenuContextHelpId 设置一个菜单的帮助场景ID 2 e1 {6 ~, U: H, f; s9 l0 _
SetMenuDefaultItem 将一个菜单条目设为默认条目
: I+ ]5 h1 Z& zSetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)
# _6 i7 r" I* }8 q( zSetMenuItemInfo 为一个菜单条目设置指定的信息 , E3 R% b# A6 I9 }9 G/ Q# R4 N
TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单
7 Q% l! u, ^8 F. |* a! y1 }TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 " S% Y6 [; N& ]% V6 h5 W
7. API之位图、图标和光栅运算函数 2 u, J* C' ], a( @4 l: j
BitBlt 将一幅位图从一个设备场景复制到另一个
$ ~+ z$ _3 \! Q$ J WINGDIAPI BOOL WINAPI BitBlt($ F7 K: V5 y' W: Z
HDC, //目标HDC
, o) L' w" t- x) zint, //X1
' D' d* C/ d0 y4 m2 Gint, //Y1
3 h3 E& N- ?; c' |. H% mint, //width
9 `" \* p* Z. b1 B uint, //height. y6 |- y* y6 N ]) _
HDC, //源HDC: G' v8 L0 `7 K9 V
int, //右边的距离
- W/ B- ]' ^$ mint, //??, ^0 P8 Q4 N3 T3 `% r
DWORD); //拷贝方式:SRCCOPY|SRCPAINT|SRCAND|SRCINVERT|RCERASE|NOTSRCCOPY|NOTSRCERASE|MERGECOPY|MERGEPAINT|
* t1 i$ w- T# a" A5 z4 @PATCOPY|PATPAINT|PATINVERT|DSTINVERT|BLACKNESS|WHITENESS1 h0 p1 z3 c2 X$ N/ T
CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序
5 u. P! e- T" O* A: M- h$ O [9 tCopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作
' C7 }. a2 G) p! R! B8 @% r6 K* R( bCreateBitmap 按照规定的格式创建一幅与设备有关位图
' c% a: L- }: O6 ~! w7 JCreateBitmapIndirect 创建一幅与设备有关位图
9 Y7 u5 O C9 q. p6 sCreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容 4 f$ b% J$ w/ p
CreateCursor 创建一个鼠标指针 4 g! [, N2 r! C
CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图
0 m8 S% o& U; s) g/ r2 `6 C) [CreateDIBSection 创建一个DIBSection
2 {" P+ @* v6 A! [; P$ a9 }CreateIcon 创建一个图标
7 }4 I8 z/ X( g8 e' Y. b% x9 ?CreateIconIndirect 创建一个图标 ' ]; J3 l9 ~# k7 P. J
DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源
, D* L: i5 o1 eDestroyIcon 清除图标
! d+ C( F: A6 J$ H- EDrawIcon 在指定的位置画一个图标 9 ~9 D2 d- m H3 l W/ Z3 E
DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能 5 e+ M3 K3 z$ i; p: r7 T
ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之 3 B4 P. X- M; g) N) A
ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来
7 R; ~* q% W' B5 HGetBitmapBits 将来自位图的二进制位复制到一个缓冲区 1 X9 Y' f( Q' k2 Q* R# M, i
GetBitmapDimensionEx 取得一幅位图的宽度和高度
) y. {' f7 R0 X0 S8 m: X# @# S0 s8 [GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息
7 o( n; k% ?" ?GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里 * T) v8 }, v9 ?$ t- m, r! w
GetIconInfo 取得与图标有关的信息
/ ^$ l5 O3 C, Q( N! UGetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式 " _4 x4 R% ~: k9 M9 U5 h" F- r2 c6 i
LoadBitmap 从指定的模块或应用程序实例中载入一幅位图
) y+ h7 F/ B4 {' R" }1 c# R, m0 wLoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针
5 N" E8 L! z5 n+ F/ VLoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针 . X' O$ b$ R6 ^, n3 e) n
LoadIcon 从指定的模块或应用程序实例中载入一个图标 + h/ e! `0 k: {7 M1 _8 H& x6 u
LoadImage 载入一个位图、图标或指针
. M# @) u- K; D* g J: HHANDLE LoadImageA() O! C3 S. H, A" p/ R6 N7 ?6 n
HINSTANCE, //当前实例句柄:AfxGetInstanceHandle()* x/ E: p; q# }
LPCSTR, //资源所在的目录:c:\help.bmp
; B; i7 S: w5 G UINT, //类型:IMAGE_BITMAP|IMAGE_ICON|IMAGE_CURSOR|IMAGE_ENHMETAFILE( x5 Q5 k1 N# L% {- T+ ?
int, //
) S( k+ i9 G9 T( n, h$ R a' l, l; p. a int, //
; Z8 b) r" h+ BUINT); //风格:LR_DEFAULTCOLOR|LR_MONOCHROME|LR_COLOR|LR_COPYRETURNORG|, o) A- ^ Q9 g3 N7 Y* Q. n. \. a7 ^
R_COPYDELETEORG|LR_LOADFROMFILE|LR_LOADTRANSPARENT|LR_DEFAULTSIZE|LR_VGACOLOR|
j, L* Z6 r; a) J5 c- X2 M9 ]LR_LOADMAP3DCOLORS|LR_CREATEDIBSECTION|LR_COPYFROMRESOURCE|LR_SHARED
8 L u7 |$ |) w! q5 e1 RMaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理 7 P! Z& A7 M: u$ ?
PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景 0 G O, K& |7 s: @% p. u9 p
PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理
1 @3 ]" q, u* K' C0 w& gSetBitmapBits 将来自缓冲区的二进制位复制到一幅位图 ( F: A- S) k4 q) {4 k4 T
SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位 3 {0 f) T8 o- q, S$ d1 g
SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息 - I9 l2 Y9 m( C+ X% Q! p/ n* \
SetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里 % A8 X9 @( L1 Q9 R- e
SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备
" {& h3 o8 B& t/ a2 ]9 K: pSetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 ) t0 p& x5 t+ o: Q, o
StretchBlt 将一幅位图从一个设备场景复制到另一个 2 [# l+ B+ j% z
StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
. h* i1 W& d3 N. y/ C9 V j0 t8. API之绘图函数
. m, _' X& b: N% _$ k& h4 BAbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
2 a, q, ]# [- F+ L- c8 j. S( tAngleArc 用一个连接弧画一条线 2 L. B4 c0 d, v+ Y2 W& L7 n
Arc 画一个圆弧
3 Y: E4 S5 |3 M {* _9 dBeginPath 启动一个路径分支
6 Y; S" M! H2 C/ b5 H7 \% M" B4 W6 dCancelDC 取消另一个线程里的长时间绘图操作 : i2 k# R! T* W; v3 s
Chord 画一个弦
) k2 l5 m) A) [& h+ b, \2 w4 X. PCloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄
' q" g% ?$ \/ ^) wCloseFigure 描绘到一个路径时,关闭当前打开的图形
: h0 P; ~7 \- g$ h/ S; M2 CCloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄 8 T. [' ]! D# S$ W" a9 f9 `
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
& R: r% @# N; o) LCopyMetaFile 制作指定(标准)图元文件的一个副本 : S6 k; b3 J; Z; e4 T+ v
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
" q1 A; f& q$ Y. H7 DCreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)
5 G& K2 x4 S/ n( }/ V, H0 W( gCreateEnhMetaFile 创建一个增强型的图元文件设备场景 8 Y/ v3 ]0 \% ?
CreateHatchBrush 创建带有阴影图案的一个刷子 7 @! M% h& X" x% H
CreateMetaFile 创建一个图元文件设备场景 " J" x z7 s9 m+ r) @9 o
CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
" [( f2 B( d3 BCreatePen 用指定的样式、宽度和颜色创建一个画笔 ) \- ^. f; J* E' ]
CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
2 A9 y5 @, E9 U1 V2 w' L6 c; [CreateSolidBrush 用纯色创建一个刷子
6 i" w3 O& e5 ^' ?* EDeleteEnhMetaFile 删除指定的增强型图元文件 3 `+ {/ I( L5 l; i$ c
DeleteMetaFile 删除指定的图元文件
/ H( `' l e. C' L& AWINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ) 删除GDI对象,对象使用的所有系统资源都会被释放; `- B4 l0 `; ]* ? m. v2 {
DrawEdge 用指定的样式描绘一个矩形的边框 0 ~1 q/ A, M, @6 |9 N& n' G
DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
( \" i7 D) L# P8 u( L8 FDrawFocusRect 画一个焦点矩形
! r0 @; g1 n% x5 i/ uDrawFrameControl 描绘一个标准控件 - @7 n. `$ a$ i- F; T6 P; R. C
DrawState 为一幅图象或绘图操作应用各式各样的效果 0 t0 R6 G8 c& ^3 }3 i
Ellipse 描绘一个椭圆,由指定的矩形围绕
6 }* @, R6 R, c oEndPath 停止定义一个路径
7 m5 Y+ J4 D/ Y5 u8 \) Z VEnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录
" L/ {7 M f4 y0 l* n7 rEnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录 4 ~$ v) o; v6 u3 a( ~; W+ r# D* C: r' o
EnumObjects 枚举可随同指定设备场景使用的画笔和刷子
! g) {6 M7 }' v% `) A( LExtCreatePen 创建一个扩展画笔(装饰或几何)
7 B* r7 Z) z7 ^" d3 ?% d& d0 LExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域 ) N7 @$ A' d ]' w8 d/ r1 W$ D
FillPath 关闭路径中任何打开的图形,并用当前刷子填充 9 l3 F7 @4 \; m- C
FillRect 用指定的刷子填充一个矩形
' `2 I4 {0 G* `9 E9 sFlattenPath 将一个路径中的所有曲线都转换成线段
4 C0 @9 }6 K3 s6 B. f/ ?! ?FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域 v# g7 `; H* m! e9 V9 |! y8 l
FrameRect 用指定的刷子围绕一个矩形画一个边框
$ \4 A8 v/ n& A% JGdiComment 为指定的增强型图元文件设备场景添加一条注释信息 , S7 j" N# U: p4 O/ `
GdiFlush 执行任何未决的绘图操作
/ g% h, ]4 r; a! `GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中
1 D% I9 ?8 L; A- c3 N& u/ lGdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列
" ^# S( p$ p1 y* w- }4 x+ LGetArcDirection 画圆弧的时候,判断当前采用的绘图方向
7 ~0 b0 L" h4 D/ t# d6 x: }GetBkColor 取得指定设备场景当前的背景颜色 ( c; o$ o' W4 Z: w+ ~8 {6 q
GetBkMode 针对指定的设备场景,取得当前的背景填充模式
, D+ k" t# g! XGetBrushOrgEx 判断指定设备场景中当前选定刷子起点
' c5 L5 @1 z7 {: ~# v! |GetCurrentObject 获得指定类型的当前选定对象 ; w2 a: K" d3 c" z' v
GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置 : \0 L3 A; x3 u5 D
GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄
: x: ^$ V. a L7 h" q5 _( I% ]GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里
. V. @1 d3 f8 }4 GGetEnhMetaFileDescription 返回对一个增强型图元文件的说明 3 E4 H* Q" u4 @# q
GetEnhMetaFileHeader 取得增强型图元文件的图元文件头
4 c* w: u, i9 fGetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 ; w" F1 Q4 s, n+ |" t S8 {
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 ) T% J- h$ F( B7 V: t
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区
3 c, h* @& w v; U+ Y8 l9 SGetMiterLimit 取得设备场景的斜率限制(Miter)设置 - T0 @9 e$ t8 |. k
GetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色
7 \" B# }: \) z% k8 {. AGetObjectAPI 取得对指定对象进行说明的一个结构 * R2 t& x N8 \: e/ i
GetObjectType 判断由指定句柄引用的GDI对象的类型 6 t! y0 K( P* g6 w& v
GetPath 取得对当前路径进行定义的一系列数据 / G& @9 Q, \: X( H
GetPixel 在指定的设备场景中取得一个像素的RGB值 ) `7 W$ Z/ c. g! |+ F, h* h
GetPolyFillMode 针对指定的设备场景,获得多边形填充模式
, ^) r2 m4 d+ [" F9 bGetROP2 针对指定的设备场景,取得当前的绘图模式
8 F3 w" g7 ]/ [6 y6 DGetStockObject 取得一个固有对象(Stock) 1 u ^6 D5 B6 v
GetSysColorBrush 为任何一种标准系统颜色取得一个刷子
, ~. `2 d# j; |5 M' |8 e/ U4 oGetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件 . p( t4 y5 I2 X" ~
InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形
3 O, D& N; U NLineDDA 枚举指定线段中的所有点 / ^; S+ b, N; F* q1 H
LineTo 用当前画笔画一条线,从当前位置连到一个指定的点
3 r" a1 d6 Q" T4 X: t. i; AMoveToEx 为指定的设备场景指定一个新的当前画笔位置
" K9 o% s7 O3 H* TPaintDesk 在指定的设备场景中描绘桌面墙纸图案 " I0 X. S7 n8 @
PathToRegion 将当前选定的路径转换到一个区域里
5 S7 F$ K5 {% U$ YPie 画一个饼图
- { |; Z' b# |: a5 W7 jPlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件 + N6 ` S7 T# ~5 {& l* P
PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 : w1 M/ f5 Y) X/ b0 `, x N" E
PlayMetaFile 在指定的设备场景中回放一个图元文件
" _+ q- n3 Q( TPlayMetaFileRecord 回放来自图元文件的单条记录
i; V5 K, M/ I5 k f! R! ?PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
- A) K# X. n: z* J3 C3 yPolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
& [- |! V+ G5 B5 ]! qPolygon 描绘一个多边形 7 @! D7 h( ~0 R- w, B
Polyline 用当前画笔描绘一系列线段
" Q5 u" Y9 I2 c2 R; JPolyPolygon 用当前选定画笔描绘两个或多个多边形 ; Q1 v( ]9 z7 P2 P/ I. t
PolyPolyline 用当前选定画笔描绘两个或多个多边形 ( m0 x7 i9 R* @' ]9 s) z
Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充 4 v. d0 L# K8 j3 ^/ ~
RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充
5 b1 j3 I- a, W: }1 X2 WSelectClipPath 将设备场景当前的路径合并到剪切区域里
1 V$ i1 h+ {; e+ VSelectObject 为当前设备场景选择图形对象 ' I f& i- M& z2 w _
WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC, HGDIOBJ);
, E' }2 A* q7 lSetArcDirection 设置圆弧的描绘方向 9 k; S4 z/ }3 w2 V9 m
SetBkColor 为指定的设备场景设置背景颜色
9 c" {; K# a6 T* g5 XSetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
: E5 i6 x6 Q' {( rSetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
y% ?9 s, ^2 S2 e6 j" PSetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
' f9 x& {4 R6 r" [* @SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件 $ A- |' L3 S, X" ~
SetMiterLimit 设置设备场景当前的斜率限制
% C+ e) l3 t3 a' ESetPixel 在指定的设备场景中设置一个像素的RGB值 8 G; N7 T- C$ ^$ r" O
SetPixelV 在指定的设备场景中设置一个像素的RGB值 3 _5 a, m3 ~4 D' ~/ ?! |
SetPolyFillMode 设置多边形的填充模式 1 e% l9 K- i0 M8 S- [! {1 W3 e
SetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致
6 J8 E3 P1 n4 eSetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件
1 h" M. z" h/ yStrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域 # i4 b5 @5 I. Z+ p. X" Q
StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭
& p$ B( R& X2 YUnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数 * p/ [2 B$ |, v# n$ k1 I1 O3 m
WidenPath 根据选定画笔的宽度,重新定义当前选定的路径
0 X/ p8 i; y6 |$ A9 x9. API之设备场景函数
6 m6 l ?4 e' n, ]- G& w# c; hCombineRgn 将两个区域组合为一个新区域 * C! x. y0 K$ l) P: W+ {
CombineTransform 驱动世界转换。它相当于依顺序进行两次转换
. I& s; H$ P& Y9 y0 C2 hCreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景 7 }. d- G" T! }/ F
CreateDC 为专门设备创建设备场景
: l0 U& x0 ^9 a: g6 _2 t* SCreateEllipticRgn 创建一个椭圆
% ]7 D' o/ T( M" p7 |CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域 / t9 ^6 A9 I. X3 Y: |
CreateIC 为专用设备创建一个信息场景
- F( c$ w1 u+ Q, ]0 ZCreatePolygonRgn 创建一个由一系列点围成的区域
* v( ?" V9 P) eCreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的
: i1 x+ R/ j1 `CreateRectRgn 创建一个矩形区域
: l9 A7 K% j8 D! P1 ^) m5 T* uCreateRectRgnIndirect 创建一个矩形区域 3 x: | \2 J& Q9 H- l! y. n z
CreateRoundRectRgn 创建一个圆角矩形 " u- Z* r$ o- U9 M4 t
DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源
! c+ W/ W$ U1 K M! qDPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标
0 K0 U/ U5 w- l" Y0 V* ` NEqualRgn 确定两个区域是否相等
} N8 {: M/ X, U- ?. r& ]5 `ExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图 9 R$ d5 P4 G# ?7 r
ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域 9 h. k! j( ?7 N
ExtCreateRegion 根据世界转换修改区域 ! R+ s8 i; {% ^8 H% q! ^0 F
ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区
# H; `- q9 R' m: rFillRgn 用指定刷子填充指定区域
$ V, ?6 K0 _8 W# ]FrameRgn 用指定刷子围绕指定区域画一个外框
0 G+ s" e& ]9 u( iGetBoundsRect 获取指定设备场景的边界矩形 0 @& y/ R& ~$ L
GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 , g: t: B* [9 b9 H7 r, A
GetClipRgn 获取设备场景当前剪裁区
- {2 e% F7 d2 f. u- GGetDC 获取指定窗口的设备场景 , b2 z( k& a5 l# S) d& X* ]
GetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项 % ^! W+ J2 W0 P# W& J# y7 L
GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示) , p. A, ~% h2 n, R, V9 h/ R. W
GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息 1 T* `, p I1 m5 {4 S' w
GetGraphicsMode 确定是否允许增强图形模式(世界转换)
/ e) J5 A* b0 j% HGetMapMode 为特定设备场景调入映象模式 9 t# w! w* ^0 e0 G4 U$ I4 _
GetRegionData 装入描述一个区域信息的RgnData结构或缓冲区
6 K8 m% t1 \7 e, n0 OGetRgnBox 获取完全包含指定区域的最小矩形 + i( v( X& H! \3 |
GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新
7 B3 M$ e, A; `2 G5 z# _& t# CGetViewportExtEx 获取设备场景视口(viewport)范围
! P$ g$ ?2 X$ ]( ]% u7 pGetViewportOrgEx 获取设备场景视口起点 & _2 M% |6 R" s! z1 F
GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景
* a6 l0 a1 x3 I0 G# p. V' HGetWindowExtEx 获取指定设备场景的窗口范围
+ V* `) O$ z$ J. C+ X zGetWindowOrgEx 获取指定设备场景的逻辑窗口的起点 : T5 m) X r' }+ ^: h: M, Q9 S
GetWindowRgn 获取窗口区域 ; U" G- F, D: S4 U4 h/ w
GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换
7 W5 X- _" \' [' _( RIntersectClipRect 为指定设备定义一个新的剪裁区 8 O- ^4 n. z6 e
InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画
$ i. }9 p: M" z4 j5 e, rInvertRgn 通过颠倒每个像素值反转设备场景指定区域 5 H6 v6 e" N) p2 r
LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标
8 X9 b6 \" y0 R8 UModifyWorldTransform 根据指定的模式修改世界转换
/ X O4 S% S* p$ s" `OffsetClipRgn 按指定量平移设备场景剪裁区
' B" p8 {4 W( U- D i! kOffsetRgn 按指定偏移量平移指定区域
! E' l' j6 ?& m8 MOffsetViewportOrgEx 平移设备场景视口区域
$ y9 G6 R) f# ZOffsetWindowOrgEx 平移指定设备场景窗口起点
6 Z* ?+ |5 M8 j3 u9 ^PaintRgn 用当前刷子背景色填充指定区域 ' S9 r6 U: \" i$ p, ~
PtInRegion 确定点是否在指定区域内
! v6 a! I* Y7 j. C$ EPtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内) 5 G$ |' u, H' x1 Q$ t) v. L8 a7 Q
RectInRegion 确定矩形是否有部分在指定区域内 5 m! b" i, p2 d9 q4 J" V
RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内)
( \9 K0 j/ f) fReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
4 }8 V" {) q e# l' MRestoreDC 从设备场景堆栈恢复一个原先保存的设备场景 9 J% S- x$ H, }( Y7 B# |) J, @
SaveDC 将指定设备场景状态保存到Windows设备场景堆栈
. S3 @ I N* ~/ F W# OScaleViewportExtEx 缩放设备场景视口的范围 + ^$ }1 J! Q; \0 }& O, ?* Z) C g
ScaleWindowExtEx 缩放指定设备场景窗口范围
. a( g9 {. d- ~ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
$ T* S. q' f1 ? nSelectClipRgn 为指定设备场景选择新的剪裁区
" ?5 [+ h y" |SetBoundsRect 设置指定设备场景的边界矩形
. k1 b$ Q' i& B" q% o& I {SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换)
9 q% t* W7 ?. k2 ~8 {1 ]SetMapMode 设置指定设备场景的映射模式 , t1 P; P* o6 P
SetRectRgn 设置区域为指定的矩形 / j5 ~9 i1 p& ~" b
SetViewportExtEx 设置设备场景视口范围
% @# |9 ~1 b, P. C" K; s4 H2 [SetViewportOrgEx 设置设备场景视口起点
$ r" r- [7 W5 nSetWindowExtEx 设置指定设备场景窗口范围 " e( x* L5 h6 j' c9 d" R9 ~" J
SetWindowOrgEx 设置指定设备场景窗口起点 # C+ G. T& e; ~6 S7 K' M
SetWindowRgn 设置窗口区域
; q- t3 ^7 v; B/ N. R5 VSetWorldTransform 设置世界转换
- v( S$ k) y7 ]- g0 ^ValidateRgn 激活窗口中指定区域,把它从刷新区移走 ) l9 [ J5 i/ }5 [5 u8 w4 Q
WindowFromDC 取回与某一设备场景相关的窗口的句柄 2 K6 O! a& U! Z4 x6 m' o
10. API之硬件与系统函数
0 G5 J B+ {/ f* u& Y# LActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 7 Y7 S" i, x8 G+ b
Beep 用于生成简单的声音 5 }2 j( o! x$ @7 G7 ]& k+ c
CharToOem 将一个字串从ANSI字符集转换到OEM字符集 & \1 O7 K( u# ]
ClipCursor 将指针限制到指定区域 $ N# e S) U4 Z; c
ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID
( Q7 W; M% x; P8 S; H, k0 }CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符
) ?* e2 s: ^0 Z. JDestroyCaret 清除(破坏)一个插入符 : z$ n N! d: [& w
EnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息
+ \* n& Y n! T3 ]* Q+ X0 @EnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式 3 i; p5 |7 }2 z5 D3 c4 c: B
EnumSystemCodePages 枚举系统中已安装或支持的代码页
, ^9 W+ Z8 o, P+ }6 K$ oEnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置
2 g/ d' z$ v! s5 ~EnumTimeFormats 枚举一个指定的地方适用的时间格式
: I0 g9 z$ _) c+ sExitWindowsEx 退出windows,并用特定的选项重新启动 5 `1 [5 r- Y, \( u" m
WINUSERAPI BOOL WINAPI ExitWindowsEx(
( n) |5 q. |+ l' _1 h' w4 J# p( [UINT uFlags, //EWX_LOGOFF|EWX_REBOOT|EWX_FORCE|EWX_POWEROFF|EWX_FORCEIFHUNG
& [+ Q v) Q* Z% W& ?* d DWORD dwReserved); //0- C B0 W9 m0 Z; o( K$ B
ExpandEnvironmentStrings 扩充环境字串 ) V2 j& g' S' f4 }1 R6 y
FreeEnvironmentStrings 翻译指定的环境字串块
! o! [1 R/ e# N1 YGetACP 判断目前正在生效的ANSI代码页
- ?, @ y# A- h2 Y r; @) ]GetAsyncKeyState 判断函数调用时指定虚拟键的状态 ' D% H% h) N; {3 X g' f9 I
GetCaretBlinkTime 判断插入符光标的闪烁频率 8 c- v2 l3 d) o: [" K
GetCaretPos 判断插入符的当前位置 $ R7 t, I" L1 u6 r
GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域 1 d: J O x$ p! S& H5 E8 @
GetCommandLine 获得指向当前命令行缓冲区的一个指针
1 u- q' c k% S) ?: KGetComputerName 取得这台计算机的名称 " y- l. L3 J$ W3 O
GetCPInfo 取得与指定代码页有关的信息
% `5 l1 K- G, j7 P* ?GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字 - }! n \3 s) Z' [0 v8 \- d3 j" j
GetCursor 获取目前选择的鼠标指针的句柄
# g- f; {6 r* PGetCursorPos 获取鼠标指针的当前位置
& ]4 j* K7 }$ m4 ?" ` @GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化 8 _. v3 S4 F7 A. l6 s$ U
GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 7 Z9 Y" M' i) _6 h" r+ s! K
GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄 # q2 [ g' j i" y9 Y X! @
GetEnvironmentVariable 取得一个环境变量的值 - i! j3 y2 I! l$ u
GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件
7 b- X& A; D1 H0 a# w' }1 YGetKBCodePage 由GetOEMCP取代,两者功能完全相同 4 b4 e/ G( i9 {* X5 g7 W
GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局 6 w8 z r: E$ e0 [# h* |
GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表
' p4 I7 ]. ]( tGetKeyboardLayoutName 取得当前活动键盘布局的名称
' T$ G7 J8 x6 jGetKeyboardState 取得键盘上每个虚拟键当前的状态
; U& m: V0 Y* }; x! ~6 e T3 ~- d/ mGetKeyboardType 了解与正在使用的键盘有关的信息 / M% N- v9 Y* c$ [6 q! z
GetKeyNameText 在给出扫描码的前提下,判断键名 5 h- p& K I- W* Y) L- n6 x+ y* [
GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 ) S2 D0 H5 T' F
GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息
: p% h0 k& e0 W; VGetLocaleInfo 取得与指定"地方"有关的信息
; N9 Z( {) m4 dGetLocalTime 取得本地日期和时间
1 p8 E& z& I* v* u: y- LGetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字 $ }# @4 K+ }" _. f9 [1 U
GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页
$ Z2 \: _; b* ]+ O$ ]2 Z2 GGetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型
) _) Y/ |& q& [7 H) DGetSysColor 判断指定windows显示对象的颜色 & I+ b4 a0 r1 R
GetSystemDefaultLangID 取得系统的默认语言ID # R1 x$ N! p* a/ {; C
GetSystemDefaultLCID 取得当前的默认系统"地方"
, B" x1 H+ }) l( ~5 K8 i' T5 m" wGetSystemInfo 取得与底层硬件平台有关的信息
. [+ J! u3 w. i/ ` K1 z1 y% kGetSystemMetrics 返回与windows环境有关的信息 1 B, c- o$ v- @: o, e( K5 o" _
GetSystemPowerStatus 获得与当前系统电源状态有关的信息
1 d! v/ f: \6 X5 pGetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式 2 J. M N/ U+ X% A
GetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步 ( p8 l0 a2 _2 \ M c, H! W
GetThreadLocale 取得当前线程的地方ID
! C+ S, P$ N: S% EGetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)
$ n; E# @5 c. [/ v% H" lGetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间 ; G$ R q# r$ D/ }. [
GetTimeZoneInformation 取得与系统时区设置有关的信息
. ~- T; Y9 M) `% o3 sGetUserDefaultLangID 为当前用户取得默认语言ID o& p7 J- T) j/ Y
GetUserDefaultLCID 取得当前用户的默认"地方"设置
8 c8 c3 p% K! W2 A) YGetUserName 取得当前用户的名字 8 g1 {4 L# [# v# R i0 U
GetVersion 判断当前运行的Windows和DOS版本 + B# _" Y6 j% P# d) l0 c' F" ?
GetVersionEx 取得与平台和操作系统有关的版本信息
* Y- P% U9 g# W# H% p T- j5 YHideCaret 在指定的窗口隐藏插入符(光标) . N9 c; r$ e1 M2 E/ ?& x" p3 w! @
IsValidCodePage 判断一个代码页是否有效
% u; E& ~: i. L( C& Z1 E0 ?IsValidLocale 判断地方标识符是否有效 * Y4 _; g" I; R f) D
keybd_event 这个函数模拟了键盘行动
. B5 A0 Q% X# p; ^ S# iLoadKeyboardLayout 载入一个键盘布局 - [* R3 ~# l- e2 A' [3 M7 o
MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 % g% E# {1 P+ l. G
MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换 & Z l7 k' a/ L
MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的
* e3 T* j! B% |+ t/ p1 Imouse_event 模拟一次鼠标事件
. J* {4 q+ O+ j' m; s( q$ BOemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态
# p) E4 ?* g! `: O- \5 `# POemToChar 将OEM字符集的一个字串转换到ANSI字符集
0 E. q5 ?+ c2 ~9 MSetCaretBlinkTime 指定插入符(光标)的闪烁频率
2 {1 u2 l; f. x" `+ |; SSetCaretPos 指定插入符的位置 ! [4 V+ F0 u+ M b
SetComputerName 设置新的计算机名 6 N5 R7 e- r0 ?; P) W
SetCursor 将指定的鼠标指针设为当前指针
2 a( r9 Z" e2 N" k9 J: A' kSetCursorPos 设置指针的位置 - S0 Z; P7 M: v+ s: o+ L5 G8 `1 @
SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间
& U6 }; y$ Z9 h+ Y; _, G* s1 uSetEnvironmentVariable 将一个环境变量设为指定的值
- A4 i1 x$ U. }SetKeyboardState 设置每个虚拟键当前在键盘上的状态 7 Q* c3 ]: [1 a) A" J* B
SetLocaleInfo 改变用户"地方"设置信息
! J4 M9 S) v- t( {6 `SetLocalTime 设置当前地方时间 / n% e& D' v, f0 b7 r& T+ f
SetSysColors 设置指定窗口显示对象的颜色 % T$ i Y: z6 }0 J7 [8 O
SetSystemCursor 改变任何一个标准系统指针
[' B: [: o' O$ x( ]. CSetSystemTime 设置当前系统时间
8 h+ x7 c- K; g# M) c: v2 ?$ PSetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步 & Z* w$ y" @! k1 S' Q% n2 N
SetThreadLocale 为当前线程设置地方
$ j( r5 b8 H2 C6 e4 U8 R c! KSetTimeZoneInformation 设置系统时区信息 ! k" l( A3 u, X
ShowCaret 在指定的窗口里显示插入符(光标)
$ h6 h- z& y0 V+ UShowCursor 控制鼠标指针的可视性
, Z/ e" i0 m) F7 D) qSwapMouseButton 决定是否互换鼠标左右键的功能
/ i0 ]4 F- u8 I: J. t5 ESystemParametersInfo 获取和设置数量众多的windows系统参数 2 l: q6 [5 {! x4 O4 x, x) D( o! o- z/ w
SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间
& y$ ?" y; @0 [6 x+ |2 c& g6 wToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符 2 q) I0 _3 I6 I% d$ e5 b
ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符 ! G& l* d- R8 y* O
UnloadKeyboardLayout 卸载指定的键盘布局
% U! z3 T6 k+ N" N, O7 t+ dVkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态
1 e8 [+ i7 N; `2 W% r4 ]1 C/ N11. API之进程和线程函数 9 t* O$ E6 b5 s
CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作
# f# U( \1 J- B2 m0 nCallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用
8 _2 {! q9 n0 j6 iConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接
+ k; S) a& M1 V$ L: r+ U$ t gCreateEvent 创建一个事件对象
: G k2 @$ \% ~CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)
5 [% p2 M" ^' ~/ D! hCreateMutex 创建一个互斥体(MUTEX)
* g- s& u# l$ S; R* H7 s) }CreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用
' B: ?9 t5 d/ m+ X7 j7 PCreatePipe 创建一个匿名管道 ' j* K/ n. l8 H
CreateProcess 创建一个新进程(比如执行一个程序)
# r7 ]$ T; q, j4 X6 aCreateSemaphore 创建一个新的信号机
; W& ]2 j# P: V5 N, m9 sCreateWaitableTimer 创建一个可等待的计时器对象
$ b5 @3 P" F1 N! r/ S' @DisconnectNamedPipe 断开一个客户与一个命名管道的连接
: ]/ i1 p4 |- k$ MDuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄
! S. C( q" J5 Z0 m) e/ I" [ExitProcess 中止一个进程 6 F, ]3 x g7 b
FindCloseChangeNotification 关闭一个改动通知对象 # s2 B' | `% y- ^ v/ [4 p
FindExecutable 查找与一个指定文件关联在一起的程序的文件名
0 i* K4 [2 s# P, h1 Z- E; i, ?FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化
4 e5 A/ q) b$ `' q- g9 ?FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化 5 h, J S( r/ s R8 z' b2 Z
FreeLibrary 释放指定的动态链接库
, `1 `6 E- {. o3 `. j4 qGetCurrentProcess 获取当前进程的一个伪句柄 9 ]) f! v- t$ |5 q7 @! T
GetCurrentProcessId 获取当前进程一个唯一的标识符
$ I' e: Z3 \- `5 \5 {- Y, cGetCurrentThread 获取当前线程的一个伪句柄 , b# ~& n2 o% m4 J3 c. t- T
GetCurrentThreadId 获取当前线程一个唯一的线程标识符 7 }, R: [; U7 ^
GetExitCodeProces 获取一个已中断进程的退出代码
4 Z. T' o2 H0 a X1 ]GetExitCodeThread 获取一个已中止线程的退出代码
, _4 Q5 O! P. E: o* ?GetHandleInformation 获取与一个系统对象句柄有关的信息
! l- |1 L7 X7 \* \4 jGetMailslotInfo 获取与一个邮路有关的信息
: D( Z+ }8 D) rGetModuleFileName 获取一个已装载模板的完整路径名称 % [0 N4 F" j3 H4 T
GetModuleHandle 获取一个应用程序或动态链接库的模块句柄
, ^# A; e& m) ?9 C8 ^6 A/ s GetModuleHandleA(LPCSTR lpModuleName);8 \' S) {' B& q, R6 Z# C+ u( i
GetPriorityClass 获取特定进程的优先级别 / F* M \5 i7 V& `- A
GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况
% k7 {% ^* \2 y( _) F# tGetProcessTimes 获取与一个进程的经过时间有关的信息 * G: T; C: _$ ?" o8 |% O
GetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存
" ~( _) j" c& _7 eGetSartupInfo 获取一个进程的启动信息 1 J* C! d# m5 Y+ X* [* |0 _6 F
GetThreadPriority 获取特定线程的优先级别
% k. i& W/ p Q. o$ _1 r. D3 qGetTheardTimes 获取与一个线程的经过时间有关的信息
/ ~; C! u; S0 K5 z9 ?' |8 G0 dGetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符
& ~2 O. x5 P5 K- m1 U% {LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
4 ]% K9 p: C% y2 T. V- ^LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间
: K: V6 l9 M! c5 rLoadModule 载入一个Windows应用程序,并在指定的环境中运行 - o, s! g! o; f6 z# `6 X# z4 R9 M" @, Q
MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回 6 k5 }6 P% J* b; n6 J& b. C
SetPriorityClass 设置一个进程的优先级别 1 f# ~) F* D& ?, b8 T0 Q% P$ a+ B. Y
SetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序 # x! X0 s- G/ H* x' d
SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量 1 G- T/ U4 ?; |
SetThreadPriority 设定线程的优先级别 5 v' b H7 V) i
ShellExecute 查找与指定文件关联在一起的程序的文件名 & _ k. `" G; t; ?
TerminateProcess 结束一个进程
; \' @) P- X6 ]1 w/ t3 ^; t/ }, zWinExec 运行指定的程序
$ D: p6 |9 g( w. l: x1 K0 `+ o12. API之控件与消息函数
5 K! Z( O* f1 E0 ~8 D0 Y1 jAdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 2 |: S! n& l8 [0 x( ^. X
AnyPopup 判断屏幕上是否存在任何弹出式窗口
+ r8 T; K, Z$ V Z8 EArrangeIconicWindows 排列一个父窗口的最小化子窗口
) P+ x& F) P& `3 d. gAttachThreadInput 连接线程输入函数 3 s: a/ P% Q* o. w3 t# L, |/ O+ c) x( u
BeginDeferWindowPos 启动构建一系列新窗口位置的过程
0 P4 Z3 `# |+ ~/ _BringWindowToTop 将指定的窗口带至窗口列表顶部
2 B3 O0 ?7 w, z# \CascadeWindows 以层叠方式排列窗口
) \$ a. E8 L! y ^( fChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄 , ~/ s! Y" N/ f
ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标
1 A1 C1 l/ H: ?& i" R$ cCloseWindow 最小化指定的窗口 ; A3 D& t2 `; R# ?6 S
CopyRect 矩形内容复制 * Q0 P/ l* p- C: l2 [2 ~
DeferWindowPos 该函数为特定的窗口指定一个新窗口位置 - H2 X$ `) z& F8 P2 P, A+ w" h! d, ?0 m
DestroyWindow 清除指定的窗口以及它的所有子窗口
6 `- e9 \ v* u) gDrawAnimatedRects 描绘一系列动态矩形
7 |! X; K8 u, oEnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入 # q6 Y8 T9 r/ z0 A% T
EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态 }. _! k6 f1 O, `* Y8 a
EnumChildWindows 为指定的父窗口枚举子窗口
% e7 F! A6 J7 xEnumThreadWindows 枚举与指定任务相关的窗口 + `& I: j7 d- b; G. T" R
EnumWindows 枚举窗口列表中的所有父窗口 , r5 _1 D. ?3 k: i! w, \) G6 u+ ]
EqualRect 判断两个矩形结构是否相同
/ w& x9 I1 x( u( H# f, O, IFindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口
& y$ |0 }) I5 N6 pFindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
" E8 q l a4 y5 ^9 Q% P9 K$ \FlashWindow 闪烁显示指定窗口 . M8 j7 g" u5 m- `5 R( }
GetActiveWindow 获得活动窗口的句柄 ) P5 y% |3 K/ L9 R
GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收) , S$ F+ V2 j- F, u2 i
GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息 O; q7 @* @1 U' c& n* Q( }$ N
GetClassLong 取得窗口类的一个Long变量条目 4 a1 B/ D6 I: d
GetClassName 为指定的窗口取得类名
% P/ s4 P9 W3 X$ u c4 `) bGetClassWord 为窗口类取得一个整数变量 ' u) d; d, o0 k: l
GetClientRect 返回指定窗口客户区矩形的大小
5 i/ a. ~/ U4 s9 JGetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
1 I9 s' H7 p4 \7 P+ S" UGetFocus 获得拥有输入焦点的窗口的句柄
' q+ ^- r0 t ?( S- ~# b# RGetForegroundWindow 获得前台窗口的句柄 # h) y# m) H' C7 v0 N) A) {! M5 b
GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄 % S+ U8 ]& E* ^) d
GetParent 判断指定窗口的父窗口
2 I" ]+ i) q. I1 r M3 D3 aGetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄 % A4 o6 x2 ^/ t$ a' X8 P) K% A; q
GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分 7 _5 M/ I) N: P1 L9 ~8 ]
GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系
$ m! v* z, ^* ]9 _GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID
2 L2 n6 l* l1 P; i% D. oGetWindowLong 从指定窗口的结构中取得信息
1 {* `. f. I" ~& E1 Y6 T8 R9 PGetWindowPlacement 获得指定窗口的状态及位置信息
* e! B6 q# Q L; s" s9 L7 TGetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内 2 Z3 ^, K3 ^" ]9 m p
GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容
3 \0 U7 B$ N) j: K }- [GetWindowTextLength 调查窗口标题文字或控件内容的长短 6 V: o1 U7 k$ z# H: t) N0 `
GetWindowWord 获得指定窗口结构的信息
9 {7 {1 i) s; K9 y9 s# {3 U0 QInflateRect 增大或减小一个矩形的大小
% o9 _' g F5 `$ w# |IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 * c0 K1 c( I. i9 r+ Q
InvalidateRect 屏蔽一个窗口客户区的全部或部分区域
. z7 u- A3 B6 a9 I. ?IsChild 判断一个窗口是否为另一窗口的子或隶属窗口
0 q+ ]& _, j4 D! L; G# Q1 IIsIconic 判断窗口是否已最小化 ! Q9 q2 I% l9 ?7 ^7 `
IsRectEmpty 判断一个矩形是否为空 - T5 x; x- [! {8 I- q7 _, ]
IsWindow 判断一个窗口句柄是否有效 - d7 C$ W3 i$ V; Z1 x; H
IsWindowEnabled 判断窗口是否处于活动状态 0 [- n. V; O0 W/ \/ B' M
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字 5 c6 w% \ ~& |0 w( A# ]
IsWindowVisible 判断窗口是否可见
8 M5 b2 F. @; n: R/ w6 w5 ?: GIsZoomed 判断窗口是否最大化
9 f( y- i; `/ W2 I7 c* h+ PLockWindowUpdate 锁定指定窗口,禁止它更新 4 l3 k" w) n. W# P9 B H: \
MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统
! ]7 W: u2 e) c4 CMoveWindow 改变指定窗口的位置和大小 9 \( W7 U' Z$ K7 Q
OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来 . | X+ m* A7 {7 S
OpenIcon 恢复一个最小化的程序,并将其激活
* T7 d/ {" _/ j$ U" J! ]9 ?PtInRect 判断指定的点是否位于矩形内部 1 j3 i; C1 D! W7 e$ ?7 N: l0 ^
RedrawWindow 重画全部或部分窗口
3 ]" ^7 }% f4 l/ M$ ]4 H, T6 _" k- A6 rReleaseCapture 为当前的应用程序释放鼠标捕获 % `8 P4 e2 |! f
ScreenToClient 判断屏幕上一个指定点的客户区坐标 3 X% B/ s+ D0 \4 `, R6 X
ScrollWindow 滚动窗口客户区的全部或一部分
& f$ g6 U# k0 ~/ aScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分 - ^3 `. y- q8 A$ i0 P
SetActiveWindow 激活指定的窗口
: \; y7 U3 ~* M2 a* U% \SetCapture 将鼠标捕获设置到指定的窗口 ! {$ b2 F. f% o4 x+ V
SetClassLong 为窗口类设置一个Long变量条目 0 z s7 ]5 E* Z( D# L2 b
SetClassWord 为窗口类设置一个条目
) x- a, H1 `4 ISetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口
; r1 R# n+ h4 f ~7 h+ R) cSetForegroundWindow 将窗口设为系统的前台窗口
1 N$ @$ M( N1 @SetParent 指定一个窗口的新父
! `2 K, n1 n1 |/ }SetRect 设置指定矩形的内容 % w0 m1 y* K V; Q
SetRectEmpty 将矩形设为一个空矩形
- i; w( Q8 J/ S" \5 n# vSetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID * ~. Q& {# s4 E- n$ o
SetWindowLong 在窗口结构中为指定的窗口设置信息 # |4 R& l) g9 U3 ~, W: g# ^
SetWindowPlacement 设置窗口状态和位置信息 - {9 Y8 y% v) m
SetWindowPos 为窗口指定一个新位置和状态 6 ~# O, P p3 w5 V5 @* r) D
SetWindowText 设置窗口的标题文字或控件的内容
$ v/ a& ^" W% u0 nSetWindowWord 在窗口结构中为指定的窗口设置信息 . N( b1 s* l) I1 ?/ l( B0 N: W
ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口 6 Q+ b$ I4 p/ O
ShowWindow 控制窗口的可见性
1 v! z8 f, ^: j/ }1 U' _ShowWindowAsync 与ShowWindow相似 ' X- V5 B0 v" n
SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果 4 t! w" x. k) {6 v) D
TileWindows 以平铺顺序排列窗口 1 ^4 [! r# K4 [# X* F, J
UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果 : c: |. c, S) u# ` F$ l, Z1 X' c
UpdateWindow 强制立即更新窗口
7 c% l, F9 b/ h# D% o4 u- MValidateRect 校验窗口的全部或部分客户区 : F- A8 L' V4 ^( R1 Z% y
WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口
# f. f* a7 ^' u, y1 L8 ~高级音频函数—参看《VC++ 编程指南.chm》11.6
- y+ g3 h! _! T8 {1 N" T Windows提供了三个特殊的播放声音的高级音频函数:MessageBeep、PlaySound和sndPlaySound。这三个函数可以满足播放波形声音的一般需要,但它们播放的WAVE文件(波形声音文件)的大小不能超过100KB,如果要播放较大的WAVE文件,则应该使用MCI服务。
# Y+ L" g- X; {$ S5 V BOOL MessageBeep(UINT uType);; }; |' S( Q- P% j- G* S
该函数主要用来播放系统报警声音。系统报警声音是由用户在控制面板中的声音(Sounds)程序中定义的,或者在WIN.INI的[sounds]段中指定。
: E7 |5 {6 ^& {' @& u/ G参数uType说明了告警级,如下表所示。若成功则函数返回TRUE。
8 i2 y0 i8 G+ U+ P' G级别
0 b6 A% U4 K Y0 M4 J4 ^ | 描述
# D# B# |, G* u8 v; z | -1 " w: a) v6 S* }7 k: Q
| 从机器的扬声器中发出蜂鸣声。 ! j1 q! k' z# L6 t! S' Z2 d
| MB_ICONASTERISK 7 ?, N8 b: g' |
| 播放由SystemAsterisk定义的声音。
0 s8 a* Q6 i" B/ t | MB_ICONEXCLAMATION
! h$ ^6 t5 f8 J$ _" F! S | 播放由SystemExclamation定义的声音。
/ Z, g, x/ B4 x' a j | MB_ICONHAND & J: S* l/ E' |
| 播放由SystemHand定义的声音。
# Q, q" W0 f/ d3 v, Z# J+ o9 C | MB_ICONQUESTION 2 Y0 k8 O: _6 ~1 X( ]; h; d
| 播放由SystemQuestion定义的声音。 5 F/ A. m7 t: `
| MB_OK
W4 I. p( t5 ?- m6 `) q+ K | 播放由SystemDefault定义的声音 6 D$ V8 [1 U( v& P/ N
| BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);! d2 F# R" e) U
参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。
0 h7 F( e- X3 m f( w+ m8 I参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。
1 D) G0 S) R+ V参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。
! M0 N0 z7 g2 F6 B/ {标志 5 _" W9 x8 j" ~4 L i- ^( d
| 含义
; R4 d/ G/ t& Y8 [3 p8 ` | SND_APPLICATION
) t1 m% L( O$ N' a | 用应用程序指定的关联来播放声音。 $ H3 j$ W: U4 X3 ]
| SND_ALIAS
7 A$ s" n; H3 R; k% p* T4 f | pszSound参数指定了注册表或WIN.INI中的系统事件的别名。 x: u$ U) b0 y: q# I, g
| SND_ALIAS_ID
/ j% E: t* s# t' o& X1 E8 J | pszSound参数指定了预定义的声音标识符。
/ z0 z+ Q, u% G' Q6 n! { | SND_ASYNC , P8 m; B I: a/ N+ [/ _
| 用异步方式播放声音,PlaySound函数在开始播放后立即返回。 1 Y, t$ E" L" @2 ^3 C+ s2 c1 @$ @: ?! {
| SND_FILENAME # Y( m& A& N- ?7 ^- m) p
| pszSound参数指定了WAVE文件名。 2 s" ?6 Q3 f. M. v
| SND_LOOP
/ c: w" F1 l3 a1 R | 重复播放声音,必须与SND_ASYNC标志一块使用。
; p; A4 v0 N* Y | SND_MEMORY
4 F: @8 }3 ]* s c+ l$ K | 播放载入到内存中的声音,此时pszSound是指向声音数据的指针。
/ I7 S% ]8 H' C* J3 o' C | SND_NODEFAULT * D' L M9 I% G" p( E3 N% g- s
| 不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。 " e& G: x$ l* i1 ?
| SND_NOSTOP - P# x# I7 O7 R
| PlaySound不打断原来的声音播出并立即返回FALSE。 3 x$ a# h+ P2 l7 p! @4 V g* G s4 |5 E
| SND_NOWAIT 9 c: N9 r$ z. g( C& X, `0 A; D
| 如果驱动程序正忙则函数就不播放声音并立即返回。
% V! Z- w' F& \: `3 J | SND_PURGE 4 U, I9 [" w& i0 P: W' [/ e- @
| 停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。 & i0 n! _8 m! D) S
| SND_RESOURCE . L) l2 o* o% u" e" I
| pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
0 g4 M2 R2 R" ?& U1 ^; u( ?0 J3 I& z | SND_SYNC
6 U) t* L6 M1 u( ~- r, v0 \ | 同步播放声音,在播放完后PlaySound函数才返回。 ; K& ]. ?8 D4 p0 y" V0 `
| BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound);
1 P7 E; }% R& c9 r$ h) {函数sndPlaySound的功能与PlaySound类似,但少了一个参数。除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。
9 B8 P3 `4 w0 a2 G* Y6 V3 T: WMCI播放
& ?. G; g* `* P; D/ H所有的MCI命令字符串都是通过多媒体API函数mciSendString传递给MCI的,该函数的声明为:
/ K- t* h0 r4 }" q2 ^2 @. SMCIERROR mciSendString(6 M) q/ o$ a3 P( ]
LPCTSTR lpszCommand, //MCI命令字符串
/ M1 y& x2 X( d8 u6 i8 W8 a8 e: {7 W* MLPTSTR lpszReturnString, //存放反馈信息的缓冲区# \+ f9 k" ] u e) O/ `
UINT cchReturn, //缓冲区的长度
1 t, D9 f5 W# i3 `HANDLE hwndCallback //回调窗口的句柄,一般为NULL5 A2 z! Y1 o9 n D( B. I
); //若成功则返回0,否则返回错误码。
! C7 t5 p7 q+ f6 ^& I$ s该函数返回的错误码可以用mciGetErrorString函数进行分析,该函数的声明为:: t/ L8 ~' C6 \! l5 ~
BOOL mciGetErrorString(
Q! C4 Q7 Z% `1 H( zDWORD fdwError, //函数mciSendString或mciSendCommand返回的错误码7 i7 H7 H7 B# @ j6 {( J
LPTSTR lpszErrorText, //接收描述错误的字符串的缓冲区$ e0 a3 G3 B: O) M, w$ F% k. q2 Z j" s
UINT cchErrorText //缓冲区的长度
% }6 o' h, I5 Z9 F# J1 u5 G3 L* z);
/ k/ Y: j( d0 U1 p( B7 M: x+ Y |
|