Win32 API 简洁版
🧱 Win32 API 函数速查表(常用高频版)
一、窗口管理函数(User32.dll)
| 函数名 | 功能简介 | 主要参数说明 |
|---|---|---|
| CreateWindowEx(dwExStyle, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) | 创建窗口或控件(如按钮、编辑框) | dwExStyle 扩展样式;lpClassName 窗口类名;lpWindowName 标题;dwStyle 样式;x, y, nWidth, nHeight 位置和大小;hWndParent 父窗口句柄 |
| ShowWindow(hWnd, nCmdShow) | 显示或隐藏窗口 | hWnd 窗口句柄;nCmdShow 显示模式(SW_SHOW, SW_HIDE, SW_MINIMIZE) |
| UpdateWindow(hWnd) | 强制重绘窗口 | hWnd 窗口句柄 |
| DestroyWindow(hWnd) | 销毁窗口并释放资源 | hWnd 窗口句柄 |
| SetWindowText(hWnd, lpString) | 设置窗口标题文本 | lpString 新标题文本 |
| GetWindowText(hWnd, lpString, nMaxCount) | 获取窗口标题文本 | lpString 缓冲区;nMaxCount 最大字符数 |
| EnableWindow(hWnd, bEnable) | 启用或禁用窗口 | bEnable TRUE 启用,FALSE 禁用 |
| SetFocus(hWnd) | 设置键盘焦点到指定窗口 | hWnd 窗口句柄 |
| GetFocus() | 获取当前拥有键盘焦点的窗口 | — |
| MoveWindow(hWnd, X, Y, nWidth, nHeight, bRepaint) | 移动并调整窗口大小 | X,Y 坐标;bRepaint 是否重绘 |
二、消息与事件函数(User32.dll)
| 函数名 | 功能简介 | 主要参数说明 |
|---|---|---|
| GetMessage(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax) | 从消息队列中检索消息(阻塞) | lpMsg 消息结构体指针 |
| PeekMessage(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax, wRemoveMsg) | 非阻塞检索消息 | wRemoveMsg 是否移除消息 |
| TranslateMessage(lpMsg) | 将虚拟键消息转换为字符消息 | lpMsg 消息结构体 |
| DispatchMessage(lpMsg) | 分发消息到窗口过程 | lpMsg 消息结构体 |
| SendMessage(hWnd, Msg, wParam, lParam) | 向窗口发送消息(同步) | 常用 WM_COMMAND, WM_SETTEXT 等 |
| PostMessage(hWnd, Msg, wParam, lParam) | 向窗口发送消息(异步) | 同上 |
| PostQuitMessage(nExitCode) | 结束消息循环 | nExitCode 退出代码 |
| DefWindowProc(hWnd, Msg, wParam, lParam) | 默认窗口消息处理 | 所有未处理的消息调用此函数 |
三、GDI 图形绘制函数(Gdi32.dll)
| 函数名 | 功能简介 | 主要参数说明 |
|---|---|---|
| BeginPaint(hWnd, lpPaint) | 开始绘制窗口客户区 | lpPaint PAINTSTRUCT 结构 |
| EndPaint(hWnd, lpPaint) | 结束绘制窗口客户区 | — |
| GetDC(hWnd) | 获取设备上下文句柄 | hWnd 窗口句柄 |
| ReleaseDC(hWnd, hDC) | 释放设备上下文 | hDC 设备句柄 |
| MoveToEx(hDC, X, Y, lpPoint) | 移动画笔到指定点 | X, Y 坐标 |
| LineTo(hDC, X, Y) | 从当前点画到指定点 | X, Y 坐标 |
| Rectangle(hDC, Left, Top, Right, Bottom) | 绘制矩形 | 坐标范围 |
| Ellipse(hDC, Left, Top, Right, Bottom) | 绘制椭圆或圆形 | 坐标范围 |
| TextOut(hDC, X, Y, lpString, nCount) | 在指定位置输出文本 | lpString 字符串 |
| SetTextColor(hDC, crColor) | 设置文本颜色 | crColor 颜色值(RGB) |
四、文件与目录操作函数(Kernel32.dll)
| 函数名 | 功能简介 | 主要参数说明 |
|---|---|---|
| CreateFile(lpFileName, dwDesiredAccess, dwShareMode, lpSecurity, dwCreationDisposition, dwFlags, hTemplate) | 打开或创建文件 | 文件名、访问模式、共享方式 |
| ReadFile(hFile, lpBuffer, nNumberOfBytesToRead, lpNumberOfBytesRead, lpOverlapped) | 读取文件数据 | lpBuffer 缓冲区 |
| WriteFile(hFile, lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, lpOverlapped) | 写入文件数据 | — |
| CloseHandle(hFile) | 关闭文件句柄 | — |
| DeleteFile(lpFileName) | 删除文件 | 文件路径 |
| CopyFile(lpExistingFileName, lpNewFileName, bFailIfExists) | 复制文件 | 源文件、目标文件 |
| CreateDirectory(lpPathName, lpSecurity) | 创建目录 | 路径 |
| RemoveDirectory(lpPathName) | 删除目录 | 路径 |
| GetFileSize(hFile, lpFileSizeHigh) | 获取文件大小 | — |
五、内存管理函数(Kernel32.dll)
| 函数名 | 功能简介 | 主要参数说明 |
|---|---|---|
| GlobalAlloc(uFlags, dwBytes) | 分配全局内存块 | uFlags 分配标志;dwBytes 大小 |
| GlobalFree(hMem) | 释放内存块 | hMem 内存句柄 |
| GlobalLock(hMem) | 锁定全局内存块并返回指针 | — |
| GlobalUnlock(hMem) | 解锁内存块 | — |
| HeapAlloc(hHeap, dwFlags, dwBytes) | 从堆中分配内存 | — |
| HeapFree(hHeap, dwFlags, lpMem) | 释放堆内存 | — |
| VirtualAlloc(lpAddress, dwSize, flAllocationType, flProtect) | 分配虚拟内存 | — |
| VirtualFree(lpAddress, dwSize, dwFreeType) | 释放虚拟内存 | — |
六、系统信息函数(Kernel32.dll / User32.dll)
| 函数名 | 功能简介 | 主要参数说明 |
|---|---|---|
| GetSystemMetrics(nIndex) | 获取系统指标(屏幕宽高等) | nIndex 指标常量 |
| GetSystemDirectory(lpBuffer, uSize) | 获取系统目录路径 | — |
| GetWindowsDirectory(lpBuffer, uSize) | 获取 Windows 根目录 | — |
| MessageBeep(uType) | 播放系统提示音 | uType 提示类型 |
| ExitWindowsEx(uFlags, dwReason) | 注销或关闭系统 | — |
| LockWorkStation() | 锁定当前工作站 | — |
| GetCursorPos(lpPoint) | 获取鼠标坐标 | lpPoint POINT 结构体 |
| SetCursorPos(X, Y) | 设置鼠标位置 | — |
七、注册表操作函数(Advapi32.dll)
| 函数名 | 功能简介 | 主要参数说明 |
|---|---|---|
| RegOpenKeyEx(hKey, lpSubKey, ulOptions, samDesired, phkResult) | 打开注册表项 | — |
| RegCreateKeyEx(hKey, lpSubKey, Reserved, lpClass, dwOptions, samDesired, lpSecurity, phkResult, lpdwDisposition) | 创建或打开注册表项 | — |
| RegSetValueEx(hKey, lpValueName, Reserved, dwType, lpData, cbData) | 设置键值数据 | — |
| RegQueryValueEx(hKey, lpValueName, lpReserved, lpType, lpData, lpcbData) | 查询键值数据 | — |
| RegDeleteValue(hKey, lpValueName) | 删除注册表键值 | — |
| RegCloseKey(hKey) | 关闭注册表项 | — |
八、进程与线程管理函数(Kernel32.dll)
| 函数名 | 功能简介 | 主要参数说明 |
|---|---|---|
| CreateProcess(lpAppName, lpCmdLine, lpProcAttr, lpThreadAttr, bInheritHandles, dwCreationFlags, lpEnv, lpCurDir, lpStartupInfo, lpProcessInfo) | 创建新进程 | — |
| TerminateProcess(hProcess, uExitCode) | 终止进程 | — |
| GetCurrentProcess() | 获取当前进程句柄 | — |
| OpenProcess(dwAccess, bInheritHandle, dwProcessId) | 打开指定进程 | — |
| CreateThread(lpThreadAttr, dwStackSize, lpStartAddr, lpParam, dwFlags, lpThreadId) | 创建线程 | — |
| ExitThread(dwExitCode) | 结束当前线程 | — |
| Sleep(dwMilliseconds) | 暂停当前线程 | — |
| WaitForSingleObject(hHandle, dwMilliseconds) | 等待对象信号 | — |
九、时间与定时器函数(Kernel32.dll / User32.dll)
| 函数名 | 功能简介 | 主要参数说明 |
|---|---|---|
| GetTickCount() | 获取系统运行毫秒数 | — |
| GetLocalTime(lpSystemTime) | 获取本地时间 | lpSystemTime SYSTEMTIME 结构 |
| SetLocalTime(lpSystemTime) | 设置本地时间 | — |
| SetTimer(hWnd, nIDEvent, uElapse, lpTimerFunc) | 设置窗口定时器 | — |
| KillTimer(hWnd, nIDEvent) | 关闭定时器 | — |
| SleepEx(dwMilliseconds, bAlertable) | 可被中断的延时 | — |
十、字符串与路径处理函数(Kernel32.dll / Shlwapi.dll)
| 函数名 | 功能简介 | 主要参数说明 |
|---|---|---|
| lstrcpy(lpString1, lpString2) | 复制字符串 | — |
| lstrcat(lpString1, lpString2) | 拼接字符串 | — |
| lstrlen(lpString) | 获取字符串长度 | — |
| CharUpper(lpString) | 转换为大写 | — |
| CharLower(lpString) | 转换为小写 | — |
| PathFileExists(pszPath) | 判断文件或目录是否存在 | — |
| PathCombine(pszDest, pszDir, pszFile) | 合并路径 | — |
| GetFullPathName(lpFileName, nBufferLength, lpBuffer, lpFilePart) | 获取完整路径名 | — |
