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

【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.dtcms.com/a/354846.html

相关文章:

  • Spring Boot对访问密钥加解密——HMAC-SHA256
  • Docker Swarm 与 Kubernetes (K8s) 全面对比教程
  • SMU算法与人工智能创新实践班SMU2025 Summer 7th 参考题解
  • 虚幻基础:角色变换角色视角蒙太奇运动
  • Python篇---返回类型
  • 安卓/ios按键精灵脚本开发工具:OpenCV.FindImgAll命令介绍
  • 工业电子看板赋能线缆工厂生产高效运转
  • 可扩展系统设计的黄金法则与Go语言实践|得物技术
  • 血缘元数据采集开放标准:OpenLineage Integrations Apache Airflow Usage
  • 2026届大数据毕业设计选题推荐-基于大数据景点印象服务系统 爬虫数据可视化分析
  • 【Linux】linux中线程的引出
  • 视频软解码技术详解:原理、应用与未来发展
  • 计算机网络:(poll、epoll)
  • 贴片式SD卡在北京君正与瑞芯微平台上的应用对比与实践解析
  • MCU平台化实践方案
  • DevOps篇之Jenkins实现k8s集群版本发布以及版本管理
  • 趣味学Rust基础篇(函数)
  • ABeam中国 | 中国汽车市场(5)——软件定义汽车(SDV)的智能化应用场景
  • 智能体架构的十字路口:深度剖析Block的“通用平台”与GSK的“垂直模型”
  • 设计模式:组合模式(Composite Pattern)
  • ArcGIS:如何设置地图文档的相对路径或者发布为地图包
  • 5.1 操作系统概述
  • Cesium 入门教程(十一):Camera相机功能展示
  • SplinePSF——应用于光学成像中的 PSF 建模
  • 【贪心 或 DFS - 面试题】小于n最大数
  • 记一次雪花算法 ID 精度丢失的Bug:前端接收到的 Long 被“四舍五入”了?
  • Java HTTP 请求:Unirest 使用指南及与 HttpClient 对比
  • 数据湖与数据仓库
  • 「数据获取」25年最新安徽省路网数据安徽省路网分类数据(获取方式看绑定的资源)
  • 自动化三维测量仪工业零件自动外观三维测量-中科米堆CASAIM