第3章 Windows运行机理-3.2 消息的运行方式(3)
3.2.3 消息处理过程实例我们已经对消息有了些了解那到底消息是什么呢其实消息不过是定义了一个结构在微软中定义的是MSG结构自己也可以定义不同的结构然后定义一堆ID号例如#define WM_MSG01 0X0001…..#define WM_MSG** 0X*****调到函数中用swicth 和case语句对每一种ID进行相应的处理。在Windows的编程中有一个很经典的程序“Hello World”。我们也用这个最简单的程序来说消息的处理过程。这个程序可以直接在VC中用向导生成。首先任何一个Windows程序都是从WinMain开始的。int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){// TODO: Place code here.MSG msg;HACCEL hAccelTable;// Initialize global stringsLoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);LoadString(hInstance, IDC_AA, szWindowClass, MAX_LOADSTRING);MyRegisterClass(hInstance);// Perform application initialization:if (!InitInstance (hInstance, nCmdShow)){return FALSE;}hAccelTable LoadAccelerators(hInstance, (LPCTSTR)IDC_AA);// Main message loop:while (GetMessage(msg, NULL, 0, 0)){if (!TranslateAccelerator(msg.hwnd, hAccelTable, msg)){TranslateMessage(msg);DispatchMessage(msg);}}return msg.wParam;}大家可能对这段代码已很熟悉了在以前用API进行Windows编程时几乎所有的程序都会去套用这个框架。从一个WinMain中注册一个窗口其他再用GetMessage取得窗口的消息翻译后分给对应的窗口。其实很多程序可以完全不用注册窗口。它只要做一些事件当有事件来时就处理相应的事件。例如以下就是一个Windows程序其中没有用到任何消息循环只是在运行中弹出一个对话框//-------------------------------------------------// HelloMsg.c -- Displays Hello, Windows 98! in a//message box// -----------------------------------------------#include windows.hint WINAPI WinMain ( HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow){MessageBox (NULL, TEXT (Hello, Windows 98!),TEXT (HelloMsg), 0) ;return 0 ;}可以看到这个WIN32的程序就没用到微软的框架它完全是自己做自己的事直到被中止。实际上很多应用可以不用窗口例如Windows NT的服务程序就不需要窗口。

相关新闻

学霸同款!千笔AI,顶尖配置的降AIGC软件

学霸同款!千笔AI,顶尖配置的降AIGC软件

在AI技术迅猛发展的今天,越来越多的学生和研究者开始借助AI工具辅助论文写作,以提高效率、优化内容。然而,随着学术审查标准的不断提升,AI生成内容的痕迹越来越容易被识别,论文中的“AI率超标”问题逐渐成为影响毕业和…

2026/5/17 6:58:14 阅读更多 →
Wi-Fi 6 模块技术解析与多场景应用介绍

Wi-Fi 6 模块技术解析与多场景应用介绍

在物联网渗透率持续攀升的今天,从智能家居的无感联动到工业产线的实时数据传输,从车载终端的智能交互到商用设备的灵活部署,稳定、高效、低耗的无线连接已成为终端设备的核心竞争力。 随着设备数量和业务复杂度不断提升,传统无线…

2026/5/17 6:58:12 阅读更多 →
Unity ECS之 ISystem 与 SystemBase 详解与对比

Unity ECS之 ISystem 与 SystemBase 详解与对比

目录 前言 一、ECS 系统的核心基础概念 1.1 ECS 系统的核心定位 1.2 ECS 系统的通用核心特性 1.3 ECS 系统的核心执行流程 二、SystemBase 开发详解:封装式开发,快速入门 2.1 SystemBase 的核心特性 2.2 SystemBase 的核心生命周期 2.3 SystemBase 的基础开发实战 …

2026/7/5 6:31:35 阅读更多 →

最新新闻

知识管理实战:从用户故事驱动KARL框架落地

知识管理实战:从用户故事驱动KARL框架落地

1. 项目概述:当知识管理不再只是IT部门的PPT工程我是Jim Glenn,在Six Feet Up担任KARL Champion——这个头衔听起来有点拗口,但它的实际含义很实在:我不是来写技术文档的,也不是来推动某个特定软件上线的,而…

2026/7/5 10:17:07 阅读更多 →
高速PCB信号完整性:眼图分析与工程实践

高速PCB信号完整性:眼图分析与工程实践

1. 高速PCB设计中的信号完整性挑战 在当今GHz级高速数字电路设计中,信号完整性问题已成为工程师面临的最大挑战之一。当信号速率超过5Gbps时,PCB走线上的传输线效应、阻抗不连续、串扰和抖动等问题会显著影响系统性能。我曾参与过一个25Gbps SerDes接口的…

2026/7/5 10:17:07 阅读更多 →
AI技能安全扫描实战:从威胁模型到CI/CD集成

AI技能安全扫描实战:从威胁模型到CI/CD集成

1. 项目概述:为什么AI技能也需要“安检门”?最近在折腾AI Agent和各类AI编程工具(比如Cursor、GitHub Copilot)时,我发现一个挺有意思的现象:大家热衷于分享和下载各种“技能”(Skills&#xff…

2026/7/5 10:17:07 阅读更多 →
3分钟解锁网易云音乐:NCM转MP3的完全免费解决方案

3分钟解锁网易云音乐:NCM转MP3的完全免费解决方案

3分钟解锁网易云音乐:NCM转MP3的完全免费解决方案 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经遇到过这样的尴尬:在网易云音乐下载了心爱的歌曲,却只能在特定App里播放?车…

2026/7/5 10:15:07 阅读更多 →
RK3576芯片架构与AIoT应用开发全解析

RK3576芯片架构与AIoT应用开发全解析

1. RK3576/RK3576J芯片架构解析 Rockchip RK3576系列是瑞芯微面向AIoT和工业市场推出的高性能应用处理器,采用"44"大小核设计: 4个Cortex-A72性能核心2.2GHz(工业版2.1GHz) 4个Cortex-A53能效核心2.0GHz(工…

2026/7/5 10:15:07 阅读更多 →
RK3588核心板硬件架构与AI加速技术解析

RK3588核心板硬件架构与AI加速技术解析

1. RK3588核心板的硬件架构解析 作为当前ARM架构中的旗舰级SoC,RK3588采用了创新的"44"大小核设计。具体由4个Cortex-A76性能核心(主频2.4GHz)和4个Cortex-A55能效核心(主频1.8GHz)组成,这种组合…

2026/7/5 10:15:07 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻