Mfc资源消息的响应机制

简介: Mfc消息的响应机制   Mfc中有很多资源,如图标资源,菜单资源,工具栏资源等等;那么,资源是如何进行消息响应和消息映射的呢? 它们的流程是: 某种资源——对应的ID号——消息映射——响应函数的声明与实现 下面我们以工具栏的资源响应为例:(多文档的应用程序) 1.

Mfc消息的响应机制

 

Mfc中有很多资源,如图标资源,菜单资源,工具栏资源等等;那么,资源是如何进行消息响应和消息映射的呢?

它们的流程是:

某种资源——对应的ID号——消息映射——响应函数的声明与实现

下面我们以工具栏的资源响应为例:(多文档的应用程序)

1.       在工具栏资源增加一个图标(随便画一下),双击它,设置它的资源ID为:ID_MYICON

2.       在View类的.cpp文件中添加消息映射;

找到BEGIN_MESSAGE_MAP()与END_MESSAGE_MAP()

之间的代码,添加消息映射语句

ON_COMMAND(ID_MYICON,OnMyicon)

其中,第一个参数是资源的ID号;第二个为消息响应的函数名,为了与MFC的习惯保持一致,我们将其命名为OnMyicon

3.       消息响应函数的声明

在View类中增加成员函数afx_msg void OnMyicon();

4.       消息响应函数的实现

在View类的.cpp文件中实现OnMyicon()函数;

void CXXXXXView::OnMyicon()

{

         MessageBox("消息映射成功!");

}

菜单资源的消息响应机制于此完全相同;

 

Windows操作系统中包括以下几种消息:

1、标准Windows消息:这种消息以WM_打头。   

2、通知消息   

通知消息是针对标准Windows控件的消息。

这些控件包括:按钮(Button)、组合框(ComboBox)、编辑框(TextBox)、列表框(ListBox)、ListView控件、Treeview控件、工具条(Toolbar)、菜单(Menu)等。每种消息以不同的字符串打头。(见附录)   

3、自定义消息  编程人员还可以自定义消息。

 

附录:

从MSDN中,我们可以看查到很多的ON_开头的,一下列举其中一些示例

User Button Handlers(按钮)

Map Entry

Function Prototype

ON_BN_CLICKED( <id>, <memberFxn> )

afx_msg void memberFxn( );

ON_BN_DISABLE( <id>, <memberFxn> )

afx_msg void memberFxn( );

ON_BN_DOUBLECLICKED( <id>, <memberFxn> )

afx_msg void memberFxn( );

ON_BN_HILITE( <id>, <memberFxn> )

afx_msg void memberFxn( );

ON_BN_PAINT( <id>, <memberFxn> )

afx_msg void memberFxn( );

ON_BN_UNHILITE( <id>, <memberFxn> )

afx_msg void memberFxn( );

Combo Box Handlers(组合框)

Map Entry

Function Prototype

ON_CBN_CLOSEUP( <id>, <memberFxn> )

afx_msg void memberFxn( )

ON_CBN_DBLCLK( <id>, <memberFxn> )

afx_msg void memberFxn( );

ON_CBN_DROPDOWN( <id>, <memberFxn> )

afx_msg void memberFxn( );

ON_CBN_EDITCHANGE( <id>, <memberFxn> )

afx_msg void memberFxn( );

ON_CBN_EDITUPDATE( <id>, <memberFxn> )

afx_msg void memberFxn( );

ON_CBN_ERRSPACE( <id>, <memberFxn> )

afx_msg void memberFxn( );

ON_CBN_KILLFOCUS( <id>, <memberFxn> )

afx_msg void memberFxn( );

ON_CBN_SELCHANGE( <id>, <memberFxn> )

afx_msg void memberFxn( );

ON_CBN_SELENDCANCEL( <id>, <memberFxn> )

afx_msg void memberFxn( );

ON_CBN_SELENDOK( <id>, <memberFxn> )

afx_msg void memberFxn( );

ON_CBN_SETFOCUS( <id>, <memberFxn> )

afx_msg void memberFxn( );

Edit Control Handlers(编辑框)

Map Entry

Function Prototype

ON_EN_CHANGE( <id>, <memberFxn> )

afx_msg void memberFxn( );

ON_EN_ERRSPACE( <id>, <memberFxn> )

afx_msg void memberFxn( );

ON_EN_HSCROLL( <id>, <memberFxn> )

afx_msg void memberFxn( );

ON_EN_KILLFOCUS( <id>, <memberFxn> )

afx_msg void memberFxn( );

ON_EN_MAXTEXT( <id>, <memberFxn> )

afx_msg void memberFxn( );

ON_EN_SETFOCUS( <id>, <memberFxn> )

afx_msg void memberFxn( );

ON_EN_UPDATE( <id>, <memberFxn> )

afx_msg void memberFxn( );

ON_EN_VSCROLL( <id>, <memberFxn> )

afx_msg void memberFxn( );

 

 

 

等等………………………………(参看MSDN)

目录
相关文章
|
数据采集 人工智能 API
Qwen2.5-Coder深夜开源炸场,Prompt编程的时代来了!
通义千问团队开源「强大」、「多样」、「实用」的 Qwen2.5-Coder 全系列,致力于持续推动 Open Code LLMs 的发展。
|
存储 弹性计算 固态存储
阿里云服务器租用价格参考:云服务器各收费项目收费标准与活动价格
阿里云服务器收费项目有实例价格、预留实例券、专有宿主机、块存储价格、存储容量单位包、带宽价格和快照服务价格,收费模式有包年包月和按量付费模式。本文为大家汇总了2025年阿里云服务器各个收费项目的最新收费标准与云服务器的最新活动价格,以供参考和了解。
|
3天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
8129 36
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
3天前
|
JavaScript 定位技术 API
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
CodeGraph 是一款爆火的本地代码智能工具,通过 tree-sitter 解析 AST 构建结构化知识图谱(存于 SQLite),为编程 Agent 提前生成“代码地图”。它显著降低 Agent 在中大型项目中的探索成本——实测工具调用减少71%、Token 降57%、速度提升46%,支持19+语言及主流框架路由识别,完全离线、无需 API Key。
485 2
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
|
3天前
|
人工智能 运维 JavaScript
阿里云Qoder CN(原通义灵码)全解析 产品形态、版本划分与技术适配说明
在AI辅助开发与智能办公工具持续普及的当下,阿里云旗下原通义灵码正式更名为Qoder CN,同时延伸出QoderWork CN、Qoder CN CLI、Qoder CN Mobile等多款配套产品,形成覆盖代码开发、日常办公、终端交互、移动端使用的完整工具矩阵。Qoder CN核心定位为AI智能编码助手,深度适配主流代码编辑器、集成开发环境以及终端场景;QoderWork CN则偏向桌面端综合办公辅助,二者面向不同使用场景,划分了多个版本档位,搭配差异化资源配额、功能权限与计费规则,同时兼容多款主流大模型。
541 4
|
3天前
|
数据采集 人工智能 前端开发
让 Coding Agent 从黑盒到透明:阿里云 Agent 观测审计数据采集实践
AI Agent 规模化落地带来执行黑盒、行为难追溯、成本难度量三大难题。阿里云基于 OTel 标准,面向 Coding Agent、个人通用助理和框架型 Agent,推出 LoongSuite Pilot、插件及探针等无侵入采集方案,让 Agent 实现可看见、可分析、可审计、可治理。
690 152
|
3天前
|
人工智能 缓存 自然语言处理
阿里Qwen3.7-Max评测:Agent能力显著提升,耗时与调用成本大幅下降
阿里云百炼推出面向智能体的旗舰大模型Qwen3.7-Max,具备长周期自主执行能力,显著提升编程、办公自动化等复杂任务处理水平;支持MCP集成与多框架兼容,并以限时5折+100万Tokens免费试用大幅降低使用门槛,助力企业高效落地AI应用。在阿里云百炼平台快速体验:https://t.aliyun.com/U/fPVHqY
1914 10
|
3天前
|
人工智能 安全 定位技术
CodeGraph深度解析 让Claude Code工具调用直降七成的核心原理与实操教程
如今以Claude Code为代表的AI编程智能体已经成为开发者日常编码、项目重构、漏洞修复的必备工具。但在长期使用过程中,几乎所有开发者都会遇到同一个明显痛点:AI虽然具备强大的代码生成与分析能力,却常常陷入盲目探索的循环中。
1319 2
|
3天前
|
存储 安全 Java
AgentScope Java 2.0:打造分布式、企业级智能体底座
AgentScope 2.0 面向分布式部署、稳定运行、权限安全等企业级需求全面升级,打造支持多租户隔离与长期稳定运行的企业级智能体底座。
|
3天前
|
人工智能 弹性计算 运维
阿里云发布堡垒机智能运维Agent,运维交互进入自然语言新时代
支持自然语言运维,提升效率与安全双保障。
1180 1

热门文章

最新文章