微信扫一扫,移动浏览光盘
简介
本书是关于MicrosoftWin32.API函数的完整参考手册。本书详细介绍
了每一个Win32 API函数的使用方法,其中着重介绍其原型表示、函数说明
、参数说明、注意事项、相应头文件(.H)、链接库(.LIB或.DLl)和典型
示例。对于每个函数本书给出了相应的示例,这样读者在阅读相应的Win32
API函数时就能很快地了解它的具体功能和使用方法,便于更快地掌握该接
口函数。
本书是从事Microsoft Windows操作系统开发和应用人员的必备参考书
,也可作为大专院校相关专业师生自学、教学参考用书。
目录
目录
第1章 Windows编程概述
1.1 Win32程序概述
1.2 图形界面编程
1.3 消息传递机制
1.4 Win32API概述
1.5 为什么用API
1.6 如何在程序中调用API函数
1.7 本书示例约定
第2章 窗口处理
2.1 窗口简介
2.2 窗口的创建和撤销
2.2.1 创建普通窗口(CreateWindow、CreateWindowEx)
2.2.2 关闭窗口(CloseWindow)
2.2.3 销毁窗口(DestroyWindow)
2.3 窗口类操作
2.3.1 注册窗口类(RegisterClass、RegisterClassEx)
2.3.2 撤销窗口类(UnregisterClass)
2.3.3 获得窗口类信息(GetClasslnfoEx)
2.3.4 得到指定窗口的窗口类(GetClassName)
2.4 窗口之间的关系
2.4.1 父子关系(SetParent、GetParent、IsChild)
2.4.2 遍历窗口(EnumWindow、EnumWindowProc、EnumChildWindows、EnumChildProc)
2.4.3 获取指定的子窗口(ChildWindowFromPoint、ChildWindowFromPointEx)
2.4.4 获得特定的窗口(GetWindow、GetTopWindow、GetNextWindow、GetDesktopWindow)
2.5 窗口的大小、位置和布局
2.5.1 获取窗口大小(GetWindowRect、GetClientRect)
2.5.2 调整窗口大小(AdjustWindowRect、AdjustWindowRectEx)
2.5.3 设置和获取窗口位置(SetWindowPos)
2.5.4 移动窗口位置(MoveWindow)
2.5.5 设置和获取窗口布局(SetWindowPlacement、GetWindowPlacement)
2.5.6 设置和获得视口坐标起点(SetViewportOrgEx、GetViewportOrgEx)
2.5.7 设置和获取视口坐标范围(SetViewportExtEx、GetViewportExtEx)
2.5.8 设置和获取窗口坐标起点(SetWindowOrgEx、GetWindowOrgEx)
2.5.9 设置和获取窗口坐标范围(SetWindowExtEx、GetWindowExtEx)
2.6 显示窗口
2.6.1 显示单个窗口(ShowWindow)
2.6.2 弹出式窗口(ShowOwnedPopups、GetLastActivePopup)
2.6.3 判断各种显示状态(Islconic、IsWindowVisible、IsZoomed)
2.7 窗口属性
2.7.1 设置和获取窗口名(SetWindowText、GetWindowText、GetWindowTextLength)
2.7.2 设置和获取窗口标记长字(SetWindowLong、GetWindowLong)
2.7.3 设置和获取前台窗口(SetForegroundWindow、GetForegroundWindow)
2.7.4 锁定设置前台窗口(LockSetForegroundWindow)
2.8 对话框
2.8.1 创建对话框(DialogBox、CreateDialog、CreateDialogIndirect、Message Box、MessageBoxEx、MessageBoxlndirect)
2.8.2 获取控件及其ID(GetDlgltem、GetDlgCtrlID)
2.8.3 设置获取控件的显示文本(SetDlgItemText、SetDlgItemInt、GetDlgItemText、GetDlgItemInt)
2.8.4 获取下一个TAB控件(GetNextDlgTabItem)
2.8.5 对话框过程(DefDlgProc、DialogProc)
2.8.6 对话框坐标和屏幕坐标间的转换(MapDialogRect)
2.8.7 撤销对话框(EndDialog)
2.9 其他
2.9.1 查找窗口(FindWindow、FindWindowEx)
2.9.2 设置窗口Z坐标(BringWindowToTop)
2.9.3 确定窗口属性(IsWindow、IsWindowUnicode)
2.9.4 设置和获取激活态窗口(SetActiveWindow、GetActiveWindow)
2.9.5 窗口闪烁(FlashWindow、FlashWindowEx)
2.9.6 获取指定点处的窗口(WindowFromPoint)
2.9.7 遍历线程所有窗口(EnumThreadWindows、EnumThreadWndProc)
第3章 设备上下文(DC)
3.1 DC简介
3.2 DC的获取和撤销
3.2.1 创建DC(CreateDC、CreateCompatibleDc)
3.2.2 撤销DC(ReleaseDC、DeleteDC)
3.2.3 获得窗口DC(GetWindowDC、GetDC、GetDCEx)
3.2.4 保存和恢复DC(SaveDC、RestoreDC)
3.3 设置和获取DC的各种属性
3.3.1 获得DC起始点坐标(GetDCOrgEx)
3.3.2 设置显示配置(ChangeDisplaySettings、ChangeDisplaySettingsEx)
3.3.3 遍历显示设备和其配置(EnumDisplayDevices、EnumDisplaySettings)
3.3.4 设置和获取DC画刷颜色(SetDCBrushColor、GetDCBrushColor)
3.3.5 设置和获取DC画笔颜色(SetDCPenColor、GetDCPenColor)
3.3.6 设置和获取DC中各种对象(SelectObject、GetCurrentObject)
3.3.7 获取DC中对象的信息(GetObject、GetObjectType、GetStockObject)
3.4 区域操作
3.4.1 新建椭圆区域(CreateEllipticRgn、CreateEllipticRgnlndirect)
3.4.2 新建多边形区域(CreatePolygonRgn、CreatePolyPolygonRgn)
3.4.3 新建矩形区域(CreateRectRgn、CreateRectRgnlndirect)
3.4.4 新建圆矩形区域(CreateRoundRectRgn)
3.4.5 区域之间的操作(EqualRgn、ExcludeUpdateRgn)
3.4.6 区域上绘图操作(FillRgn、FrameRgn、InvertRgn、PaintRgn)
3.5 裁剪操作
3.5.1 设置和获取裁剪区域(SelectClipRgn、SelectClipPath、GetClipRgn、ExtSelectClipRgn)
3.5.2 裁剪区域间的运算(ExcludeClipRect、IntersectClipRect、OffsetClipRgn)
3.6 坐标变换
3.6.1 客户区坐标与屏幕坐标的变换(ClientToScreen、ScreenToClient)
3.6.2 设备坐标与逻辑坐标的变换(DPtoLP、LPtoDP)
3.6.3 窗口间的坐标变换(MapWindowPoints)
3.7 颜色和调色板
3.7.1 创建新调色板(CreatePalette)
3.7.2 启用调色板(SelectPalette、RealizePalette)
3.7.3 设置和获取调色板颜色条目(SetPaletteEntries、GetPaletteEntries)
3.7.4 设置系统调色板的工作方式(SetSystemPaletteUse)
3.7.5 设置和获取颜色调整(SetColorAdjutstment、GetColorAdjustment)
3.8 其他
3.8.1 滚动窗口(ScrollDC)
3.8.2 偏移操作(OffsetRect、OffsetRgn)
3.8.3 点、矩形和区域的关系(PtInRegion、PtVisible、RectInRegion、RectVisible)
3.8.4 缩放视口和窗口大小(ScaleViewportExtEx、ScaleWindowExtEx)
3.8.5 由给定DC获取相联系的窗口(WindowFromDC)
3.8.6 获取特定设备的信息(GetDeviceCaps)
3.8.7 撤销DC中的对象(DeleteObject)
第4章 绘图函数
4.1 基本画图函数
4.1.1 点(SetPixel、SetPixelV、GetPixel)
4.1.2 线(LineTo、LineDDA、LineDDAProc、MoveToEx、Polyline、PolylineTo)
4.1.3 曲线(PolyBezier、PolyBezierTo、PolyDraw)
4.1.4 弧(AngleArc、Arc、ArcTo、SetArcDirection、GetArcDirection)
4.1.5 椭圆(Ellipse)
4.1.6 弦(Chord)
4.1.7 矩形(Rectangle、Roundrect、DrawEdge、DrawFocusRect、FillRect)
4.1.8 多边形(Polygon、PolyPolygon、PolyPolyline)
4.1.9 饼图(Pie)
4.2 路径相关函数
4.2.1 启动和终止路径绘图(BeginPath、EndPath)
4.2.2 曲线到直线(FlattenPath)
4.2.3 填充路径(FillPath、StrokeAndFillPath)
4.2.4 边界处理(StrokePath、WidenPath)
4.2.5 封闭路径(CloseFigure)
4.2.6 获取路径区域(PathToRegion)
4.2.7 获取路径(GetPath)
4.2.8 撤销路径(AbortPath)
4.3 处理DC对象
4.3.1 新建画笔(CreatePen、CreatePenIndirect、ExtCreatePen)
4.3.2 新建画刷(CreateBrushIndirect、CreateHatchBrush、CreateDIBPattrnBrushPt、CreatePatternBrush、CreateSolidBrush、GetSysColorBrush)
4.3.3 设置和获取背景颜色和模式(GetBkColor、GetBkMode、SetBkColor、SetBkMode)
4.4 图元文件
4.4.1 创建图元文件(CreateEnhMetaFile、CreateMetaFile)
4.4.2 复制图元文件(CopyEnhMetaFile、CopyMetaFile)
4.4.3 打开图元文件(GetEnhMetaFile)
4.4.4 关闭图元文件(CloseEnhMetaFile、CloseMetaFile)
4.4.5 撤销图元文件(DeleteEnhMetaFile、DeleteMetaFile)
4.4.6 绘制图元文件(PlayEnhMetaFile)
4.5 其他
4.5.1 启动和终止绘图(BeginPaint、EndPaint)
4.5.2 获取需更新区域(GetUpdateRect、GetUpdateRgn)
4.5.3 绘图操作生效(InvalidateRect、InvalidateRgn、ValidateRect、ValidateRgn)
4.5.4 设置和获取最大绘图缓冲(GdiSetBatchLimit、GdiGetBatchLimit)
4.5.5 刷新缓冲(GdiFlush)
4.5.6 设置和获取窗口可绘图区域(SetWindowRgn、GetWindowRgn)
4.5.7 禁止在窗口绘图(LockWindowUpdate)
4.5.8 绘制桌面(PaintDesktop)
4.5.9 更新窗口(RedrawWindow)
4.5.10 撤销绘图操作(CanceIDC)
4.5.11 描绘标准控件(DrawFrameControl)
4.5.12 设定画图效果(DrawState、DrawStateProc)
4.5.13 设置和获取系统颜色(SetSysColors、GetSysColor)
4.5.14 画矩形边框(FrameRect)
4.5.15 矩形框颜色反转(InvertRect)
第5章 位图和图标
5.1 位图和图标简介
5.2 创建和撤销位图、图标
5.2.1 创建位图(CreateBitmap、CreateBitampIndirect、CreateCompatible、Bitmap、CreateDIBitmap、CreateDIBSection、LoadBitmap、LoadImage)
5.2.2 创建图标(CreateIcon、LoadIcon、LoadCursorFromFile)
5.2.3 撤销图标(DestoryIcon)
5.3 设置和获得位图和图标的各种属性
5.3.1 设置和获取位图的位数据(SetBitmapBits、GetBitmapBits)
5.3.2 设置和获取DIB(SetDIBits、GetDIBits)
5.3.3 设置和获取DIB颜色表(SetDIBColorTable、GetDIBColorTable)
5.3.4 设置和获取位图的大小(GetBitmapDimensionEx、SetBitmapDimension Ex)
5.3.5 获取图标信息(GetIconInfo)
5.4 位块操作
5.4.1 各种位块操作方式(BitBlt、PatBlt、PlgBlt、StretchBlt、MaskBlt、TransparentBlt)
5.4.2 设置和获取位操作模式(SetROP2、GetROP2、SetStretchBltMode、GetStretchBltMode)
5.5 其他
5.5.1 复制位图和图标(CopyImage、CopyIcon)
5.5.2 从文件中搜寻图标(ExtractIcon、ExtractIconEx、ExtractAssociatedIcon)
5.5.3 显示图标(DrawIcon、DrawIconEx)
第6章 菜单处理
6.1 菜单的简单操作
6.1.1 生成新菜单(CreateMenu、CreatePopupMenu)
6.1.2 装载菜单(LoadMenu、LoadMenuIndirect)
6.1.3 撤销菜单(DestoryMenu、DeleteMenu、RemoveMenu)
6.1.4 获取菜单(GetMenu、GetSubMenu、GetSystemMenu)
6.1.5 增添菜单(AppendMenu)
6.2 菜单项处理
6.2.1 设置和获取菜单项信息(SetMenuItemlnfo、GetMenuItemInfo)
6.2.2 设置和获取缺省菜单项(SetMenuDefautlItem、GetMenuDefaultItem)
6.2.3 获取菜单项的ID(GetMenuItemID)
6.2.4 获取菜单项数(GetMenuItemCount)
6.2.5 获取菜单项的范围大小(GetMenuItemRect)
6.2.6 高亮显示菜单项(HiliteMenuItem)
6.2.7 菜单项属性(CheckMenuItem、EnableMenuItem、CheckMenuRadioltem)
6.2.8 添加菜单项(InsertMenuItem)
6.2.9 获取某点处的菜单项(MenuItemFromPoint)
6.3 其他
6.3.1 设置窗口的菜单(SetMenu)
6.3.2 判定句柄是否指向菜单(IsMenu)
6.3.3 上下文菜单(TrackPopupMenu、TrackPopupMenuEx)
6.3.4 显示菜单条(DrawMenuBar)
6.3.5 图形菜单项(SetMenuItemBitmaps)
第7章 内存处理
7.1 内存管理函数
7.1.1 获取内存当前状态信息(GlobalMemoryStatus、GlobalMemoryStatusEx)
7.1.2 复制内存块(CopyMemory)
7.1.3 移动内存块(MoveMemory)
7.1.4 使用一个值填充内存块(FillMemory)
7.1.5 用O填充内存块(ZeroMemory、SecureZeroMemory)
7.1.6 检查指定内存块的操作权(IsBadCodePtr、IsBadReadPtr、IsBadWritePtr、IsBadStringPtr)
7.2 全局内存管理函数
7.2.1 全局内存的分配和释放(GlobalAlloc、GlobalReAlloc、GlobalFree、GlobalDiscard)
7.2.2 获取全局内存的句柄(GlobalHandle)
7.2.3 获取指定全局内存块大小(GlobalSize)
7.2.4 锁定和解锁全局内存(GlobalLock、GlobalUnlock)
7.3 本地内存管理函数
7.3.1 本地内存的分配和释放(LocalAlloc、LocalReAlloc、LocalFree、LocalDiscard)
7.3.2 获取本地内存的句柄(LocalHandle)
7.3.3 获取指定本地内存块大小(LocalSize)
7.3.4 锁定和解锁本地内存(LocalLock、LocalUnlock)
7.4 堆函数
7.4.1 获得当前进程的堆(GetProcessHeap、GetProcessHeaps)
7.4.2 创建和释放堆(HeapCreate、HeapDestroy)
7.4.3 在堆中分配和释放内存(HeapAlloc、HeapReAlloc、HeapFree)
7.4.4 获得指定堆中内存块的大小(HeapSize)
7.4.5 试图合并堆内相邻的自由内存块(HeapCompact)
7.4.6 检查堆(HeapValidate)
7.4.7 枚举指定堆中的内存块(HeapWalk)
7.4.8 锁定和释放堆(HeapLock、HeapUnlock)
7.5 虚拟内存管理
7.5.1 虚拟内存的分配和释放(VirtualAlloc、VirtualAllocEx、VirtualFree、VirtualFreeEx)
7.5.2 改变虚拟内存区域保护规范(VirtualProtect、VirtualProtectEx)
7.5.3 锁定和解锁指定区域的虚拟内存(VirtualLock、VirtualUnlock)
第8章 文件处理
8.1 创建、读写和撤销文件
8.1.1 创建文件(CreateFile、icreat、GetTempFileName)
8.1.2 重新打开文件(ReOpenFile)
8.1.3 设置文件读写位置(SetFilePointer、llseek、lseek)
8.1.4 写入文件(WriteFile、lwrite、hwirte)
8.1.5 异步写入文件(WriteFileEx、FileIOCompletionRoutine)
8.1.6 读入文件(ReadFile、_lread、_hread)
8.1.7 异步读入文件(ReadFileEx)
8.1.8 复制文件(CopyFile、CopyFileEx、CopyProgressRoutine)
8.1.9 更改文件名(MoveFile、MoveFileEx)
8.1.10 关闭文件(CloseHandle、_lclose)
8.1.11 删除文件(DeleteFile)
8.2 设置和获得文件的各种信息
8.2.1 获取文件大小(GetFileSize、GetFileSizeEx)
8.2.2 获取文件类型(GetFileType)
8.2.3 设置和获取文件时间信息(SetFileTime、GetFileTime)
8.2.4 获取文件版本信息(GetFileVersionInfo、GetFileVersionInfoSize、VerQueryValue)
8.2.5 是否可执行文件(GetBinaryType)
8.2.6 长文件名和短文件名的转换(GetFullPathName、GetShortPathName)
8.2.7 由文件句柄获取文件信息(GetFileInformationByHandle)
8.2.8 设置文件结束标志(SetEndOfFile)
8.2.9 设置和获取文件属性(SetFileAttributes、GetFileAttributes、GetFileAttributesEx)
8.3 目录处理
8.3.1 创建新目录(CreateDirectory、CreateDirectoryEx)
8.3.2 删除目录(RemoveDirectory)
8.3.3 获取系统路径(GetSystemDirectory)
8.3.4 获取临时路径(GetTempPath)
8.3.5 获取Windows完整目录(GetWindowsDirectory)
8.3.6 设置和获取当前目录(SetCurrentDirectory、GetCurrentDirectory)
8.4 文件查找
8.4.1 查找第一个文件(FindFirstFile、FindFirstFileEx)
8.4.2 查找下一个文件(FindNextFile)
8.4.3 查找指定文件(SearchPath)
8.4.4 查找结束(FindClose)
8.5 文件夹改变
8.5.1 查找第一个文件夹改变(FindFirstChangeNotifycation)
8.5.2 查找下一个文件(FindNextChangeNotifycation)
8.5.3 结束查找文件夹改变(FindCloseChangeNotifycation)
8.5.4 获得文件夹改变信息(ReadDirectoryChangesW)
8.6 磁盘卷查找
8.6.1 查找第一个卷(FindFirstVolume)
8.6.2 查找下一个卷(FindNextVolume)
8.6.3 查找卷结束(FindVolumeClose)
8.7 磁盘信息
8.7.1 获取可用逻辑驱动器(GetLogicalDrives)
8.7.2 获取可用逻辑驱动器信息(GetLogicalDriveStrings)
8.7.3 设置和获取卷标信息(SetVolumeLabel、GetVolumeInformation)
8.7.4 获取磁盘空闲空间(GetDiskFreeSpace、GetDiskFreeSpaceEx)
8.7.5 获取磁盘类型(GetDriveType)
8.8 其他
8.8.1 设置和获取字符集(SetFileApisToANSI、SetFileApisToOEM、AreFileApisANSI)
8.8.2 联系文件和I/O端口(CreateIoCompletionPort、PostQueuedcompletion Status、GetQueuedCompletionStatus)
8.8.3 更新文件缓冲区(FlushFileBuffers)
8.8.4 加锁和解锁文件(LockFile、LockFileEx、UnlockFile、UnlockFileEx)
8.8.5 比较文件时间信息(CompareFileTime)
8.8.6 DOS时间转换为Win32时间(DosDateTimeToFileTime)
8.8.7 Win32时间转换为Dos时间(FileTimeToDosDateTime)
8.8.8 Win32时间转换本地时间(FileTimeToLocalFileTime)
第9章 处理文本和字体
9.1 文本
9.1.1 显示文本(DrawText、DrawTextEx、TextOut、ExTextOut、TabbedTextOut、GrayString、OutputProc、PolyTextOut)
9.1.2 设置和获取文本属性(SetTextAlign、GetTextAlign、SetTextColor、GetTextColor)
9.1.3 调整和获取字符间距(SetTextCharacterExtra、GetKemingPairs)
9.1.4 获得字符串的宽和高(GetTextExtentPoint32、GetTabbedTextExtent)
9.1.5 获取字符串的信息(GetCharacterPlacement)
9.1.6 调整字符串(SetTextJustification)
9.2 字体
9.2.1 创建新字体(CreateFont、CreateFontIndirect、CreateScalableFontResource)
9.2.2 在系统中添加和删除字体(AddFontResource、RemoveFontResource)
9.2.3 获取字体的宽度(GetCharABCWidths、GetCharWidth、GetCharWidth32、GetCharWidthFloat、GetCharaABCWidthsFloat)
9.2.4 获取字体的各种信息(GetTextMetric、GetFontLanguageInfo)
9.2.5 字体的宽高比(GetAspectRatioFilterEx、SetMapperFlags)
9.2.6 获取字体的字型名(GetTextFace)
9.2.7 遍历系统字体(EnumFontFamiliesEx、EnumFontFamiExProc)
第10章 硬件和系统
10.1 键盘
10.1.1 设置和获取键盘布局(ActivateKeyboardLayout、GetKeyboardLayout、GetKey boardLayoutList、GetKeyboardLayoutName)
10.1.2 装载和卸载键盘布局(LoadKeyBoardLayout、UnloadKeyBoardLayout)
10.1.3 获得和设置键盘状态(GetKeyboardState、SetKeyboardstate)
10.1.4 获得键盘类型(GetKeyboardType)
10.1.5 获得按键名(GetKeyNameText)
10.1.6 获得按键状态(GetKeyState、GetAsyncKeyState)
10.1.7 虚拟按键到扫描码(MapVirtualKey、MapVirtualKeyEx)
10.1.8 虚拟按键到ASCII码(ToAscii、ToAsciiEx)
10.1.9 虚拟按键到Unicode(ToUnicode、ToUnicodeEx)
10.1.10 字符到虚拟按键(VkKeyScan、VkKeyScanEx)
10.1.11 注册和撤销系统热键(RegisterHotKey、UnregisterHotKey)
10.1.12 插入键盘事件(SendInput、keybd event)
10.2 鼠标
10.2.1 获得鼠标输入点序列(GetMouseMovePoints)
10.2.2 获得和设置双击间隔(GetDoubleClickTime、SetDoubleClickTime)
10.2.3 鼠标左右键设置(SwapMouseButton)
10.2.4 鼠标捕获和释放(SetCapture、GetCapture、ReleaseCapture)
10.2.5 捕获离开和滑过事件(TrackMouseEvent)
10.2.6 插入鼠标事件(mouse event)
10.3 光标
10.3.1 新建和撤销光标(CreateCursor、LoadCursorFromFile、DestroyCursor)
10.3.2 设置和获取光标(SetCursor、GetCursor)
10.3.3 设置和获取光标位置(SetCursorPos、GetCursorPos)
10.3.4 设置和获取光标活动范围(ClipCursor、GetClipCursor)
10.3.5 显示光标(ShowCursor)
10.3.6 设置系统光标(SetSystemCursor)
10.4 时钟
10.4.1 设置和获取系统时间(SetSystemTimae、GetSystemTime、GetSystemTimeAsFileTime)
10.4.2 设置和获取当地时间(SetLocAltime、GetLocAltime)
10.4.3 获取自启动以来的微秒数(GetTickCount)
10.4.4 获取和设置系统调整时间(GetSystemTimeAdjustment、SetSystemTimeAdjuslment)
10.4.5 设置和获取时区信息(SetTimeZoneInformation、GetTimeZoneInformation)
10.4.6 获取高精度时间(QueryPerformanceCounter、QueryPerformance Frequency)
10.4.7 设置定时器(SetTimer)
10.4.8 设置定时器回调函数(TimerProc)
10.4.9 撤销定时器(KillTimer)
10.5 系统信息
10.5.1 获取系统各种度量信息(GetSystemMetrics)
10.5.2 设置和获取系统参数(SystemParametersInfo
10.5.3 确定处理器的特性(IsProcessorFeaturePresent)
10.5.4 获取和设置计算机名(GetComputerName、SetComputerName)
10.5.5 获取用户名(GetUserName)
10.5.6 获取操作系统版本信息(GetVersionEx)
10.5.7 获取系统信息(GetSystemInfo)
第11章 Windows消息
11.1 消息系统概述
11.2 消息处理
11.2.1 发送消息(SendMessage、SendMessageCaliback、SendNotifyMessage、SendMessageTimeout、PostThreadMessage、PostMessage、PostQutiMessage、BroadcastSystemMessage)
11.2.2 回复消息(ReplyMessage)
11.2.3 获取消息(GetMessage、WaitMessage、PeekMessage)
11.2.4 处理消息(TranslateMessage、DispatchMessage)
11.2.5 获取消息的伴随信息(GetMessagePos、GetMessageTime)
11.2.6 注册新窗口消息(RegisterWindowMessage)
11.3 消息队列
11.3.1 获取队列状态(GetQueueStatus)
11.3.2 获取队列中输入消息状态(GetInputState)
第12章 调试和错误处理
12.1 调试
12.2 错误处理
12.2.1 获取最近的错误代码(GetLastError)
12.2.2 设置最近的错误代码(SetLastError)
12.2.3 设置最近的错误代码(SetLastErrorEx)
12.2.4 致命的应用程序退出(FatalAppExit)
12.2.5 播放简单声音(Beep)
12.2.6 播放特定类型声音(MessageBeep)
12.2.7 格式化错误消息(FormatMessage)
12.3 事件日志
12.3.1 报告日志(RegisterEventSource、DeregisterEventSource、ReportEvent)
12.3.2 读取日志(OpenEventLog、CloseEventLog、ReadEventLog)
12.3.3 查询日志(GetNumberOfEventLogRecords)
12.3.4 清空日志(ClearEventLog)
第13章 远程访问服务
13.1 远程访问服务概述
13.2 远程连接
13.2.1 建立连接(RasDial、RasDailFunc/RasDialFuncl/RasDialFunc2)
13.2.2 关闭连接(RasHangUp)
13.2.3 连接状态通知(RasConnectionNotification)
13.3 连接管理
13.3.1 遍历活动连接(RasEnumConnections)
13.3.2 获取连接状态(RasGetConnectStatus)
13.4 电话簿
13.4.1 添加、修改条目(RasSetEntryProperties)
13.4.2 获取条目属性(RasGetEntryProperties)
13.4.3 重命名条目(RasRenameEntry)
13.4.4 删除条目(RasDeleteEntry)
13.4.5 遍历条目(RasEnumEntries)
13.5 其他
获取特定RAS错误代码的字符串(RasGetErrorString)
第14章 Windows套接字
14.1 WinSock概述
14.2 WinSock DLL
14.2.1 初始化WinSock DLL(WSAStartup)
14.2.2 释放WinSock DLL资源(WSACleanup)
14.3 套接字
14.3.1 创建套接字(socket)
14.3.2 从容关闭套接字(shutdown)
14.3.3 关闭套接字(closesocket)
14.4 服务器端
14.4.1 绑定(bind)
14.4.2 监听(listen)
14.4.3 接受(accept)
14.5 客户端
创建连接(connect)
14.6 数据传输
14.6.1 发送数据(send)
14.6.2 发送数据到(sendto)
14.6.3 接收数据(recv)
14.6.4 接收数据来自(recvfrom)
14.7 套接字地址信息
14.7.1 获取对方的套接字地址信息(getpeemame)
14.7.2 获取本地的套接字地址信息(getsockname)
14.8 其他
获取最近的错误代码(WSAGetLastError)
附录A 数据结构
ABC
BITMAP
BITNMAPCOREHEADER
BITMAPCOREINFO
BITMAPFILEHEADER
BITMAPINFO
BITMAPINFOHEADER
CHOOSECOLOR
CHOOSEFONT
CLIENTCREATESTRUCT
COLORREF
COMPAREITEMSTRUCT
CONSOLE_SCREEN_BUFFER_INFO
CREATESTRUCT
DEBUG_EVENT
DELETEITEMSTRUCT
DLGITEMTEMPLATE
DLGTEMPLATE
DRAWITEMSTRUCT
FILETIME
FINDREPLACE
FIXED
HANDLETABLE
ICONINO
INPUT_RECORD
KERNINGPAIR
LOGBRUSH
LOGFONT
LOGPALETTE
LUID_AND_ATTRIBUTES
MAT2
MDICREATESTRUCT
MEASUREITEMSTRUCT
MENUITEMTEMPLATE
MENUITEMTEMPLATEHEADER
METAFILEPICT
MOUSEHOOKSTRUCT
MSG
MULTIKEYHELP
NEWTEXTMETRIC
OFSTRUCT
OPENFILENAME
OVERLAPPED
PAINTSTRUCT
PALETTEENTRY
PANOSE
POINT
POINTS
PROCESS_INFORMATION
RECT
RGBOUAD
RGBTRIPLE
STARTUPINFO
SYSTEM_INFO
SYSTEMTIME
TEXTMFTRIC
WIN32_FIND_DATA
WNDCLASS
附录B Windows消息
WM_ACTIVATE
WM_ACTIVATEAPP
WM_CANCELMODE
WM_CHAR
WM_CHILDACTIVALTE
WM_CLOSE
WM_COMMAND
WM_COMPACTING
WM_COMPAREITEM
WM_CREATE
WM_CTLCOLORBN
WM_CTLCOLORDLG
WM_CTLCOLORLISTBOX
WM_CTLCOLORSCROLLBAR
WM_CTLCOLORSTATIC
WM_DEADCHAR
WM_DELETEITEM
VW_DESTORY
WM_DEVMODECHANGE
WM_DRAWITEM
WM_DROPFILES
WM_ENABLE
WM_ENTERIDLE
WM_ERASEBKGND
WM_FONTCHANGE
WM_GETDLGCODE
WM_GETFONT
WM_GETHOTKEY
WM_GETMINMAXINFO
WM_GETTEXT
WM_GETTEXTLENGTH
WM_HoTKEY
WM_HSCROLL
WM_ICONERASEKGND
WM_INITDIALOG
WM_INITMENU
WM_INITMENUPOPUP
WM_KEYDOWN
WM_KEYUP
WM_KILLFOCUS
WM_LBUTTONDBLCLK
WM_LBUTTONDOWN
WM_LBUTTONUP
WM_MBUTTONBLCLK
WM_MBUTTONDOWN
WM_MBUTTONUP
WM_MDIACTIVATE
WM_MDICASCADE
WM_MDICREATE
WM_MDIDESTORY
WM_MDIGETACTIVE
WM_MDIICONARRANGE
WM_MDIMAXIMIZE
WM_MDINEXT
WM_MDIRESTORE
WM_MDISETMENU
WM_MDITILE
WM_MEASUREITEM
WM_MENUCHAR
WM_MENUSELECT
WM_MOUSEACTIVE
WM_MOUSEMOVE
WM_MOUSEWHEEL
WM_MOVE
WM_MOVING
WM_NCACTIVATE
WM_NCCALCSIZE
WM_NCCREATE
WM_NCDESTORY
WM_NCHITTEST
WM_NCLBUTTONDBLBLK
WM_NCLBUTTONDOWN
WM_NCLBUTTONUP
WM_NCMBUTTONDBLCLK
WM_NCMBUTTONDOWN
WM_NCMBUTTONUP
WM_NCMOUSEMOVE
WM_NCPAINT
WM_NCRBUTTONDBLCLK
WM_NCRBUTTONDOWN
WM_NCLBUTTONUP
WM_NEXTDLGCTL
WM_NEXTMENU
WM_PAINT
WM_PAINTTICON
WM_PALETTECHANGED
WM_PALETTECHANGING
WM_PARENTNOTIFY
WM_POWER
WM_POWERBROADCAST
WM_QUERYDRAGICON
WM_QUERYNEWPATLETTE
WM_QUERYOPEN
WM_QUIT
WM_RBUTTONTDBLCLK
WM_RBUTTONDOWN
WM_RBUTTONUP
WM_SETCURSOR
WM_SETFOCUS
WM_SETFONT
WM_SETHOTKOY
WM_SETICON
WM_SETREDRAW
WM_SETTEXT
WM_SHOWWINDOW
WM_SIZE
WM_SIZING
WM_STYLECHANGED
WM_STYLECHANGING
WM_SYSCHAR
WM_SYSCOLORCHANGE
WM_SYSCOMMAND
WM_SYSKEYDOWN
WM_SYSKEYUP
WM_TIMECHANGE
WM_TIMER
WM_UNDO
WM_USER
WM_USERCHANGED
WM_VSCROLL
WM_WINDOWPOSCHANGED
WM_WINDOWPOSCHANGING
附录C 类型与宏
COLORREF
HIBYTE
HIWORD
LOBYTE
LOWORD
MAKELONG
max
min
MAKEINTATOM
MAKEINTRESOURCE
MAKELPARAM
MAKELRESULT
MAKEWORD
MAKEWPARAM
PALETTEINDEX
PALETTERGB
RGB
第1章 Windows编程概述
1.1 Win32程序概述
1.2 图形界面编程
1.3 消息传递机制
1.4 Win32API概述
1.5 为什么用API
1.6 如何在程序中调用API函数
1.7 本书示例约定
第2章 窗口处理
2.1 窗口简介
2.2 窗口的创建和撤销
2.2.1 创建普通窗口(CreateWindow、CreateWindowEx)
2.2.2 关闭窗口(CloseWindow)
2.2.3 销毁窗口(DestroyWindow)
2.3 窗口类操作
2.3.1 注册窗口类(RegisterClass、RegisterClassEx)
2.3.2 撤销窗口类(UnregisterClass)
2.3.3 获得窗口类信息(GetClasslnfoEx)
2.3.4 得到指定窗口的窗口类(GetClassName)
2.4 窗口之间的关系
2.4.1 父子关系(SetParent、GetParent、IsChild)
2.4.2 遍历窗口(EnumWindow、EnumWindowProc、EnumChildWindows、EnumChildProc)
2.4.3 获取指定的子窗口(ChildWindowFromPoint、ChildWindowFromPointEx)
2.4.4 获得特定的窗口(GetWindow、GetTopWindow、GetNextWindow、GetDesktopWindow)
2.5 窗口的大小、位置和布局
2.5.1 获取窗口大小(GetWindowRect、GetClientRect)
2.5.2 调整窗口大小(AdjustWindowRect、AdjustWindowRectEx)
2.5.3 设置和获取窗口位置(SetWindowPos)
2.5.4 移动窗口位置(MoveWindow)
2.5.5 设置和获取窗口布局(SetWindowPlacement、GetWindowPlacement)
2.5.6 设置和获得视口坐标起点(SetViewportOrgEx、GetViewportOrgEx)
2.5.7 设置和获取视口坐标范围(SetViewportExtEx、GetViewportExtEx)
2.5.8 设置和获取窗口坐标起点(SetWindowOrgEx、GetWindowOrgEx)
2.5.9 设置和获取窗口坐标范围(SetWindowExtEx、GetWindowExtEx)
2.6 显示窗口
2.6.1 显示单个窗口(ShowWindow)
2.6.2 弹出式窗口(ShowOwnedPopups、GetLastActivePopup)
2.6.3 判断各种显示状态(Islconic、IsWindowVisible、IsZoomed)
2.7 窗口属性
2.7.1 设置和获取窗口名(SetWindowText、GetWindowText、GetWindowTextLength)
2.7.2 设置和获取窗口标记长字(SetWindowLong、GetWindowLong)
2.7.3 设置和获取前台窗口(SetForegroundWindow、GetForegroundWindow)
2.7.4 锁定设置前台窗口(LockSetForegroundWindow)
2.8 对话框
2.8.1 创建对话框(DialogBox、CreateDialog、CreateDialogIndirect、Message Box、MessageBoxEx、MessageBoxlndirect)
2.8.2 获取控件及其ID(GetDlgltem、GetDlgCtrlID)
2.8.3 设置获取控件的显示文本(SetDlgItemText、SetDlgItemInt、GetDlgItemText、GetDlgItemInt)
2.8.4 获取下一个TAB控件(GetNextDlgTabItem)
2.8.5 对话框过程(DefDlgProc、DialogProc)
2.8.6 对话框坐标和屏幕坐标间的转换(MapDialogRect)
2.8.7 撤销对话框(EndDialog)
2.9 其他
2.9.1 查找窗口(FindWindow、FindWindowEx)
2.9.2 设置窗口Z坐标(BringWindowToTop)
2.9.3 确定窗口属性(IsWindow、IsWindowUnicode)
2.9.4 设置和获取激活态窗口(SetActiveWindow、GetActiveWindow)
2.9.5 窗口闪烁(FlashWindow、FlashWindowEx)
2.9.6 获取指定点处的窗口(WindowFromPoint)
2.9.7 遍历线程所有窗口(EnumThreadWindows、EnumThreadWndProc)
第3章 设备上下文(DC)
3.1 DC简介
3.2 DC的获取和撤销
3.2.1 创建DC(CreateDC、CreateCompatibleDc)
3.2.2 撤销DC(ReleaseDC、DeleteDC)
3.2.3 获得窗口DC(GetWindowDC、GetDC、GetDCEx)
3.2.4 保存和恢复DC(SaveDC、RestoreDC)
3.3 设置和获取DC的各种属性
3.3.1 获得DC起始点坐标(GetDCOrgEx)
3.3.2 设置显示配置(ChangeDisplaySettings、ChangeDisplaySettingsEx)
3.3.3 遍历显示设备和其配置(EnumDisplayDevices、EnumDisplaySettings)
3.3.4 设置和获取DC画刷颜色(SetDCBrushColor、GetDCBrushColor)
3.3.5 设置和获取DC画笔颜色(SetDCPenColor、GetDCPenColor)
3.3.6 设置和获取DC中各种对象(SelectObject、GetCurrentObject)
3.3.7 获取DC中对象的信息(GetObject、GetObjectType、GetStockObject)
3.4 区域操作
3.4.1 新建椭圆区域(CreateEllipticRgn、CreateEllipticRgnlndirect)
3.4.2 新建多边形区域(CreatePolygonRgn、CreatePolyPolygonRgn)
3.4.3 新建矩形区域(CreateRectRgn、CreateRectRgnlndirect)
3.4.4 新建圆矩形区域(CreateRoundRectRgn)
3.4.5 区域之间的操作(EqualRgn、ExcludeUpdateRgn)
3.4.6 区域上绘图操作(FillRgn、FrameRgn、InvertRgn、PaintRgn)
3.5 裁剪操作
3.5.1 设置和获取裁剪区域(SelectClipRgn、SelectClipPath、GetClipRgn、ExtSelectClipRgn)
3.5.2 裁剪区域间的运算(ExcludeClipRect、IntersectClipRect、OffsetClipRgn)
3.6 坐标变换
3.6.1 客户区坐标与屏幕坐标的变换(ClientToScreen、ScreenToClient)
3.6.2 设备坐标与逻辑坐标的变换(DPtoLP、LPtoDP)
3.6.3 窗口间的坐标变换(MapWindowPoints)
3.7 颜色和调色板
3.7.1 创建新调色板(CreatePalette)
3.7.2 启用调色板(SelectPalette、RealizePalette)
3.7.3 设置和获取调色板颜色条目(SetPaletteEntries、GetPaletteEntries)
3.7.4 设置系统调色板的工作方式(SetSystemPaletteUse)
3.7.5 设置和获取颜色调整(SetColorAdjutstment、GetColorAdjustment)
3.8 其他
3.8.1 滚动窗口(ScrollDC)
3.8.2 偏移操作(OffsetRect、OffsetRgn)
3.8.3 点、矩形和区域的关系(PtInRegion、PtVisible、RectInRegion、RectVisible)
3.8.4 缩放视口和窗口大小(ScaleViewportExtEx、ScaleWindowExtEx)
3.8.5 由给定DC获取相联系的窗口(WindowFromDC)
3.8.6 获取特定设备的信息(GetDeviceCaps)
3.8.7 撤销DC中的对象(DeleteObject)
第4章 绘图函数
4.1 基本画图函数
4.1.1 点(SetPixel、SetPixelV、GetPixel)
4.1.2 线(LineTo、LineDDA、LineDDAProc、MoveToEx、Polyline、PolylineTo)
4.1.3 曲线(PolyBezier、PolyBezierTo、PolyDraw)
4.1.4 弧(AngleArc、Arc、ArcTo、SetArcDirection、GetArcDirection)
4.1.5 椭圆(Ellipse)
4.1.6 弦(Chord)
4.1.7 矩形(Rectangle、Roundrect、DrawEdge、DrawFocusRect、FillRect)
4.1.8 多边形(Polygon、PolyPolygon、PolyPolyline)
4.1.9 饼图(Pie)
4.2 路径相关函数
4.2.1 启动和终止路径绘图(BeginPath、EndPath)
4.2.2 曲线到直线(FlattenPath)
4.2.3 填充路径(FillPath、StrokeAndFillPath)
4.2.4 边界处理(StrokePath、WidenPath)
4.2.5 封闭路径(CloseFigure)
4.2.6 获取路径区域(PathToRegion)
4.2.7 获取路径(GetPath)
4.2.8 撤销路径(AbortPath)
4.3 处理DC对象
4.3.1 新建画笔(CreatePen、CreatePenIndirect、ExtCreatePen)
4.3.2 新建画刷(CreateBrushIndirect、CreateHatchBrush、CreateDIBPattrnBrushPt、CreatePatternBrush、CreateSolidBrush、GetSysColorBrush)
4.3.3 设置和获取背景颜色和模式(GetBkColor、GetBkMode、SetBkColor、SetBkMode)
4.4 图元文件
4.4.1 创建图元文件(CreateEnhMetaFile、CreateMetaFile)
4.4.2 复制图元文件(CopyEnhMetaFile、CopyMetaFile)
4.4.3 打开图元文件(GetEnhMetaFile)
4.4.4 关闭图元文件(CloseEnhMetaFile、CloseMetaFile)
4.4.5 撤销图元文件(DeleteEnhMetaFile、DeleteMetaFile)
4.4.6 绘制图元文件(PlayEnhMetaFile)
4.5 其他
4.5.1 启动和终止绘图(BeginPaint、EndPaint)
4.5.2 获取需更新区域(GetUpdateRect、GetUpdateRgn)
4.5.3 绘图操作生效(InvalidateRect、InvalidateRgn、ValidateRect、ValidateRgn)
4.5.4 设置和获取最大绘图缓冲(GdiSetBatchLimit、GdiGetBatchLimit)
4.5.5 刷新缓冲(GdiFlush)
4.5.6 设置和获取窗口可绘图区域(SetWindowRgn、GetWindowRgn)
4.5.7 禁止在窗口绘图(LockWindowUpdate)
4.5.8 绘制桌面(PaintDesktop)
4.5.9 更新窗口(RedrawWindow)
4.5.10 撤销绘图操作(CanceIDC)
4.5.11 描绘标准控件(DrawFrameControl)
4.5.12 设定画图效果(DrawState、DrawStateProc)
4.5.13 设置和获取系统颜色(SetSysColors、GetSysColor)
4.5.14 画矩形边框(FrameRect)
4.5.15 矩形框颜色反转(InvertRect)
第5章 位图和图标
5.1 位图和图标简介
5.2 创建和撤销位图、图标
5.2.1 创建位图(CreateBitmap、CreateBitampIndirect、CreateCompatible、Bitmap、CreateDIBitmap、CreateDIBSection、LoadBitmap、LoadImage)
5.2.2 创建图标(CreateIcon、LoadIcon、LoadCursorFromFile)
5.2.3 撤销图标(DestoryIcon)
5.3 设置和获得位图和图标的各种属性
5.3.1 设置和获取位图的位数据(SetBitmapBits、GetBitmapBits)
5.3.2 设置和获取DIB(SetDIBits、GetDIBits)
5.3.3 设置和获取DIB颜色表(SetDIBColorTable、GetDIBColorTable)
5.3.4 设置和获取位图的大小(GetBitmapDimensionEx、SetBitmapDimension Ex)
5.3.5 获取图标信息(GetIconInfo)
5.4 位块操作
5.4.1 各种位块操作方式(BitBlt、PatBlt、PlgBlt、StretchBlt、MaskBlt、TransparentBlt)
5.4.2 设置和获取位操作模式(SetROP2、GetROP2、SetStretchBltMode、GetStretchBltMode)
5.5 其他
5.5.1 复制位图和图标(CopyImage、CopyIcon)
5.5.2 从文件中搜寻图标(ExtractIcon、ExtractIconEx、ExtractAssociatedIcon)
5.5.3 显示图标(DrawIcon、DrawIconEx)
第6章 菜单处理
6.1 菜单的简单操作
6.1.1 生成新菜单(CreateMenu、CreatePopupMenu)
6.1.2 装载菜单(LoadMenu、LoadMenuIndirect)
6.1.3 撤销菜单(DestoryMenu、DeleteMenu、RemoveMenu)
6.1.4 获取菜单(GetMenu、GetSubMenu、GetSystemMenu)
6.1.5 增添菜单(AppendMenu)
6.2 菜单项处理
6.2.1 设置和获取菜单项信息(SetMenuItemlnfo、GetMenuItemInfo)
6.2.2 设置和获取缺省菜单项(SetMenuDefautlItem、GetMenuDefaultItem)
6.2.3 获取菜单项的ID(GetMenuItemID)
6.2.4 获取菜单项数(GetMenuItemCount)
6.2.5 获取菜单项的范围大小(GetMenuItemRect)
6.2.6 高亮显示菜单项(HiliteMenuItem)
6.2.7 菜单项属性(CheckMenuItem、EnableMenuItem、CheckMenuRadioltem)
6.2.8 添加菜单项(InsertMenuItem)
6.2.9 获取某点处的菜单项(MenuItemFromPoint)
6.3 其他
6.3.1 设置窗口的菜单(SetMenu)
6.3.2 判定句柄是否指向菜单(IsMenu)
6.3.3 上下文菜单(TrackPopupMenu、TrackPopupMenuEx)
6.3.4 显示菜单条(DrawMenuBar)
6.3.5 图形菜单项(SetMenuItemBitmaps)
第7章 内存处理
7.1 内存管理函数
7.1.1 获取内存当前状态信息(GlobalMemoryStatus、GlobalMemoryStatusEx)
7.1.2 复制内存块(CopyMemory)
7.1.3 移动内存块(MoveMemory)
7.1.4 使用一个值填充内存块(FillMemory)
7.1.5 用O填充内存块(ZeroMemory、SecureZeroMemory)
7.1.6 检查指定内存块的操作权(IsBadCodePtr、IsBadReadPtr、IsBadWritePtr、IsBadStringPtr)
7.2 全局内存管理函数
7.2.1 全局内存的分配和释放(GlobalAlloc、GlobalReAlloc、GlobalFree、GlobalDiscard)
7.2.2 获取全局内存的句柄(GlobalHandle)
7.2.3 获取指定全局内存块大小(GlobalSize)
7.2.4 锁定和解锁全局内存(GlobalLock、GlobalUnlock)
7.3 本地内存管理函数
7.3.1 本地内存的分配和释放(LocalAlloc、LocalReAlloc、LocalFree、LocalDiscard)
7.3.2 获取本地内存的句柄(LocalHandle)
7.3.3 获取指定本地内存块大小(LocalSize)
7.3.4 锁定和解锁本地内存(LocalLock、LocalUnlock)
7.4 堆函数
7.4.1 获得当前进程的堆(GetProcessHeap、GetProcessHeaps)
7.4.2 创建和释放堆(HeapCreate、HeapDestroy)
7.4.3 在堆中分配和释放内存(HeapAlloc、HeapReAlloc、HeapFree)
7.4.4 获得指定堆中内存块的大小(HeapSize)
7.4.5 试图合并堆内相邻的自由内存块(HeapCompact)
7.4.6 检查堆(HeapValidate)
7.4.7 枚举指定堆中的内存块(HeapWalk)
7.4.8 锁定和释放堆(HeapLock、HeapUnlock)
7.5 虚拟内存管理
7.5.1 虚拟内存的分配和释放(VirtualAlloc、VirtualAllocEx、VirtualFree、VirtualFreeEx)
7.5.2 改变虚拟内存区域保护规范(VirtualProtect、VirtualProtectEx)
7.5.3 锁定和解锁指定区域的虚拟内存(VirtualLock、VirtualUnlock)
第8章 文件处理
8.1 创建、读写和撤销文件
8.1.1 创建文件(CreateFile、icreat、GetTempFileName)
8.1.2 重新打开文件(ReOpenFile)
8.1.3 设置文件读写位置(SetFilePointer、llseek、lseek)
8.1.4 写入文件(WriteFile、lwrite、hwirte)
8.1.5 异步写入文件(WriteFileEx、FileIOCompletionRoutine)
8.1.6 读入文件(ReadFile、_lread、_hread)
8.1.7 异步读入文件(ReadFileEx)
8.1.8 复制文件(CopyFile、CopyFileEx、CopyProgressRoutine)
8.1.9 更改文件名(MoveFile、MoveFileEx)
8.1.10 关闭文件(CloseHandle、_lclose)
8.1.11 删除文件(DeleteFile)
8.2 设置和获得文件的各种信息
8.2.1 获取文件大小(GetFileSize、GetFileSizeEx)
8.2.2 获取文件类型(GetFileType)
8.2.3 设置和获取文件时间信息(SetFileTime、GetFileTime)
8.2.4 获取文件版本信息(GetFileVersionInfo、GetFileVersionInfoSize、VerQueryValue)
8.2.5 是否可执行文件(GetBinaryType)
8.2.6 长文件名和短文件名的转换(GetFullPathName、GetShortPathName)
8.2.7 由文件句柄获取文件信息(GetFileInformationByHandle)
8.2.8 设置文件结束标志(SetEndOfFile)
8.2.9 设置和获取文件属性(SetFileAttributes、GetFileAttributes、GetFileAttributesEx)
8.3 目录处理
8.3.1 创建新目录(CreateDirectory、CreateDirectoryEx)
8.3.2 删除目录(RemoveDirectory)
8.3.3 获取系统路径(GetSystemDirectory)
8.3.4 获取临时路径(GetTempPath)
8.3.5 获取Windows完整目录(GetWindowsDirectory)
8.3.6 设置和获取当前目录(SetCurrentDirectory、GetCurrentDirectory)
8.4 文件查找
8.4.1 查找第一个文件(FindFirstFile、FindFirstFileEx)
8.4.2 查找下一个文件(FindNextFile)
8.4.3 查找指定文件(SearchPath)
8.4.4 查找结束(FindClose)
8.5 文件夹改变
8.5.1 查找第一个文件夹改变(FindFirstChangeNotifycation)
8.5.2 查找下一个文件(FindNextChangeNotifycation)
8.5.3 结束查找文件夹改变(FindCloseChangeNotifycation)
8.5.4 获得文件夹改变信息(ReadDirectoryChangesW)
8.6 磁盘卷查找
8.6.1 查找第一个卷(FindFirstVolume)
8.6.2 查找下一个卷(FindNextVolume)
8.6.3 查找卷结束(FindVolumeClose)
8.7 磁盘信息
8.7.1 获取可用逻辑驱动器(GetLogicalDrives)
8.7.2 获取可用逻辑驱动器信息(GetLogicalDriveStrings)
8.7.3 设置和获取卷标信息(SetVolumeLabel、GetVolumeInformation)
8.7.4 获取磁盘空闲空间(GetDiskFreeSpace、GetDiskFreeSpaceEx)
8.7.5 获取磁盘类型(GetDriveType)
8.8 其他
8.8.1 设置和获取字符集(SetFileApisToANSI、SetFileApisToOEM、AreFileApisANSI)
8.8.2 联系文件和I/O端口(CreateIoCompletionPort、PostQueuedcompletion Status、GetQueuedCompletionStatus)
8.8.3 更新文件缓冲区(FlushFileBuffers)
8.8.4 加锁和解锁文件(LockFile、LockFileEx、UnlockFile、UnlockFileEx)
8.8.5 比较文件时间信息(CompareFileTime)
8.8.6 DOS时间转换为Win32时间(DosDateTimeToFileTime)
8.8.7 Win32时间转换为Dos时间(FileTimeToDosDateTime)
8.8.8 Win32时间转换本地时间(FileTimeToLocalFileTime)
第9章 处理文本和字体
9.1 文本
9.1.1 显示文本(DrawText、DrawTextEx、TextOut、ExTextOut、TabbedTextOut、GrayString、OutputProc、PolyTextOut)
9.1.2 设置和获取文本属性(SetTextAlign、GetTextAlign、SetTextColor、GetTextColor)
9.1.3 调整和获取字符间距(SetTextCharacterExtra、GetKemingPairs)
9.1.4 获得字符串的宽和高(GetTextExtentPoint32、GetTabbedTextExtent)
9.1.5 获取字符串的信息(GetCharacterPlacement)
9.1.6 调整字符串(SetTextJustification)
9.2 字体
9.2.1 创建新字体(CreateFont、CreateFontIndirect、CreateScalableFontResource)
9.2.2 在系统中添加和删除字体(AddFontResource、RemoveFontResource)
9.2.3 获取字体的宽度(GetCharABCWidths、GetCharWidth、GetCharWidth32、GetCharWidthFloat、GetCharaABCWidthsFloat)
9.2.4 获取字体的各种信息(GetTextMetric、GetFontLanguageInfo)
9.2.5 字体的宽高比(GetAspectRatioFilterEx、SetMapperFlags)
9.2.6 获取字体的字型名(GetTextFace)
9.2.7 遍历系统字体(EnumFontFamiliesEx、EnumFontFamiExProc)
第10章 硬件和系统
10.1 键盘
10.1.1 设置和获取键盘布局(ActivateKeyboardLayout、GetKeyboardLayout、GetKey boardLayoutList、GetKeyboardLayoutName)
10.1.2 装载和卸载键盘布局(LoadKeyBoardLayout、UnloadKeyBoardLayout)
10.1.3 获得和设置键盘状态(GetKeyboardState、SetKeyboardstate)
10.1.4 获得键盘类型(GetKeyboardType)
10.1.5 获得按键名(GetKeyNameText)
10.1.6 获得按键状态(GetKeyState、GetAsyncKeyState)
10.1.7 虚拟按键到扫描码(MapVirtualKey、MapVirtualKeyEx)
10.1.8 虚拟按键到ASCII码(ToAscii、ToAsciiEx)
10.1.9 虚拟按键到Unicode(ToUnicode、ToUnicodeEx)
10.1.10 字符到虚拟按键(VkKeyScan、VkKeyScanEx)
10.1.11 注册和撤销系统热键(RegisterHotKey、UnregisterHotKey)
10.1.12 插入键盘事件(SendInput、keybd event)
10.2 鼠标
10.2.1 获得鼠标输入点序列(GetMouseMovePoints)
10.2.2 获得和设置双击间隔(GetDoubleClickTime、SetDoubleClickTime)
10.2.3 鼠标左右键设置(SwapMouseButton)
10.2.4 鼠标捕获和释放(SetCapture、GetCapture、ReleaseCapture)
10.2.5 捕获离开和滑过事件(TrackMouseEvent)
10.2.6 插入鼠标事件(mouse event)
10.3 光标
10.3.1 新建和撤销光标(CreateCursor、LoadCursorFromFile、DestroyCursor)
10.3.2 设置和获取光标(SetCursor、GetCursor)
10.3.3 设置和获取光标位置(SetCursorPos、GetCursorPos)
10.3.4 设置和获取光标活动范围(ClipCursor、GetClipCursor)
10.3.5 显示光标(ShowCursor)
10.3.6 设置系统光标(SetSystemCursor)
10.4 时钟
10.4.1 设置和获取系统时间(SetSystemTimae、GetSystemTime、GetSystemTimeAsFileTime)
10.4.2 设置和获取当地时间(SetLocAltime、GetLocAltime)
10.4.3 获取自启动以来的微秒数(GetTickCount)
10.4.4 获取和设置系统调整时间(GetSystemTimeAdjustment、SetSystemTimeAdjuslment)
10.4.5 设置和获取时区信息(SetTimeZoneInformation、GetTimeZoneInformation)
10.4.6 获取高精度时间(QueryPerformanceCounter、QueryPerformance Frequency)
10.4.7 设置定时器(SetTimer)
10.4.8 设置定时器回调函数(TimerProc)
10.4.9 撤销定时器(KillTimer)
10.5 系统信息
10.5.1 获取系统各种度量信息(GetSystemMetrics)
10.5.2 设置和获取系统参数(SystemParametersInfo
10.5.3 确定处理器的特性(IsProcessorFeaturePresent)
10.5.4 获取和设置计算机名(GetComputerName、SetComputerName)
10.5.5 获取用户名(GetUserName)
10.5.6 获取操作系统版本信息(GetVersionEx)
10.5.7 获取系统信息(GetSystemInfo)
第11章 Windows消息
11.1 消息系统概述
11.2 消息处理
11.2.1 发送消息(SendMessage、SendMessageCaliback、SendNotifyMessage、SendMessageTimeout、PostThreadMessage、PostMessage、PostQutiMessage、BroadcastSystemMessage)
11.2.2 回复消息(ReplyMessage)
11.2.3 获取消息(GetMessage、WaitMessage、PeekMessage)
11.2.4 处理消息(TranslateMessage、DispatchMessage)
11.2.5 获取消息的伴随信息(GetMessagePos、GetMessageTime)
11.2.6 注册新窗口消息(RegisterWindowMessage)
11.3 消息队列
11.3.1 获取队列状态(GetQueueStatus)
11.3.2 获取队列中输入消息状态(GetInputState)
第12章 调试和错误处理
12.1 调试
12.2 错误处理
12.2.1 获取最近的错误代码(GetLastError)
12.2.2 设置最近的错误代码(SetLastError)
12.2.3 设置最近的错误代码(SetLastErrorEx)
12.2.4 致命的应用程序退出(FatalAppExit)
12.2.5 播放简单声音(Beep)
12.2.6 播放特定类型声音(MessageBeep)
12.2.7 格式化错误消息(FormatMessage)
12.3 事件日志
12.3.1 报告日志(RegisterEventSource、DeregisterEventSource、ReportEvent)
12.3.2 读取日志(OpenEventLog、CloseEventLog、ReadEventLog)
12.3.3 查询日志(GetNumberOfEventLogRecords)
12.3.4 清空日志(ClearEventLog)
第13章 远程访问服务
13.1 远程访问服务概述
13.2 远程连接
13.2.1 建立连接(RasDial、RasDailFunc/RasDialFuncl/RasDialFunc2)
13.2.2 关闭连接(RasHangUp)
13.2.3 连接状态通知(RasConnectionNotification)
13.3 连接管理
13.3.1 遍历活动连接(RasEnumConnections)
13.3.2 获取连接状态(RasGetConnectStatus)
13.4 电话簿
13.4.1 添加、修改条目(RasSetEntryProperties)
13.4.2 获取条目属性(RasGetEntryProperties)
13.4.3 重命名条目(RasRenameEntry)
13.4.4 删除条目(RasDeleteEntry)
13.4.5 遍历条目(RasEnumEntries)
13.5 其他
获取特定RAS错误代码的字符串(RasGetErrorString)
第14章 Windows套接字
14.1 WinSock概述
14.2 WinSock DLL
14.2.1 初始化WinSock DLL(WSAStartup)
14.2.2 释放WinSock DLL资源(WSACleanup)
14.3 套接字
14.3.1 创建套接字(socket)
14.3.2 从容关闭套接字(shutdown)
14.3.3 关闭套接字(closesocket)
14.4 服务器端
14.4.1 绑定(bind)
14.4.2 监听(listen)
14.4.3 接受(accept)
14.5 客户端
创建连接(connect)
14.6 数据传输
14.6.1 发送数据(send)
14.6.2 发送数据到(sendto)
14.6.3 接收数据(recv)
14.6.4 接收数据来自(recvfrom)
14.7 套接字地址信息
14.7.1 获取对方的套接字地址信息(getpeemame)
14.7.2 获取本地的套接字地址信息(getsockname)
14.8 其他
获取最近的错误代码(WSAGetLastError)
附录A 数据结构
ABC
BITMAP
BITNMAPCOREHEADER
BITMAPCOREINFO
BITMAPFILEHEADER
BITMAPINFO
BITMAPINFOHEADER
CHOOSECOLOR
CHOOSEFONT
CLIENTCREATESTRUCT
COLORREF
COMPAREITEMSTRUCT
CONSOLE_SCREEN_BUFFER_INFO
CREATESTRUCT
DEBUG_EVENT
DELETEITEMSTRUCT
DLGITEMTEMPLATE
DLGTEMPLATE
DRAWITEMSTRUCT
FILETIME
FINDREPLACE
FIXED
HANDLETABLE
ICONINO
INPUT_RECORD
KERNINGPAIR
LOGBRUSH
LOGFONT
LOGPALETTE
LUID_AND_ATTRIBUTES
MAT2
MDICREATESTRUCT
MEASUREITEMSTRUCT
MENUITEMTEMPLATE
MENUITEMTEMPLATEHEADER
METAFILEPICT
MOUSEHOOKSTRUCT
MSG
MULTIKEYHELP
NEWTEXTMETRIC
OFSTRUCT
OPENFILENAME
OVERLAPPED
PAINTSTRUCT
PALETTEENTRY
PANOSE
POINT
POINTS
PROCESS_INFORMATION
RECT
RGBOUAD
RGBTRIPLE
STARTUPINFO
SYSTEM_INFO
SYSTEMTIME
TEXTMFTRIC
WIN32_FIND_DATA
WNDCLASS
附录B Windows消息
WM_ACTIVATE
WM_ACTIVATEAPP
WM_CANCELMODE
WM_CHAR
WM_CHILDACTIVALTE
WM_CLOSE
WM_COMMAND
WM_COMPACTING
WM_COMPAREITEM
WM_CREATE
WM_CTLCOLORBN
WM_CTLCOLORDLG
WM_CTLCOLORLISTBOX
WM_CTLCOLORSCROLLBAR
WM_CTLCOLORSTATIC
WM_DEADCHAR
WM_DELETEITEM
VW_DESTORY
WM_DEVMODECHANGE
WM_DRAWITEM
WM_DROPFILES
WM_ENABLE
WM_ENTERIDLE
WM_ERASEBKGND
WM_FONTCHANGE
WM_GETDLGCODE
WM_GETFONT
WM_GETHOTKEY
WM_GETMINMAXINFO
WM_GETTEXT
WM_GETTEXTLENGTH
WM_HoTKEY
WM_HSCROLL
WM_ICONERASEKGND
WM_INITDIALOG
WM_INITMENU
WM_INITMENUPOPUP
WM_KEYDOWN
WM_KEYUP
WM_KILLFOCUS
WM_LBUTTONDBLCLK
WM_LBUTTONDOWN
WM_LBUTTONUP
WM_MBUTTONBLCLK
WM_MBUTTONDOWN
WM_MBUTTONUP
WM_MDIACTIVATE
WM_MDICASCADE
WM_MDICREATE
WM_MDIDESTORY
WM_MDIGETACTIVE
WM_MDIICONARRANGE
WM_MDIMAXIMIZE
WM_MDINEXT
WM_MDIRESTORE
WM_MDISETMENU
WM_MDITILE
WM_MEASUREITEM
WM_MENUCHAR
WM_MENUSELECT
WM_MOUSEACTIVE
WM_MOUSEMOVE
WM_MOUSEWHEEL
WM_MOVE
WM_MOVING
WM_NCACTIVATE
WM_NCCALCSIZE
WM_NCCREATE
WM_NCDESTORY
WM_NCHITTEST
WM_NCLBUTTONDBLBLK
WM_NCLBUTTONDOWN
WM_NCLBUTTONUP
WM_NCMBUTTONDBLCLK
WM_NCMBUTTONDOWN
WM_NCMBUTTONUP
WM_NCMOUSEMOVE
WM_NCPAINT
WM_NCRBUTTONDBLCLK
WM_NCRBUTTONDOWN
WM_NCLBUTTONUP
WM_NEXTDLGCTL
WM_NEXTMENU
WM_PAINT
WM_PAINTTICON
WM_PALETTECHANGED
WM_PALETTECHANGING
WM_PARENTNOTIFY
WM_POWER
WM_POWERBROADCAST
WM_QUERYDRAGICON
WM_QUERYNEWPATLETTE
WM_QUERYOPEN
WM_QUIT
WM_RBUTTONTDBLCLK
WM_RBUTTONDOWN
WM_RBUTTONUP
WM_SETCURSOR
WM_SETFOCUS
WM_SETFONT
WM_SETHOTKOY
WM_SETICON
WM_SETREDRAW
WM_SETTEXT
WM_SHOWWINDOW
WM_SIZE
WM_SIZING
WM_STYLECHANGED
WM_STYLECHANGING
WM_SYSCHAR
WM_SYSCOLORCHANGE
WM_SYSCOMMAND
WM_SYSKEYDOWN
WM_SYSKEYUP
WM_TIMECHANGE
WM_TIMER
WM_UNDO
WM_USER
WM_USERCHANGED
WM_VSCROLL
WM_WINDOWPOSCHANGED
WM_WINDOWPOSCHANGING
附录C 类型与宏
COLORREF
HIBYTE
HIWORD
LOBYTE
LOWORD
MAKELONG
max
min
MAKEINTATOM
MAKEINTRESOURCE
MAKELPARAM
MAKELRESULT
MAKEWORD
MAKEWPARAM
PALETTEINDEX
PALETTERGB
RGB
Windows API程序设计参考大全
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!