当前位置: 首页 > backend >正文

【Deepseek】Windows MFC/Win32 常用核心 API 汇总

掌握常用的API函数是Windows MFC/Win32开发的基础。我为你整理了50个核心且常用的API,并尽力确保了信息的准确性。下面是一个汇总表格,方便你快速了解:

类别API 名称功能描述
窗口管理CreateWindow / CreateWindowEx创建窗口
ShowWindow显示或隐藏窗口
UpdateWindow立即更新窗口客户区
DestroyWindow销毁指定窗口
GetWindowRect获取窗口的屏幕坐标矩形
MoveWindow改变窗口的位置和尺寸
SetWindowText设置窗口标题栏文本(如果适用)或控件(如按钮)的文本
GetWindowText获取窗口标题栏文本或控件文本
EnableWindow启用或禁用窗口(或控件)的鼠标和键盘输入
FindWindow根据类名或窗口名查找顶层窗口
EnumWindows枚举所有顶层窗口
消息处理GetMessage从消息队列中获取消息
TranslateMessage翻译虚拟键消息到字符消息
DispatchMessage将消息分发给窗口过程
PostMessage将消息放入线程的消息队列后立即返回,不等待处理
SendMessage将消息直接发送到窗口过程并等待处理完毕
SendMessageTimeout发送消息并等待指定超时时间
SendNotifyMessage发送消息后立即返回,不等待处理,但成功与否会通知
RegisterWindowMessage定义一个新的窗口消息,保证系统唯一
PeekMessage检查消息队列,有消息可获取,无消息也可立即返回
图形设备接口BitBlt执行位图块传输,用于图像复制和移动
CreateCompatibleDC创建与指定设备兼容的内存设备上下文
CreateSolidBrush创建实心画刷
CreatePen创建画笔
SelectObject将GDI对象(如位图、画刷、画笔)选入设备上下文
DeleteObject删除GDI对象(如画刷、画笔、位图),释放其资源
TextOut在设备上下文(如窗口)上输出文本
Rectangle绘制矩形
Ellipse绘制椭圆
LineTo画一条线到指定点
MoveToEx移动当前画笔位置
GetDeviceCaps获取设备(如显示器、打印机)的特定信息,如分辨率、颜色位数等
文件与系统操作CreateFile创建或打开文件或I/O设备对象
ReadFile从文件读取数据
WriteFile向文件写入数据
CloseHandle关闭打开的对象句柄(文件、进程、线程、互斥体等)
GetFileSize获取文件大小
CopyFile复制文件
DeleteFile删除文件
CreateDirectory创建新目录
GetCurrentDirectory获取进程的当前目录
SetCurrentDirectory设置进程的当前目录
内存管理GlobalAlloc / HeapAlloc在堆上分配指定大小的内存块(HeapAlloc更现代)
GlobalFree / HeapFree释放通过GlobalAllocHeapAlloc分配的内存
VirtualAlloc在进程的虚拟地址空间中保留或提交内存页(更底层,通常用于特殊需求)
VirtualFree释放或注销通过VirtualAlloc分配的内存
memcpy复制内存内容(C运行时函数,但常用)
RtlMoveMemory移动内存块(功能类似memcpy
进程与线程CreateProcess启动一个新的进程及其主线程
CreateThread在当前进程中创建一个新线程(注意:使用_beginthreadex可能更好)
ExitProcess结束当前进程及其所有线程
ExitThread结束调用线程
WaitForSingleObject等待一个对象(如进程、线程)变为信号状态,可指定超时
GetCurrentProcessId获取当前进程的标识符
GetCurrentThreadId获取当前线程的标识符
Sleep使当前线程挂起执行指定的毫秒数
控件与对话框DialogBoxParam创建模态对话框
CreateDialogParam创建非模态对话框
EndDialog关闭模态对话框
GetDlgItem获取对话框中指定控件的句柄
SetDlgItemText设置对话框中控件的文本
GetDlgItemText获取对话框中控件的文本
SendDlgItemMessage向对话框控件发送消息
CheckDlgButton设置复选框或单选按钮的选择状态
IsDlgButtonChecked获取复选框或单选按钮的选择状态
MessageBox显示一个消息框
其他工具类GetTickCount获取系统启动后经过的毫秒数(常用于粗略计时)
GetLocalTime / GetSystemTime获取本地或系统时间(UTC)
SetLocalTime / SetSystemTime设置本地或系统时间
ShellExecute执行外部操作(如打开文件、打印、浏览网站),无需知道具体可执行文件路径

🧭 学习和使用建议

掌握这些API是Windows编程的基础。除了查阅表格,你还可以:

  • 查阅官方文档:权威和准确的信息永远首选 Microsoft Learn。
  • 动手实践:自己编写小程序来调用这些API,是理解它们用法和效果的最佳途径。
  • 利用调试工具:如Visual Studio的调试器,可以帮你观察API调用前后参数和状态的变化。
  • 阅读开源代码:学习优秀的开源项目是如何使用这些API的。

⚠️ 重要提醒

  • Unicode与ANSI:许多API有A(ANSI,多字节)和W(Wide-character,Unicode)两个版本(如CreateWindowExACreateWindowExW)。在现代开发中,应优先使用Unicode版本(通常通过在项目设置中定义UNICODE_UNICODE宏,代码中直接使用通用函数名如CreateWindowEx即可)。
  • 错误处理:调用API后,应检查返回值。很多API失败时会返回NULLINVALID_HANDLE_VALUEFALSE等,此时可立即调用GetLastError()获取详细的错误代码,这能极大帮助调试。
  • 资源管理:对于返回句柄(HANDLE, HWND, HDC, HBITMAP等)的API,在使用完毕后,务必使用对应的关闭或释放函数(如CloseHandle, DestroyWindow, DeleteDC, DeleteObject)来释放资源,防止资源泄漏
  • 64位系统兼容性:在64位Windows上,一些数据类型(如LONG_PTR, INT_PTR)的大小会变化,以确保指针能正确存储。在处理与窗口过程、回调函数相关的数据时需特别注意。

这些API是构建Windows应用程序的基石,希望这份列表能对你的学习和开发有所帮助。如果你对某个特定类别(如网络编程、注册表操作等)的API有更深入的兴趣,我可以提供更针对性的信息。

http://www.xdnf.cn/news/18894.html

相关文章:

  • 【PyTorch】基于YOLO的多目标检测项目(一)
  • 【Redis】数据分片机制和集群机制
  • 【Java SE】基于多态与接口实现图书管理系统:从设计到编码全解析
  • C/C++---前缀和(Prefix Sum)
  • 微服务的编程测评系统17-判题功能-代码沙箱
  • MQTT broker 安装与基础配置实战指南(一)
  • 题目—移除元素
  • PyTorch中的激活函数
  • AI需求优先级:数据价值密度×算法成熟度
  • HSA35NV001美光固态闪存NQ482NQ470
  • 达可替尼-
  • SpringBoot整合RabbitMQ:从消息队列基础到高可用架构实战指南
  • 浏览器网页路径扫描器(脚本)
  • 改造thinkphp6的命令行工具和分批次导出大量数据
  • MySQL 基础:DDL、DML、DQL、DCL 四大类 SQL 语句全解析
  • K8s 二次开发漫游录
  • 了解CDC(变更数据捕获)如何革新数据集成方式
  • Spring Security 深度学习(一): 基础入门与默认行为分析
  • 【日常学习】2025-8-27 测开框架设计模式探索04
  • Elasticsearch数据迁移快照方案初探(二):快照创建与多节点存储问题解决
  • 数据结构:创建堆(或者叫“堆化”,Heapify)
  • 软件定义汽车(SDV)调试——如何做到 适配软件定义汽车(SDV)?(中)
  • Mysql数据挂载
  • TencentOS Server 4.4 下创建mysql容器无法正常运行的问题
  • 微服务-docker compose
  • mfc中操作excel
  • APP与WEB测试的区别?
  • Windows MCP 踩坑经验 -- 今日股票行情助手
  • 金仓数据库文档系统全面升级:用户体验焕然一新
  • SqlHelper类的方法详细解读和使用示例