微信扫一扫,移动浏览光盘
简介
《Windows API 函数参考手册》是关于Microsoft Win32 API函数的完整参考手册。书中详细介绍了每一个Win32 API函数的使用方法,其中着重介绍其原型表示、函数说明、参数说明、注意事项、相应头文件(.H)、链接库(.LIB或.DLL)和典型示例。对于每个函数《Windows API 函数参考手册》给出了相应的示例部分,这样读者在阅读相应的Win32 API函数时就能很快地了解它的具体功能和使用方法,便于更快地掌握该接口函数。
《Windows API 函数参考手册》是从事Microsoft Windows操作系统开发和应用人员的必备参考书,也可作为大专院校相关专业师生自学、教学参考用书。
目录
第 1 章 概述 16页
1.1 Win32 程序概述 16页
1.2 图形界面编程. 16页
1.3 消息传递机制. 22页
1.4 Win32 API 概述. 22页
1.5 为什么用 API . 23页
1.6 如何在程序中调用 API 函数. 23页
1.7 本书示例约定. 23页
第 2 章 窗口处理 25页
2.1 窗口简介. 25页
2.2 窗口的创建和撤销 25页
2.2.1 创建普通窗口(CreateWindow、CreateWindowEx) 25页
2.2.2 关闭窗口(CloseWindow) . 34页
2.2.3 销毁窗口(DestroyWindow). 35页
2.3 窗口之间的关系. 36页
2.3.1 父子关系(SetParent、GetParent、IsChild) 36页
2.3.2 遍 历 窗 口 ( EnumWindow 、 EnumWindowProc 、 EnumChildWindows 、EnumChildProc) 39页
2.3.3 获取指定的子窗口(ChildWindowFromPoint、ChildWindowFromPointEx) 42页
2.3.4 获 得 特 定 的 窗 口 ( GetWindow 、 GetTopWindow 、 GetNextWindow 、GetDesktopWindow) 44页
2.4 窗口的大小、位置和布局 48页
2.4.1 获取窗口大小(GetWindowRect、GetClientRect) 48页
2.4.2 调整窗口大小(AdjustWindowRect、AdjustWindowRectEx) 50页
2.4.3 设置和获取窗口位置(SetWindowPos). 52页
2.4.4 移动窗口位置(MoveWindow) 54页
2.4.5 设 置 一 组 窗 口 位 置 ( BeginDeferWindowPos 、 DeferWindowPos 、EndDeferWindowPos) 55页
2.4.6 设置和获取窗口布局(SetWindowPlacement、GetWindowPlacement). 58页
2.4.7 设置和获得视口坐标起点(SetViewportOrgEx、GetViewportOrgEx) 59页
2.4.8 设置和获取视口坐标范围(SetViewportExtEx、GetViewportExtEx). 61页
2.4.9 设置和获取窗口坐标起点(SetWindowOrgEx、GetWindowOrgEx) 63页
2.4.10 设置和获取窗口坐标范围(SetWindowExtEx、GetWindowExtEx) 64页
2.4.11 坐标起点的偏移操作(OffsetViewportOrgEx、OffsetWindowOrgEx). 66页
2.5 显示窗口. 68页
2.5.1 显示单个窗口(ShowWindow、ShowWindowAsync、OpenIcon) 68页
2.5.2 弹出式窗口(ShowOwnedPopups、GetLastActivePopup) . 71页
2.5.3 显示子窗口(CascadeWindows、TileWindows、ArrangeIconicWindows) 73页
2.5.4 判断各种显示状态(IsIconic、IsWindowVisible、IsZoomed) 77页
2.6 窗口属性. 78页
2.6.1 设置和获取窗口名(SetWindowText、GetWindowText、GetWindowTextLength) 78页
2.6.2 设置和获取窗口标记长字(SetWindowLong、GetWindowLong) 81页
2.6.3 设置和获取前台窗口(SetForegroundWindow、GetForegroundWindow) 83页
2.7 对话框 84页
2.7.1 创建对话框(DialogBox、CreateDialog、CreateDialogIndirect、Message Box、MessageBoxEx、MessageBoxIndirect) 84页
2.7.2 获取控件及其 ID(GetDlgItem、GetDlgCtrlID) 93页
2.7.3 设置获取控件的显示文本(SetDlgItemText、SetDlgItemInt、GetDlgItemText、GetDlgItemInt) 95页
2.7.4 获取下一个 TAB 控件(GetNextDlgTabItem) 98页
2.7.5 对话框过程(DefDlgProc、DialogProc) 99页
2.7.6 对话框坐标和屏幕坐标间的转换(MapDialogRect). 100页
2.7.7 撤销对话框(EndDialog) 101页
2.8 其他 102页
2.8.1 查找窗口(FindWindow、FindWindowEx). 102页
2.8.2 设置窗口 Z 坐标(BringWindowToTop) 103页
2.8.3 确定窗口属性(IsWindow、IsWindowUnicode) 104页
2.8.4 设置和获取激活态窗口(SetActiveWindow、GetActiveWindow) 106页
2.8.5 窗口闪烁(FlashWindow) 107页
2.8.6 获取指定点处的窗口(WindowFromPoint) 108页
2.8.7 遍历线程所有窗口(EnumThreadWindows、EnumThreadWndProc) . 109页
第 3 章 设备上下文aaDC 112页
3.1 DC 简介 112页
3.2 DC 的获取和撤销 . 112页
3.2.1 创建 DC(CreateDC、CreateCompatibleDC). 112页
3.2.2 撤销 DC(ReleaseDC、DeleteDC) 114页
3.2.3 获得窗口 DC(GetWindowDC、GetDC、GetDCEx). 115页
3.2.4 保存和恢复 DC(SaveDC、RestoreDC) 118页
3.3 设置和获取 DC 的各种属性 120页
3.3.1 获得 DC 起始点坐标(GetDCOrgEx) 120页
3.3.2 设置显示配置(ChangeDisplaySettings、ChangeDisplaySettingsEx) 121页
3.3.3 遍历显示设备和其配置(EnumDisplayDevices、EnumDisplaySettings) 123页
3.3.4 设置和获取 DC 画刷颜色(SetDCBrushColor、GetDCBrushColor). 124页
3.3.5 设置和获取 DC 画笔颜色(SetDCPenColor、GetDCPenColor) 125页
3.3.6 设置和获取 DC 中各种对象(SelectObject、GetCurrentObject) 126页
3.3.7 获取 DC 中对象的信息(GetObject、GetObjectType、GetStockObject). 129页
3.4 区域操作 132页
3.4.1 新建椭圆区域(CreateEllipticRgn、CreateEllipticRgnIndirect) . 132页
3.4.2 新建多边形区域(CreatePolygonRgn、CreatePolyPolygonRgn) 133页
3.4.3 新建矩形区域(CreateRectRgn、CreateRectRgnIndirect) 136页
3.4.4 新建圆矩形区域(CreateRoundRectRgn) 137页
3.4.5 区域之间的操作(EqualRgn、ExcludeUpdateRgn). 138页
3.4.6 区域上绘图操作(FillRgn、FrameRgn、InvertRgn、PaintRgn) . 140页
3.5 裁剪操作 143页
3.5.1 设 置 和 获 取 裁 剪 区 域 ( SelectClipRgn 、 SelectClipPath 、 GetClipRgn 、ExtSelectClipRgn). 143页
3.5.2 裁剪区域间的运算(ExcludeClipRect、IntersectClipRect、OffsetClipRgn) 147页
3.6 坐标变换 150页
3.6.1 客户区坐标与屏幕坐标的变换(ClientToScreen、ScreenToClient) 150页
3.6.2 设备坐标与逻辑坐标的变换(DPtoLP、LPtoDP) 152页
3.6.3 窗口间的坐标变换(MapWindowPoints) 154页
3.7 颜色和调色板 155页
3.7.1 创建新调色板(CreatePalette) 155页
3.7.2 启用调色板(SelectPalette、RealizePalette). 156页
3.7.3 设置和获取调色板颜色条目(SetPaletteEntries、GetPaletteEntries) 158页
3.7.4 设置系统调色板的工作方式(SetSystemPaletteUse) . 160页
3.7.5 设置和获取颜色调整(SetColorAdjutstment、GetColorAdjustment) 161页
3.7.6 获取匹配颜色(GetNearestColor、GetNearestPaletteIndex) 162页
3.8 其他 164页
3.8.1 滚动窗口(ScrollDC). 164页
3.8.2 偏移操作(OffsetRect、OffsetRgn) 165页
3.8.3 点、矩形和区域的关系(PtInRegion、PtVisible、RectInRegion、RectVisible) 167页
3.8.4 缩放视口和窗口大小(ScaleViewportExtEx、ScaleWindowExtEx) 170页
3.8.5 由给定 DC 获取相联系的窗口(WindowFromDC). 172页
3.8.6 获取特定设备的信息(GetDeviceCaps). 173页
3.8.7 撤销 DC 中的对象(DeleteObject) 175页
第 4 章 绘图函数 177页
4.1 基本画图函数 177页
4.1.1 点(SetPixel、SetPixelV、GetPixel). 177页
4.1.2 线(LineTo、LineDDA、LineDDAProc、MoveToEx、Polyline、PolylineTo) 179页
4.1.3 曲线(PolyBezier、PolyBezierTo、PolyDraw) 185页
4.1.4 弧(AngleArc、Arc、ArcTo、SetArcDirection、GetArcDirection) 188页
4.1.5 椭圆(Ellipse). 192页
4.1.6 弦(Chord) 193页
4.1.7 矩形(Rectangle、Roundrect、DrawEdge、DrawFocusRect、FillRect). 195页
4.1.8 多边形(Polygon、PolyPolygon、PolyPolyline) 200页
4.1.9 饼图(Pie). 203页
4.2 路径相关函数 204页
4.2.1 启动和终止路径绘图(BeginPath、EndPath). 204页
4.2.2 曲线到直线(FlattenPath) 206页
4.2.3 填充路径(FillPath、StrokeAndFillPath) 207页
4.2.4 边界处理(StrokePath、WidenPath). 209页
4.2.5 封闭路径(CloseFigure) 210页
4.2.6 获取路径区域(PathToRegion) 211页
4.2.7 获取路径(GetPath) 212页
4.2.8 撤销路径(AbortPath) 213页
4.3 处理 DC 对象 214页
4.3.1 新建画笔(CreatePen、CreatePenIndirect、ExtCreatePen). 214页
4.3.2 新建画刷(CreateBrushIndirect、CreateHatchBrush、CreateDIBPatternBrushPt、CreatePatternBrush、CreateSolidBrush、GetSysColorBrush) . 217页
4.3.3 设置和获取背景颜色和模式( GetBkColor、GetBkMode、SetBkColor、SetBkMode) 224页
4.4 图元文件 226页
4.4.1 创建图元文件(CreateEnhMetaFile、CreateMetaFile) 226页
4.4.2 复制图元文件(CopyEnhMetaFile、CopyMetaFile) 228页
4.4.3 打开图元文件(GetEnhMetaFile) 230页
4.4.4 关闭图元文件(CloseEnhMetaFile、CloseMetaFile) 230页
4.4.5 撤销图元文件(DeleteEnhMetaFile、DeleteMetaFile) 231页
4.4.6 绘制图元文件(PlayEnhMetaFile) . 232页
4.5 其他 233页
4.5.1 启动和终止绘图(BeginPaint、EndPaint). 233页
4.5.2 获取需更新区域(GetUpdateRect、GetUpdateRgn) 235页
4.5.3 绘图操作生效(InvalidateRect、InvalidateRgn、ValidateRect、ValidateRgn) 237页
4.5.4 设置和获取最大绘图缓冲(GdiSetBatchLimit、GdiGetBatchLimit) 241页
4.5.5 刷新缓冲(GdiFlush) . 242页
4.5.6 设置和获取窗口可绘图区域(SetWindowRgn、GetWindowRgn). 243页
4.5.7 禁止在窗口绘图(LockWindowUpdate). 245页
4.5.8 绘制桌面(PaintDesktop) 246页
4.5.9 更新窗口(RedrawWindow) 246页
4.5.10 撤销绘图操作(CancelDC) . 247页
4.5.11 描绘标准控件(DrawFrameControl) 248页
4.5.12 设定画图效果(DrawState、DrawStateProc) 250页
4.5.13 设置和获取系统颜色(SetSysColors、GetSysColor) 253页
第 5 章 位图和图标 256页
5.1 位图和图标简介 256页
5.2 创建和撤销位图、图标 256页
5.2.1 创建位图(CreateBitmap、CreateBitampIndirect、CreateCompatible、Bitmap、CreateDIBitmap、CreateDIBSection、LoadBitmap、LoadImage) 256页
5.2.2 创建图标(CreateIcon、LoadIcon、LoadCursorFromFile) . 266页
5.2.3 撤销图标(DestoryIcon) 270页
5.3 设置和获得位图和图标的各种属性 271页
5.3.1 设置和获取位图的位数据(SetBitmapBits、GetBitmapBits) 271页
5.3.2 设置和获取 DIB(SetDIBits、GetDIBits). 273页
5.3.3 设置和获取 DIB 颜色表(SetDIBColorTable、GetDIBColorTable) 276页
5.3.4 设置和获取位图的大小(GetBitmapDimensionEx、SetBitmapDimension Ex) 278页
5.3.5 获取图标信息(GetIconInfo). 280页
5.4 位块操作 281页
5.4.1 各种位块操作方式(BitBlt、PatBlt、PlgBlt、StretchBlt、MaskBlt、TransparentBlt) 281页
5.4.2 设 置 和 获 取 位 操 作 模 式 ( SetROP2 、 GetROP2 、 SetStretchBltMode 、GetStretchBltMode) 288页
5.5 其他 291页
5.5.1 复制位图和图标(CopyImage、CopyIcon) 291页
5.5.2 从文件中搜寻图标(ExtractIcon、ExtractIconEx、ExtractAssociatedIcon) 293页
5.5.3 显示图标(DrawIcon、DrawIconEx) 296页
第 6 章 菜单处理 299页
6.1 菜单的简单操作 299页
6.1.1 生成新菜单(CreateMenu、CreatePopupMenu) 299页
6.1.2 装载菜单(LoadMenu、LoadMenuIndirect). 301页
6.1.3 撤销菜单(DestoryMenu、DeleteMenu、RemoveMenu). 303页
6.1.4 获取菜单(GetMenu、GetSubMenu、GetSystemMenu) 305页
6.1.5 增添菜单(AppendMenu) 308页
6.2 菜单项处理. 310页
6.2.1 设置和获取菜单项信息(SetMenuItemInfo、GetMenuItemInfo) 310页
6.2.2 设置和获取缺省菜单项(SetMenuDefautlItem、GetMenuDefaultItem) . 312页
6.2.3 获取菜单项的 ID(GetMenuItemID) 314页
6.2.4 获取菜单项数(GetMenuItemCount) 315页
6.2.5 获取菜单项的范围大小(GetMenuItemRect) . 316页
6.2.6 高亮显示菜单项(HiliteMenuItem) 317页
6.2.7 菜单项属性(CheckMenuItem、EnableMenuItem、CheckMenuRadioItem) 318页
6.2.8 添加菜单项(InsertMenuItem) . 321页
6.2.9 获取某点处的菜单项(MenuItemFromPoint) . 322页
6.3 其他 323页
6.3.1 设置窗口的菜单(SetMenu) 323页
6.3.2 判定句柄是否指向菜单(IsMenu). 323页
6.3.3 上下文菜单(TrackPopupMenu、TrackPopupMenuEx) 324页
6.3.4 显示菜单条(DrawMenuBar) 327页
6.3.5 图形菜单项(SetMenuItemBitmaps). 328页
第 7 章 文件处理 330页
7.1 创建、读写和撤销文件 330页
7.1.1 创建文件(CreateFile、lcreat、GetTempFileName) 330页
7.1.2 设置文件读写位置(SetFilePointer、_llseek、_lseek) 334页
7.1.3 写入文件(WriteFile、lwrite、hwirte) 337页
7.1.4 异步写入文件(WriteFileEx、FileIOCompletionRoutine) 339页
7.1.5 读入文件(ReadFile、_lread、_hread) 341页
7.1.6 异步读入文件(ReadFileEx 344页
7.1.7 复制文件(CopyFile、CopyFileEx、CopyProgressRoutine) 345页
7.1.8 更改文件名(MoveFile、MoveFileEx) 348页
7.1.9 关闭文件(CloseHandle、_lclose) . 350页
7.1.10 删除文件(DeleteFile) 351页
7.2 设置和获得文件的各种信息 352页
7.2.1 获取文件大小(GetFileSize) . 352页
7.2.2 获取文件类型(GetFileType) 353页
7.2.3 设置和获取文件时间信息(SetFileTime、GetFileTime) . 354页
7.2.4 获 取 文 件 版 本 信 息 ( GetFileVersionInfo 、 GetFileVersionInfoSize 、VerQueryValue) 356页
7.2.5 是否可执行文件(GetBinaryType) 359页
7.2.6 长文件名和短文件名的转换(GetFullPathName、GetShortPathName) . 360页
7.2.7 由文件句柄获取文件信息(GetFileInformationByHandle). 362页
7.2.8 设置文件结束标志(SetEndOfFile) 363页
7.2.9 设置和获取文件属性(SetFileAttributes、GetFileAttributes) 364页
7.3 目录处理 366页
7.3.1 创建新目录(CreateDirectory、CreateDirectoryEx) 366页
7.3.2 删除目录(RemoveDirectory) 367页
7.3.3 获取系统路径(GetSystemDirectory) 368页
7.3.4 获取临时路径(GetTempPath). 369页
7.3.5 获取 Windows 完整目录(GetWindowsDirectory) 370页
7.3.6 设置和获取当前目录(SetCurrentDirectory、GetCurrentDirectory) . 371页
7.4 文件查找 373页
7.4.1 查找第一个文件(FindFirstFile) . 373页
7.4.2 查找下一个文件(FindNextFile). 374页
7.4.3 查找指定文件(SearchPath) 374页
7.4.4 查找结束(FindClose) 376页
7.5 磁盘信息 376页
7.5.1 获取可用逻辑驱动器(GetLogicalDrives). 376页
7.5.2 获取可用逻辑驱动器信息(GetLogicalDriveStrings). 377页
7.5.3 设置和获取卷标信息(SetVolumeLabel、GetVolumeInformation). 378页
7.5.4 获取磁盘空闲空间(GetDiskFreeSpace、GetDiskFreeSpaceEx). 381页
7.5.5 获取磁盘类型(GetDriveType) 384页
7.6 压缩文件 385页
7.6.1 初始化内部缓冲区(LZInit) 385页
7.6.2 打开压缩文件(LZOpenFile) 386页
7.6.3 读入压缩文件(LZRead). 387页
7.6.4 压缩文件指针定位(LZSeek) 388页
7.6.5 获取压缩文件大小(GetCompressedFileSize). 389页
7.6.6 获取压缩文件全名(GetExpandedName) 390页
7.6.7 复制和解压缩文件(LZCopy) . 391页
7.6.8 关闭压缩文件(LZClose. 392页
7.7 其他 393页
7.7.1 设置和获取字符集(SetFileApisToANSI、SetFileApisToOEM、AreFileApisANSI). 393页
7.7.2 联系文件和 I/O 端口(CreateIoCompletionPort、PostQueuedCompletion Status、GetQueuedCompletionStatus) . 395页
7.7.3 更新文件缓冲区(FlushFileBuffers) . 399页
7.7.4 加锁和解锁文件(LockFile、LockFileEx、UnlockFile、UnlockFileEx) 399页
7.7.5 撤销文件 IO(CancelIO) . 403页
7.7.6 比较文件时间信息(CompareFileTime). 404页
7.7.7 设备 IO 操作(DeviceIoControl). 405页
7.7.8 DOS 时间转换为 Win32 时间(DosDateTimeToFileTime) 407页
7.7.9 Win32 时间转换为 Dos 时间(FileTimeToDosDateTime) 408页
7.7.10 Win32 时间转换本地时间(FileTimeToLocalFileTime) . 409页
第 8 章 同步 411页
8.1 同步对象 411页
8.1.1 生 成 同 步 对 象 ( CreateEvent 、 CreateMutex 、 CreateSemaphore 、 Create WaitableTimer) 411页
8.1.2 打开同步对象(OpenEvent、OpenMutex、OpenSemaphore、OpenWaitable Timer) 419页
8.1.3 关键段(EnterCriticalSection、LeaveCriticalSection、DeleteCritiaclSection) 425页
8.2 关键区段 428页
8.2.1 初 始 化 关 键 区 段 ( InitializeCriticalSection 、 InitializeCriticalSectionAnd SpinCount). 428页
8.2.2 非阻塞进入关键区段(TryEnterCriticalSection) 430页
8.2.3 设置关键区段的计数(SetCriticalSecitonSpinCount). 430页
8.3 原子性访问变量 431页
8.3.1 原子性比较(InterlockedCompareExchange) 431页
8.3.2 原子性交换(InterlockedExchange) 432页
8.3.3 原子性增加(InterlockedIncrement、InterlockedExchangeAdd) 433页
8.3.4 原子性减少(InterlockedDecrement) 435页
8.4 等待事件发生 436页
8.4.1 触发一个事件并等待另一个事件(SignalObjectAndWait) . 436页
8.4.2 等待单个事件发生(WaitForSingleObject、WaitForSingleObjectEx) 436页
8.4.3 等待多个事件发生(WaitForMultipleObjects、WaitForMultipleObjectsEx) 438页
8.4.4 等待消息(MsgWaitForMultipleObjects、MsgWaitForMultipleObjectsEx) 442页
8.5 其他 445页
8.5.1 设置事件状态(SetEvent、ResetEvent、PulseEvent). 445页
8.5.2 释放互斥量(ReleaseMutex) . 448页
8.5.3 释放信号灯(ReleaseSemaphore) 448页
8.5.4 设置可等待定时器状态(SetWaitableTimer、CancelWaitableTimer) 449页
第 9 章 处理文本和字体 451页
9.1 文本 451页
9.1.1 显示文本(DrawText、DrawTextEx、TextOut、ExTextOut、TabbedTextOut、GrayString、OutputProc、PolyTextOut) 451页
9.1.2 设 置 和 获 取 文 本 属 性 ( SetTextAlign 、 GetTextAlign 、 SetTextColor 、GetTextColor) 461页
9.1.3 调整和获取字符间距(SetTextCharacterExtra、GetKerningPairs) . 466页
9.1.4 获得字符串的宽和高(GetTextExtentPoint32、GetTabbedTextExtent) 467页
9.1.5 获取字符串的信息(GetCharacterPlacement) . 470页
9.1.6 调整字符串(SetTextJustification) . 471页
9.3 字体 473页
9.3.1 创建新字体(CreateFont、CreateFontIndirect、CreateScalableFontResource) 473页
9.3.2 在系统中添加和删除字体(AddFontResource、RemoveFontResource) 479页
9.3.3 获取字体的宽度(GetCharABCWidths、GetCharWidth、GetCharWidth32、GetCharWidthFloat、GetCharaABCWidthsFloat) 480页
9.3.4 获取字体的各种信息(GetTextMetric、GetFontLanguageInfo) 485页
9.3.5 字体的宽高比( GetAspectRatioFilterEx、SetMapperFlags) 487页
9.3.6 获取字体的字型名(GetTextFace). 488页
9.3.7 遍历系统字体(EnumFontFamiliesEx、EnumFontFamiExProc) . 489页
第 10 章 硬件和系统 493页
10.1 键盘 493页
10.1.1 设置和获取键盘布局(ActivateKeyboardLayout、GetKeyboardLayout、GetKey boardLayoutList、GetKeyboardLayoutName) 493页
10.1.2 装载和卸载键盘布局(LoadKeyBoardLayout、UnloadKeyBoardLayout) 498页
10.1.3 获得和设置键盘状态(GetKeyboardState、SetKeyboardState) . 500页
10.1.4 获得键盘类型(GetKeyboardType). 503页
10.1.5 获得按键名(GetKeyNameText) 505页
10.1.6 获得按键状态(GetKeyState、GetAsyncKeyState) 506页
10.1.7 虚拟按键到扫描码(MapVirtualKey、MapVirtualKeyEx) 508页
10.1.8 虚拟按键到 ASCII 码(ToAscii、ToAsciiEx) 511页
10.1.9 虚拟按键到 Unicode(ToUnicode、ToUnicodeEx) 513页
10.1.10 字符到虚拟按键(VkKeyScan、VkKeyScanEx) . 516页
10.1.11 OEM 码到扫描码(OemKeyScan) 518页
10.1.12 注册和撤销系统热键(RegisterHotKey、UnregisterHotKey) 519页
10.1.13 插入键盘事件(SendInput、keybd_event) 521页
10.2 鼠标 523页
10.2.1 获得鼠标输入点序列(GetMouseMovePoints) 523页
10.2.2 获得和设置双击间隔(GetDoubleClickTime、SetDoubleClickTime) 524页
10.2.3 鼠标左右键设置(SwapMouseButton) 525页
10.2.4 鼠标捕获和释放(SetCapture、GetCapture、ReleaseCapture) 526页
10.2.5 捕获离开和滑过事件(TrackMouseEvent). 528页
10.2.6 插入鼠标事件(mouse_event) 529页
10.2.7 探测拖动(DragDetect) 531页
10.3 光标 532页
10.3.1 新建和撤销光标(CreateCursor、LoadCursorFromFile、DestroyCursor) 532页
10.3.2 设置和获取光标(SetCursor、GetCursor) 536页
10.3.3 设置和获取光标位置(SetCursorPos、GetCursorPos) 537页
10.3.4 设置和获取光标活动范围(ClipCursor、GetClipCursor). 539页
10.3.5 显示光标(ShowCursor) 541页
10.3.6 设置系统光标(SetSystemCursor) 541页
10.4 时钟 543页
10.4.1 设 置 和 获 取 系 统 时 间 ( SetSystemTime 、 GetSystemTime 、GetSystemTimeAsFileTime) 543页
10.4.2 设置和获取当地时间(SetLocAltime、GetLocAltime) 546页
10.4.3 获取自启动以来的微秒数(GetTickCount) 547页
10.4.4 获 取 和 设 置 系 统 调 整 时 间 ( GetSystemTimeAdjustment 、SetSystemTimeAdjustment) . 548页
10.4.5 设置和获取时区信息(SetTimeZoneInformation、GetTimeZoneInformation) 550页
10.4.6 获取高精度时间(QueryPerformanceCounter、QueryPerformance Frequency) 552页
10.4.7 设置定时器(SetTimer) . 553页
10.4.8 设置定时器回调函数(TimerProc) . 555页
10.4.9 撤销定时器(KillTimer) 555页
10.5 系统信息 556页
10.5.1 获取系统各种度量信息(GetSystemMetrics) 556页
10.5.2 设置和获取系统参数(SystemParametersInfo) 559页
10.5.3 确定处理器的特性(IsProcessorFeaturePresent). 564页
10.5.4 获取和设置计算机名(GetComputerName、SetComputerName) 565页
10.5.5 获取用户名(GetUserName) 567页
10.5.6 获取操作系统版本信息(GetVersionEx). 567页
10.5.7 获取系统信息(GetSystemInfo) 568页
第 11 章 Windows 消息. 570页
11.1 消息系统概述. 570页
11.2 消息处理 570页
11.2.1 发 送 消 息 ( SendMessage 、 SendMessageCallback 、 SendNotifyMessage 、SendMessageTimeout 、 PostThreadMessage 、 PostMessage 、 PostQutiMessage 、BroadcastSystemMessage) 570页
11.2.2 回复消息(ReplyMessage) 580页
11.2.3 获取消息(GetMessage、WaitMessage、PeekMessage) 582页
11.2.4 处理消息(TranslateMessage、DispatchMessage) . 585页
11.2.5 设置和获取消息的附加信息(SetMessageExtraInfo、GetMessageExtra Info) 586页
11.2.6 获取消息的伴随信息(GetMessagePos、GetMessageTime) 588页
11.2.7 注册新窗口消息(RegisterWindowMessage) 589页
11.3 消息队列 591页
11.3.1 获取队列状态(GetQueueStatus) . 591页
11.3.3 获取队列中输入消息状态( GetInputState) . 592页
11.4 其他 593页
11.4.1 是否重入(InSendMessage、InSendMessageEx) 593页
第 12 章 进程和线程 595页
12.1 进程和线程概述 595页
12.2 进程 595页
12.2.1 创建新进程(CreateProcess、CreateProcessAsUser) 595页
12.2.2 获取进程对象(OpenProcess) 600页
12.2.3 获取进程起始信息(GetStartupInfo) . 602页
12.2.4 设 置 和 获 取 工 作 集 大 小 ( SetProcessWorkingSetSize 、GetProcessWorkingSetSize) . 603页
12.2.5 设置和获取进程的优先级(SetPriorityClass、GetPriorityClass) 604页
12.2.6 进程的动态优先级(SetProcessPriorityBoost、GetProcessPriorityBoost) 606页
12.2.7 设 置 和 获 取 退 出 参 数 ( SetProcessShutdownParameters 、GetProcessShutdownParameters) 608页
12.2.8 获取进程的退出代码(GetExitCodeProcess) 609页
12.2.9 设置和获取环境参数(GetEnvironmentStrings、SetEnvironmentVariable、GetEnvironmentVariable、FreeEnvironmentVariable) 610页
12.2.10 获取进程的时间信息(GetProcessTime) 613页
12.2.11 获取进程的版本信息(GetProcessVersion) . 614页
12.2.12 获取当前进程(GetCurrentProcess、GetCurrentProcessID) 615页
12.2.13 等待进程空闲(WaitForInputIdle) 616页
12.2.14 结束进程(ExitProcess、TerminateProcess) 616页
12.2.15 获取命令参数(GetCommandLine、CommandLineToArgvW) 619页
12.3 线程 620页
12.3.1 创建新线程(CreateThread) 620页
12.3.2 设置和获得线程优先级(SetThreadPriority、GetThreadProority) 622页
12.3.3 线程的调度(SuspendThread、SwitchToThread、ResumeThreadExitThread 、TerminateThread、Sleep、SleepEx) 625页
12.3.4 设置线程的输入队列(AttachThreadInput) 631页
12.3.5 线程的动态优先级( SetThreadPriorityBoost、GetThreadPriorityBoost) 633页
12.3.6 获取线程的时间信息(GetThreadTimes) 634页
12.3.7 获取线程的退出码(GetExitCodeThread) 635页
12.4 调试 636页
12.4.1 调试指定进程(DebugActiveProcess) 636页
12.4.2 设置断点(DebugBreak) 639页
12.4.3 等待异常发生(WaitForDebugEvent) 640页
12.4.4 重新启动线程(ContinueDebugEvent) . 641页
12.4.5 设置调试级别(SetDebugErrorLevel) 642页
12.4.6 发送一串字符给调试器(OutputDebugString). 642页
12.4.7 是否处于被调试态(IsDebuggerPresent). 643页
12.4.8 控制转移到调试器(FatalExit) . 644页
12.4.9 设置和获取线程上下文(SetThreadContext、GetThreadContext) 644页
12.4.10 获取线程选择子的描述符(GetThreadSelectorEntry) 646页
12.4.11 读写进程内存(WriteProcessMemory、ReadProcessMemory) 647页
12.5 线程局部数据区 650页
12.5.1 分配(TlsAlloc) 650页
12.5.2 释放(TlsFree). 651页
12.5.3 设置和获取变量值(TlsSetValue、TlsGetValue) 652页
12.6 进程间通信 653页
12.6.1 创建映射文件(CreateFileMapping) 653页
12.6.2 打开映射文件(OpenFileMapping). 655页
12.6.3 映射文件到内存(MapViewOfFile、MapViewOfFileEx) 656页
12.6.4 撤销映射(UnmapViewOfFile) . 659页
附录 A 数据结构 660页
附录 B Windows 消息. 713页
附录 C 类型与宏 761页
1.1 Win32 程序概述 16页
1.2 图形界面编程. 16页
1.3 消息传递机制. 22页
1.4 Win32 API 概述. 22页
1.5 为什么用 API . 23页
1.6 如何在程序中调用 API 函数. 23页
1.7 本书示例约定. 23页
第 2 章 窗口处理 25页
2.1 窗口简介. 25页
2.2 窗口的创建和撤销 25页
2.2.1 创建普通窗口(CreateWindow、CreateWindowEx) 25页
2.2.2 关闭窗口(CloseWindow) . 34页
2.2.3 销毁窗口(DestroyWindow). 35页
2.3 窗口之间的关系. 36页
2.3.1 父子关系(SetParent、GetParent、IsChild) 36页
2.3.2 遍 历 窗 口 ( EnumWindow 、 EnumWindowProc 、 EnumChildWindows 、EnumChildProc) 39页
2.3.3 获取指定的子窗口(ChildWindowFromPoint、ChildWindowFromPointEx) 42页
2.3.4 获 得 特 定 的 窗 口 ( GetWindow 、 GetTopWindow 、 GetNextWindow 、GetDesktopWindow) 44页
2.4 窗口的大小、位置和布局 48页
2.4.1 获取窗口大小(GetWindowRect、GetClientRect) 48页
2.4.2 调整窗口大小(AdjustWindowRect、AdjustWindowRectEx) 50页
2.4.3 设置和获取窗口位置(SetWindowPos). 52页
2.4.4 移动窗口位置(MoveWindow) 54页
2.4.5 设 置 一 组 窗 口 位 置 ( BeginDeferWindowPos 、 DeferWindowPos 、EndDeferWindowPos) 55页
2.4.6 设置和获取窗口布局(SetWindowPlacement、GetWindowPlacement). 58页
2.4.7 设置和获得视口坐标起点(SetViewportOrgEx、GetViewportOrgEx) 59页
2.4.8 设置和获取视口坐标范围(SetViewportExtEx、GetViewportExtEx). 61页
2.4.9 设置和获取窗口坐标起点(SetWindowOrgEx、GetWindowOrgEx) 63页
2.4.10 设置和获取窗口坐标范围(SetWindowExtEx、GetWindowExtEx) 64页
2.4.11 坐标起点的偏移操作(OffsetViewportOrgEx、OffsetWindowOrgEx). 66页
2.5 显示窗口. 68页
2.5.1 显示单个窗口(ShowWindow、ShowWindowAsync、OpenIcon) 68页
2.5.2 弹出式窗口(ShowOwnedPopups、GetLastActivePopup) . 71页
2.5.3 显示子窗口(CascadeWindows、TileWindows、ArrangeIconicWindows) 73页
2.5.4 判断各种显示状态(IsIconic、IsWindowVisible、IsZoomed) 77页
2.6 窗口属性. 78页
2.6.1 设置和获取窗口名(SetWindowText、GetWindowText、GetWindowTextLength) 78页
2.6.2 设置和获取窗口标记长字(SetWindowLong、GetWindowLong) 81页
2.6.3 设置和获取前台窗口(SetForegroundWindow、GetForegroundWindow) 83页
2.7 对话框 84页
2.7.1 创建对话框(DialogBox、CreateDialog、CreateDialogIndirect、Message Box、MessageBoxEx、MessageBoxIndirect) 84页
2.7.2 获取控件及其 ID(GetDlgItem、GetDlgCtrlID) 93页
2.7.3 设置获取控件的显示文本(SetDlgItemText、SetDlgItemInt、GetDlgItemText、GetDlgItemInt) 95页
2.7.4 获取下一个 TAB 控件(GetNextDlgTabItem) 98页
2.7.5 对话框过程(DefDlgProc、DialogProc) 99页
2.7.6 对话框坐标和屏幕坐标间的转换(MapDialogRect). 100页
2.7.7 撤销对话框(EndDialog) 101页
2.8 其他 102页
2.8.1 查找窗口(FindWindow、FindWindowEx). 102页
2.8.2 设置窗口 Z 坐标(BringWindowToTop) 103页
2.8.3 确定窗口属性(IsWindow、IsWindowUnicode) 104页
2.8.4 设置和获取激活态窗口(SetActiveWindow、GetActiveWindow) 106页
2.8.5 窗口闪烁(FlashWindow) 107页
2.8.6 获取指定点处的窗口(WindowFromPoint) 108页
2.8.7 遍历线程所有窗口(EnumThreadWindows、EnumThreadWndProc) . 109页
第 3 章 设备上下文aaDC 112页
3.1 DC 简介 112页
3.2 DC 的获取和撤销 . 112页
3.2.1 创建 DC(CreateDC、CreateCompatibleDC). 112页
3.2.2 撤销 DC(ReleaseDC、DeleteDC) 114页
3.2.3 获得窗口 DC(GetWindowDC、GetDC、GetDCEx). 115页
3.2.4 保存和恢复 DC(SaveDC、RestoreDC) 118页
3.3 设置和获取 DC 的各种属性 120页
3.3.1 获得 DC 起始点坐标(GetDCOrgEx) 120页
3.3.2 设置显示配置(ChangeDisplaySettings、ChangeDisplaySettingsEx) 121页
3.3.3 遍历显示设备和其配置(EnumDisplayDevices、EnumDisplaySettings) 123页
3.3.4 设置和获取 DC 画刷颜色(SetDCBrushColor、GetDCBrushColor). 124页
3.3.5 设置和获取 DC 画笔颜色(SetDCPenColor、GetDCPenColor) 125页
3.3.6 设置和获取 DC 中各种对象(SelectObject、GetCurrentObject) 126页
3.3.7 获取 DC 中对象的信息(GetObject、GetObjectType、GetStockObject). 129页
3.4 区域操作 132页
3.4.1 新建椭圆区域(CreateEllipticRgn、CreateEllipticRgnIndirect) . 132页
3.4.2 新建多边形区域(CreatePolygonRgn、CreatePolyPolygonRgn) 133页
3.4.3 新建矩形区域(CreateRectRgn、CreateRectRgnIndirect) 136页
3.4.4 新建圆矩形区域(CreateRoundRectRgn) 137页
3.4.5 区域之间的操作(EqualRgn、ExcludeUpdateRgn). 138页
3.4.6 区域上绘图操作(FillRgn、FrameRgn、InvertRgn、PaintRgn) . 140页
3.5 裁剪操作 143页
3.5.1 设 置 和 获 取 裁 剪 区 域 ( SelectClipRgn 、 SelectClipPath 、 GetClipRgn 、ExtSelectClipRgn). 143页
3.5.2 裁剪区域间的运算(ExcludeClipRect、IntersectClipRect、OffsetClipRgn) 147页
3.6 坐标变换 150页
3.6.1 客户区坐标与屏幕坐标的变换(ClientToScreen、ScreenToClient) 150页
3.6.2 设备坐标与逻辑坐标的变换(DPtoLP、LPtoDP) 152页
3.6.3 窗口间的坐标变换(MapWindowPoints) 154页
3.7 颜色和调色板 155页
3.7.1 创建新调色板(CreatePalette) 155页
3.7.2 启用调色板(SelectPalette、RealizePalette). 156页
3.7.3 设置和获取调色板颜色条目(SetPaletteEntries、GetPaletteEntries) 158页
3.7.4 设置系统调色板的工作方式(SetSystemPaletteUse) . 160页
3.7.5 设置和获取颜色调整(SetColorAdjutstment、GetColorAdjustment) 161页
3.7.6 获取匹配颜色(GetNearestColor、GetNearestPaletteIndex) 162页
3.8 其他 164页
3.8.1 滚动窗口(ScrollDC). 164页
3.8.2 偏移操作(OffsetRect、OffsetRgn) 165页
3.8.3 点、矩形和区域的关系(PtInRegion、PtVisible、RectInRegion、RectVisible) 167页
3.8.4 缩放视口和窗口大小(ScaleViewportExtEx、ScaleWindowExtEx) 170页
3.8.5 由给定 DC 获取相联系的窗口(WindowFromDC). 172页
3.8.6 获取特定设备的信息(GetDeviceCaps). 173页
3.8.7 撤销 DC 中的对象(DeleteObject) 175页
第 4 章 绘图函数 177页
4.1 基本画图函数 177页
4.1.1 点(SetPixel、SetPixelV、GetPixel). 177页
4.1.2 线(LineTo、LineDDA、LineDDAProc、MoveToEx、Polyline、PolylineTo) 179页
4.1.3 曲线(PolyBezier、PolyBezierTo、PolyDraw) 185页
4.1.4 弧(AngleArc、Arc、ArcTo、SetArcDirection、GetArcDirection) 188页
4.1.5 椭圆(Ellipse). 192页
4.1.6 弦(Chord) 193页
4.1.7 矩形(Rectangle、Roundrect、DrawEdge、DrawFocusRect、FillRect). 195页
4.1.8 多边形(Polygon、PolyPolygon、PolyPolyline) 200页
4.1.9 饼图(Pie). 203页
4.2 路径相关函数 204页
4.2.1 启动和终止路径绘图(BeginPath、EndPath). 204页
4.2.2 曲线到直线(FlattenPath) 206页
4.2.3 填充路径(FillPath、StrokeAndFillPath) 207页
4.2.4 边界处理(StrokePath、WidenPath). 209页
4.2.5 封闭路径(CloseFigure) 210页
4.2.6 获取路径区域(PathToRegion) 211页
4.2.7 获取路径(GetPath) 212页
4.2.8 撤销路径(AbortPath) 213页
4.3 处理 DC 对象 214页
4.3.1 新建画笔(CreatePen、CreatePenIndirect、ExtCreatePen). 214页
4.3.2 新建画刷(CreateBrushIndirect、CreateHatchBrush、CreateDIBPatternBrushPt、CreatePatternBrush、CreateSolidBrush、GetSysColorBrush) . 217页
4.3.3 设置和获取背景颜色和模式( GetBkColor、GetBkMode、SetBkColor、SetBkMode) 224页
4.4 图元文件 226页
4.4.1 创建图元文件(CreateEnhMetaFile、CreateMetaFile) 226页
4.4.2 复制图元文件(CopyEnhMetaFile、CopyMetaFile) 228页
4.4.3 打开图元文件(GetEnhMetaFile) 230页
4.4.4 关闭图元文件(CloseEnhMetaFile、CloseMetaFile) 230页
4.4.5 撤销图元文件(DeleteEnhMetaFile、DeleteMetaFile) 231页
4.4.6 绘制图元文件(PlayEnhMetaFile) . 232页
4.5 其他 233页
4.5.1 启动和终止绘图(BeginPaint、EndPaint). 233页
4.5.2 获取需更新区域(GetUpdateRect、GetUpdateRgn) 235页
4.5.3 绘图操作生效(InvalidateRect、InvalidateRgn、ValidateRect、ValidateRgn) 237页
4.5.4 设置和获取最大绘图缓冲(GdiSetBatchLimit、GdiGetBatchLimit) 241页
4.5.5 刷新缓冲(GdiFlush) . 242页
4.5.6 设置和获取窗口可绘图区域(SetWindowRgn、GetWindowRgn). 243页
4.5.7 禁止在窗口绘图(LockWindowUpdate). 245页
4.5.8 绘制桌面(PaintDesktop) 246页
4.5.9 更新窗口(RedrawWindow) 246页
4.5.10 撤销绘图操作(CancelDC) . 247页
4.5.11 描绘标准控件(DrawFrameControl) 248页
4.5.12 设定画图效果(DrawState、DrawStateProc) 250页
4.5.13 设置和获取系统颜色(SetSysColors、GetSysColor) 253页
第 5 章 位图和图标 256页
5.1 位图和图标简介 256页
5.2 创建和撤销位图、图标 256页
5.2.1 创建位图(CreateBitmap、CreateBitampIndirect、CreateCompatible、Bitmap、CreateDIBitmap、CreateDIBSection、LoadBitmap、LoadImage) 256页
5.2.2 创建图标(CreateIcon、LoadIcon、LoadCursorFromFile) . 266页
5.2.3 撤销图标(DestoryIcon) 270页
5.3 设置和获得位图和图标的各种属性 271页
5.3.1 设置和获取位图的位数据(SetBitmapBits、GetBitmapBits) 271页
5.3.2 设置和获取 DIB(SetDIBits、GetDIBits). 273页
5.3.3 设置和获取 DIB 颜色表(SetDIBColorTable、GetDIBColorTable) 276页
5.3.4 设置和获取位图的大小(GetBitmapDimensionEx、SetBitmapDimension Ex) 278页
5.3.5 获取图标信息(GetIconInfo). 280页
5.4 位块操作 281页
5.4.1 各种位块操作方式(BitBlt、PatBlt、PlgBlt、StretchBlt、MaskBlt、TransparentBlt) 281页
5.4.2 设 置 和 获 取 位 操 作 模 式 ( SetROP2 、 GetROP2 、 SetStretchBltMode 、GetStretchBltMode) 288页
5.5 其他 291页
5.5.1 复制位图和图标(CopyImage、CopyIcon) 291页
5.5.2 从文件中搜寻图标(ExtractIcon、ExtractIconEx、ExtractAssociatedIcon) 293页
5.5.3 显示图标(DrawIcon、DrawIconEx) 296页
第 6 章 菜单处理 299页
6.1 菜单的简单操作 299页
6.1.1 生成新菜单(CreateMenu、CreatePopupMenu) 299页
6.1.2 装载菜单(LoadMenu、LoadMenuIndirect). 301页
6.1.3 撤销菜单(DestoryMenu、DeleteMenu、RemoveMenu). 303页
6.1.4 获取菜单(GetMenu、GetSubMenu、GetSystemMenu) 305页
6.1.5 增添菜单(AppendMenu) 308页
6.2 菜单项处理. 310页
6.2.1 设置和获取菜单项信息(SetMenuItemInfo、GetMenuItemInfo) 310页
6.2.2 设置和获取缺省菜单项(SetMenuDefautlItem、GetMenuDefaultItem) . 312页
6.2.3 获取菜单项的 ID(GetMenuItemID) 314页
6.2.4 获取菜单项数(GetMenuItemCount) 315页
6.2.5 获取菜单项的范围大小(GetMenuItemRect) . 316页
6.2.6 高亮显示菜单项(HiliteMenuItem) 317页
6.2.7 菜单项属性(CheckMenuItem、EnableMenuItem、CheckMenuRadioItem) 318页
6.2.8 添加菜单项(InsertMenuItem) . 321页
6.2.9 获取某点处的菜单项(MenuItemFromPoint) . 322页
6.3 其他 323页
6.3.1 设置窗口的菜单(SetMenu) 323页
6.3.2 判定句柄是否指向菜单(IsMenu). 323页
6.3.3 上下文菜单(TrackPopupMenu、TrackPopupMenuEx) 324页
6.3.4 显示菜单条(DrawMenuBar) 327页
6.3.5 图形菜单项(SetMenuItemBitmaps). 328页
第 7 章 文件处理 330页
7.1 创建、读写和撤销文件 330页
7.1.1 创建文件(CreateFile、lcreat、GetTempFileName) 330页
7.1.2 设置文件读写位置(SetFilePointer、_llseek、_lseek) 334页
7.1.3 写入文件(WriteFile、lwrite、hwirte) 337页
7.1.4 异步写入文件(WriteFileEx、FileIOCompletionRoutine) 339页
7.1.5 读入文件(ReadFile、_lread、_hread) 341页
7.1.6 异步读入文件(ReadFileEx 344页
7.1.7 复制文件(CopyFile、CopyFileEx、CopyProgressRoutine) 345页
7.1.8 更改文件名(MoveFile、MoveFileEx) 348页
7.1.9 关闭文件(CloseHandle、_lclose) . 350页
7.1.10 删除文件(DeleteFile) 351页
7.2 设置和获得文件的各种信息 352页
7.2.1 获取文件大小(GetFileSize) . 352页
7.2.2 获取文件类型(GetFileType) 353页
7.2.3 设置和获取文件时间信息(SetFileTime、GetFileTime) . 354页
7.2.4 获 取 文 件 版 本 信 息 ( GetFileVersionInfo 、 GetFileVersionInfoSize 、VerQueryValue) 356页
7.2.5 是否可执行文件(GetBinaryType) 359页
7.2.6 长文件名和短文件名的转换(GetFullPathName、GetShortPathName) . 360页
7.2.7 由文件句柄获取文件信息(GetFileInformationByHandle). 362页
7.2.8 设置文件结束标志(SetEndOfFile) 363页
7.2.9 设置和获取文件属性(SetFileAttributes、GetFileAttributes) 364页
7.3 目录处理 366页
7.3.1 创建新目录(CreateDirectory、CreateDirectoryEx) 366页
7.3.2 删除目录(RemoveDirectory) 367页
7.3.3 获取系统路径(GetSystemDirectory) 368页
7.3.4 获取临时路径(GetTempPath). 369页
7.3.5 获取 Windows 完整目录(GetWindowsDirectory) 370页
7.3.6 设置和获取当前目录(SetCurrentDirectory、GetCurrentDirectory) . 371页
7.4 文件查找 373页
7.4.1 查找第一个文件(FindFirstFile) . 373页
7.4.2 查找下一个文件(FindNextFile). 374页
7.4.3 查找指定文件(SearchPath) 374页
7.4.4 查找结束(FindClose) 376页
7.5 磁盘信息 376页
7.5.1 获取可用逻辑驱动器(GetLogicalDrives). 376页
7.5.2 获取可用逻辑驱动器信息(GetLogicalDriveStrings). 377页
7.5.3 设置和获取卷标信息(SetVolumeLabel、GetVolumeInformation). 378页
7.5.4 获取磁盘空闲空间(GetDiskFreeSpace、GetDiskFreeSpaceEx). 381页
7.5.5 获取磁盘类型(GetDriveType) 384页
7.6 压缩文件 385页
7.6.1 初始化内部缓冲区(LZInit) 385页
7.6.2 打开压缩文件(LZOpenFile) 386页
7.6.3 读入压缩文件(LZRead). 387页
7.6.4 压缩文件指针定位(LZSeek) 388页
7.6.5 获取压缩文件大小(GetCompressedFileSize). 389页
7.6.6 获取压缩文件全名(GetExpandedName) 390页
7.6.7 复制和解压缩文件(LZCopy) . 391页
7.6.8 关闭压缩文件(LZClose. 392页
7.7 其他 393页
7.7.1 设置和获取字符集(SetFileApisToANSI、SetFileApisToOEM、AreFileApisANSI). 393页
7.7.2 联系文件和 I/O 端口(CreateIoCompletionPort、PostQueuedCompletion Status、GetQueuedCompletionStatus) . 395页
7.7.3 更新文件缓冲区(FlushFileBuffers) . 399页
7.7.4 加锁和解锁文件(LockFile、LockFileEx、UnlockFile、UnlockFileEx) 399页
7.7.5 撤销文件 IO(CancelIO) . 403页
7.7.6 比较文件时间信息(CompareFileTime). 404页
7.7.7 设备 IO 操作(DeviceIoControl). 405页
7.7.8 DOS 时间转换为 Win32 时间(DosDateTimeToFileTime) 407页
7.7.9 Win32 时间转换为 Dos 时间(FileTimeToDosDateTime) 408页
7.7.10 Win32 时间转换本地时间(FileTimeToLocalFileTime) . 409页
第 8 章 同步 411页
8.1 同步对象 411页
8.1.1 生 成 同 步 对 象 ( CreateEvent 、 CreateMutex 、 CreateSemaphore 、 Create WaitableTimer) 411页
8.1.2 打开同步对象(OpenEvent、OpenMutex、OpenSemaphore、OpenWaitable Timer) 419页
8.1.3 关键段(EnterCriticalSection、LeaveCriticalSection、DeleteCritiaclSection) 425页
8.2 关键区段 428页
8.2.1 初 始 化 关 键 区 段 ( InitializeCriticalSection 、 InitializeCriticalSectionAnd SpinCount). 428页
8.2.2 非阻塞进入关键区段(TryEnterCriticalSection) 430页
8.2.3 设置关键区段的计数(SetCriticalSecitonSpinCount). 430页
8.3 原子性访问变量 431页
8.3.1 原子性比较(InterlockedCompareExchange) 431页
8.3.2 原子性交换(InterlockedExchange) 432页
8.3.3 原子性增加(InterlockedIncrement、InterlockedExchangeAdd) 433页
8.3.4 原子性减少(InterlockedDecrement) 435页
8.4 等待事件发生 436页
8.4.1 触发一个事件并等待另一个事件(SignalObjectAndWait) . 436页
8.4.2 等待单个事件发生(WaitForSingleObject、WaitForSingleObjectEx) 436页
8.4.3 等待多个事件发生(WaitForMultipleObjects、WaitForMultipleObjectsEx) 438页
8.4.4 等待消息(MsgWaitForMultipleObjects、MsgWaitForMultipleObjectsEx) 442页
8.5 其他 445页
8.5.1 设置事件状态(SetEvent、ResetEvent、PulseEvent). 445页
8.5.2 释放互斥量(ReleaseMutex) . 448页
8.5.3 释放信号灯(ReleaseSemaphore) 448页
8.5.4 设置可等待定时器状态(SetWaitableTimer、CancelWaitableTimer) 449页
第 9 章 处理文本和字体 451页
9.1 文本 451页
9.1.1 显示文本(DrawText、DrawTextEx、TextOut、ExTextOut、TabbedTextOut、GrayString、OutputProc、PolyTextOut) 451页
9.1.2 设 置 和 获 取 文 本 属 性 ( SetTextAlign 、 GetTextAlign 、 SetTextColor 、GetTextColor) 461页
9.1.3 调整和获取字符间距(SetTextCharacterExtra、GetKerningPairs) . 466页
9.1.4 获得字符串的宽和高(GetTextExtentPoint32、GetTabbedTextExtent) 467页
9.1.5 获取字符串的信息(GetCharacterPlacement) . 470页
9.1.6 调整字符串(SetTextJustification) . 471页
9.3 字体 473页
9.3.1 创建新字体(CreateFont、CreateFontIndirect、CreateScalableFontResource) 473页
9.3.2 在系统中添加和删除字体(AddFontResource、RemoveFontResource) 479页
9.3.3 获取字体的宽度(GetCharABCWidths、GetCharWidth、GetCharWidth32、GetCharWidthFloat、GetCharaABCWidthsFloat) 480页
9.3.4 获取字体的各种信息(GetTextMetric、GetFontLanguageInfo) 485页
9.3.5 字体的宽高比( GetAspectRatioFilterEx、SetMapperFlags) 487页
9.3.6 获取字体的字型名(GetTextFace). 488页
9.3.7 遍历系统字体(EnumFontFamiliesEx、EnumFontFamiExProc) . 489页
第 10 章 硬件和系统 493页
10.1 键盘 493页
10.1.1 设置和获取键盘布局(ActivateKeyboardLayout、GetKeyboardLayout、GetKey boardLayoutList、GetKeyboardLayoutName) 493页
10.1.2 装载和卸载键盘布局(LoadKeyBoardLayout、UnloadKeyBoardLayout) 498页
10.1.3 获得和设置键盘状态(GetKeyboardState、SetKeyboardState) . 500页
10.1.4 获得键盘类型(GetKeyboardType). 503页
10.1.5 获得按键名(GetKeyNameText) 505页
10.1.6 获得按键状态(GetKeyState、GetAsyncKeyState) 506页
10.1.7 虚拟按键到扫描码(MapVirtualKey、MapVirtualKeyEx) 508页
10.1.8 虚拟按键到 ASCII 码(ToAscii、ToAsciiEx) 511页
10.1.9 虚拟按键到 Unicode(ToUnicode、ToUnicodeEx) 513页
10.1.10 字符到虚拟按键(VkKeyScan、VkKeyScanEx) . 516页
10.1.11 OEM 码到扫描码(OemKeyScan) 518页
10.1.12 注册和撤销系统热键(RegisterHotKey、UnregisterHotKey) 519页
10.1.13 插入键盘事件(SendInput、keybd_event) 521页
10.2 鼠标 523页
10.2.1 获得鼠标输入点序列(GetMouseMovePoints) 523页
10.2.2 获得和设置双击间隔(GetDoubleClickTime、SetDoubleClickTime) 524页
10.2.3 鼠标左右键设置(SwapMouseButton) 525页
10.2.4 鼠标捕获和释放(SetCapture、GetCapture、ReleaseCapture) 526页
10.2.5 捕获离开和滑过事件(TrackMouseEvent). 528页
10.2.6 插入鼠标事件(mouse_event) 529页
10.2.7 探测拖动(DragDetect) 531页
10.3 光标 532页
10.3.1 新建和撤销光标(CreateCursor、LoadCursorFromFile、DestroyCursor) 532页
10.3.2 设置和获取光标(SetCursor、GetCursor) 536页
10.3.3 设置和获取光标位置(SetCursorPos、GetCursorPos) 537页
10.3.4 设置和获取光标活动范围(ClipCursor、GetClipCursor). 539页
10.3.5 显示光标(ShowCursor) 541页
10.3.6 设置系统光标(SetSystemCursor) 541页
10.4 时钟 543页
10.4.1 设 置 和 获 取 系 统 时 间 ( SetSystemTime 、 GetSystemTime 、GetSystemTimeAsFileTime) 543页
10.4.2 设置和获取当地时间(SetLocAltime、GetLocAltime) 546页
10.4.3 获取自启动以来的微秒数(GetTickCount) 547页
10.4.4 获 取 和 设 置 系 统 调 整 时 间 ( GetSystemTimeAdjustment 、SetSystemTimeAdjustment) . 548页
10.4.5 设置和获取时区信息(SetTimeZoneInformation、GetTimeZoneInformation) 550页
10.4.6 获取高精度时间(QueryPerformanceCounter、QueryPerformance Frequency) 552页
10.4.7 设置定时器(SetTimer) . 553页
10.4.8 设置定时器回调函数(TimerProc) . 555页
10.4.9 撤销定时器(KillTimer) 555页
10.5 系统信息 556页
10.5.1 获取系统各种度量信息(GetSystemMetrics) 556页
10.5.2 设置和获取系统参数(SystemParametersInfo) 559页
10.5.3 确定处理器的特性(IsProcessorFeaturePresent). 564页
10.5.4 获取和设置计算机名(GetComputerName、SetComputerName) 565页
10.5.5 获取用户名(GetUserName) 567页
10.5.6 获取操作系统版本信息(GetVersionEx). 567页
10.5.7 获取系统信息(GetSystemInfo) 568页
第 11 章 Windows 消息. 570页
11.1 消息系统概述. 570页
11.2 消息处理 570页
11.2.1 发 送 消 息 ( SendMessage 、 SendMessageCallback 、 SendNotifyMessage 、SendMessageTimeout 、 PostThreadMessage 、 PostMessage 、 PostQutiMessage 、BroadcastSystemMessage) 570页
11.2.2 回复消息(ReplyMessage) 580页
11.2.3 获取消息(GetMessage、WaitMessage、PeekMessage) 582页
11.2.4 处理消息(TranslateMessage、DispatchMessage) . 585页
11.2.5 设置和获取消息的附加信息(SetMessageExtraInfo、GetMessageExtra Info) 586页
11.2.6 获取消息的伴随信息(GetMessagePos、GetMessageTime) 588页
11.2.7 注册新窗口消息(RegisterWindowMessage) 589页
11.3 消息队列 591页
11.3.1 获取队列状态(GetQueueStatus) . 591页
11.3.3 获取队列中输入消息状态( GetInputState) . 592页
11.4 其他 593页
11.4.1 是否重入(InSendMessage、InSendMessageEx) 593页
第 12 章 进程和线程 595页
12.1 进程和线程概述 595页
12.2 进程 595页
12.2.1 创建新进程(CreateProcess、CreateProcessAsUser) 595页
12.2.2 获取进程对象(OpenProcess) 600页
12.2.3 获取进程起始信息(GetStartupInfo) . 602页
12.2.4 设 置 和 获 取 工 作 集 大 小 ( SetProcessWorkingSetSize 、GetProcessWorkingSetSize) . 603页
12.2.5 设置和获取进程的优先级(SetPriorityClass、GetPriorityClass) 604页
12.2.6 进程的动态优先级(SetProcessPriorityBoost、GetProcessPriorityBoost) 606页
12.2.7 设 置 和 获 取 退 出 参 数 ( SetProcessShutdownParameters 、GetProcessShutdownParameters) 608页
12.2.8 获取进程的退出代码(GetExitCodeProcess) 609页
12.2.9 设置和获取环境参数(GetEnvironmentStrings、SetEnvironmentVariable、GetEnvironmentVariable、FreeEnvironmentVariable) 610页
12.2.10 获取进程的时间信息(GetProcessTime) 613页
12.2.11 获取进程的版本信息(GetProcessVersion) . 614页
12.2.12 获取当前进程(GetCurrentProcess、GetCurrentProcessID) 615页
12.2.13 等待进程空闲(WaitForInputIdle) 616页
12.2.14 结束进程(ExitProcess、TerminateProcess) 616页
12.2.15 获取命令参数(GetCommandLine、CommandLineToArgvW) 619页
12.3 线程 620页
12.3.1 创建新线程(CreateThread) 620页
12.3.2 设置和获得线程优先级(SetThreadPriority、GetThreadProority) 622页
12.3.3 线程的调度(SuspendThread、SwitchToThread、ResumeThreadExitThread 、TerminateThread、Sleep、SleepEx) 625页
12.3.4 设置线程的输入队列(AttachThreadInput) 631页
12.3.5 线程的动态优先级( SetThreadPriorityBoost、GetThreadPriorityBoost) 633页
12.3.6 获取线程的时间信息(GetThreadTimes) 634页
12.3.7 获取线程的退出码(GetExitCodeThread) 635页
12.4 调试 636页
12.4.1 调试指定进程(DebugActiveProcess) 636页
12.4.2 设置断点(DebugBreak) 639页
12.4.3 等待异常发生(WaitForDebugEvent) 640页
12.4.4 重新启动线程(ContinueDebugEvent) . 641页
12.4.5 设置调试级别(SetDebugErrorLevel) 642页
12.4.6 发送一串字符给调试器(OutputDebugString). 642页
12.4.7 是否处于被调试态(IsDebuggerPresent). 643页
12.4.8 控制转移到调试器(FatalExit) . 644页
12.4.9 设置和获取线程上下文(SetThreadContext、GetThreadContext) 644页
12.4.10 获取线程选择子的描述符(GetThreadSelectorEntry) 646页
12.4.11 读写进程内存(WriteProcessMemory、ReadProcessMemory) 647页
12.5 线程局部数据区 650页
12.5.1 分配(TlsAlloc) 650页
12.5.2 释放(TlsFree). 651页
12.5.3 设置和获取变量值(TlsSetValue、TlsGetValue) 652页
12.6 进程间通信 653页
12.6.1 创建映射文件(CreateFileMapping) 653页
12.6.2 打开映射文件(OpenFileMapping). 655页
12.6.3 映射文件到内存(MapViewOfFile、MapViewOfFileEx) 656页
12.6.4 撤销映射(UnmapViewOfFile) . 659页
附录 A 数据结构 660页
附录 B Windows 消息. 713页
附录 C 类型与宏 761页
Windows API函数参考手册
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!