`
hu_jiacheng
  • 浏览: 29103 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
Dfa6e97f-cd26-3ff8-984a-cafab311103b
Windows编程通俗演义...
浏览量:22031
文章分类
社区版块
存档分类
最新评论

MFC中ON_UPDATE_COMMAND_UI和ON_COMMAND消息区别

 
阅读更多

第一个是响应打开菜单的命令的
第二个是你打开这个菜单时,处理这个菜单的状态,比如选中、变灰等等。

比如WINDOWS自带的记事本程序,它的"格式"菜单下有个"自动换行",那么在编写记事本这个程序时,对文本进行自动换行或不自动换行的操作就要放在ON_COMMAND消息响应函数里,而"自动换行"菜单项左边是否打勾的操作则放在ON_UPDATE_COMMAND_UI响应函数里.

UPDATE_COMMAND_UI

处理菜单对应的用户界面显示状态

COMMAND

处理该菜单对应的功能

传统SDK程序要改变选单命令项状态,可以呼叫EnableMenuItem或是 CheckMenuItem,但这使得程序杂乱无章,因为你没有一个固定的位置和固定的原则处理命令项状态。MFC提供一种直觉并且仍旧依赖讯息观念的方式,解决这个问题,这就是UPDATE_COMMAND_UI讯息。其设计理念是,每当选单被拉并尚未显示之前,其命令项(以及对应之工具栏按钮)都会收到UPDATE_COMMAND_UI讯息,这个讯息和WM_COMMAND有㆒样的绕行路线,我们(程序员)只要在适当的类别上放置其处理函式,并在函式上做某些判断,便可决定如何显示命令项。

这种方法的最大好处是,不但把问题的解决方式统化,更因为 Framework传给UPDATE_COMMAND_UI处理程序的参数是个「指向CCmdUI对象的指针」,而CCmdUI对象就代表着对应的选单命令项,因此你只需呼叫 CCmdUI 所准备的,专门用来处理命令项外观的函式(如Enable或SetCheck)即可。我们的工作量大为减轻。

分享到:
评论

相关推荐

    话框中使用UPDATE_COMMAND_UI源代码,和说明。

    1. UPDATE_COMMAND_UI 消息:这是MFC框架内部定义的一个消息,用于处理控件的启用状态和可见性。当你在程序中注册了命令ID,MFC会自动发送`UPDATE_COMMAND_UI`消息到相应的控件,以便它们可以自我更新状态。 2. ...

    MFC对话框程序中添加工具栏及工具栏上的Button响应UPDATE_COMMAND_UI消息.docx

    在MFC对话框程序中添加工具栏以及工具栏上的Button,并使其能够响应UPDATE_COMMAND_UI消息,需要遵循一系列步骤。首先,我们需要理解UPDATE_COMMAND_UI消息的作用,它是MFC框架用来更新UI元素状态的一种机制,比如...

    MFC.rar_MFC_mfc 工具栏_mfc 菜单

    通过ON_WM_COMMAND()和ON_UPDATE_COMMAND_UI()宏可以处理菜单和工具栏的更新及选择事件。 2. 命令ID:每个菜单项和工具栏按钮都有一个唯一的命令ID,用于在消息映射中识别它们。 3. ON_BN_CLICKED:对于工具栏按钮...

    mfc.rar_mfc C

    3. **ON_UPDATE_COMMAND_UI()宏**:更新UI元素的状态,如禁用不适用的菜单项。 4. **CFile和CDocument类**:处理文件I/O,CDocument用于存储应用程序的数据。 5. **CView和CScrollView类**:视图类的基类,...

    MFC.rar_MFC

    2. **定义消息映射**:使用ON_COMMAND、ON_MESSAGE和ON_UPDATE_COMMAND_UI宏将用户界面事件与成员函数关联起来。 3. **实现视图和文档类**:根据需求扩展CDocument和CView类,实现数据处理和显示逻辑。 4. **...

    VC-MFC中使用工具栏控件详解.rar_2OE_mfc工具栏图标_工具栏 文字_工具栏中添加图标文字和响应消息_文字工具栏

    在MFC中,通常通过重载ON_COMMAND或ON_UPDATE_COMMAND宏来处理工具栏按钮的消息。例如: ```cpp ON_COMMAND(IDC_BUTTON1, OnButton1) ON_UPDATE_COMMAND_UI(IDC_BUTTON1, OnUpdateButton1) ``` 然后,定义处理函数...

    Visual C 教学课件:第7章 文档视图结构.ppt

    菜单设计中,我们需要使用ON_COMMAND消息映射宏来定义各个菜单项的行为,比如"打开文件"、"保存文件"和图形类型的切换。同时,ON_UPDATE_COMMAND_UI宏则用于更新界面状态,确保菜单项的可用性与当前程序状态一致。 ...

    全中文-MFC类库详解_c亮

    - 消息映射:MFC通过ON_MESSAGE、ON_COMMAND等宏定义,将消息与成员函数关联起来,使得消息处理更加直观。 - DoDataExchange:用于控件和数据成员之间的数据交换,常用于对话框类的验证和初始化。 4. **对话框...

    MFC消息映射

    对于命令消息,MFC提供了专门的宏,例如`ON_COMMAND()`和`ON_UPDATE_COMMAND_UI()`。 1. **头文件中的消息映射声明** ```cpp #define ID_XXXX 100 afx_msg void OnXxxx(); // 消息映射 afx_msg void ...

    C++消息处理[参考].pdf

    总之,C++中的MFC消息处理机制是通过宏和消息映射机制来实现的,它使得开发者能够方便地处理Windows环境下的各种用户交互和系统事件,从而构建功能丰富的桌面应用程序。理解和熟练掌握这些消息处理机制对于进行高效...

    C++ mfc中在对话框中加入菜单栏源代码

    首先,在消息映射`ON_COMMAND`或`ON_UPDATE_COMMAND_UI`中定义处理函数,然后实现这些函数来执行相应的操作。例如: ```cpp BEGIN_MESSAGE_MAP(CMyDialog, CDialog) ON_COMMAND(IDC_MENU_ITEM1, OnMenuItem1) ON_...

    MFC-MESSAGE.rar_Mfc message

    综上所述,"MFC-MESSAGE.rar_Mfc message"这份文档可能包含了如何在MFC中定义和处理消息、消息映射的原理、常见消息类型的介绍以及如何处理特定的Windows消息等内容。学习这部分知识对于理解MFC应用程序的运行机制至...

    MFC中的RTTI,动态创建,消息机制

    - MFC的消息机制还支持对象间的通信,如通过`ON_UPDATE_COMMAND_UI`宏更新用户界面元素的状态,或者通过`ON_NOTIFY`处理控件的通知消息。 理解并熟练掌握MFC中的RTTI、动态创建和消息机制对于开发高效、可靠的...

    MFC六大关键技术之(五)(六)——消息映射与命令传递

    - **ON_COMMAND(), ON_UPDATE_COMMAND_UI() 宏**: `ON_COMMAND()`用于处理具体的命令消息,如菜单项的选择;`ON_UPDATE_COMMAND_UI()`则用于更新用户界面的状态,例如启用或禁用某个菜单项。 #### 消息映射的工作...

    mfc单文档应用程序实现了formview界面切换和dialog布局

    在MFC中,我们可以使用ON_COMMAND或ON_UPDATE_COMMAND_UI宏来关联菜单项或按钮的事件处理函数。当用户点击特定菜单项时,对应的事件处理函数会被调用,从而实现界面的切换。例如,可以创建新的CFormView实例,并将其...

    精通MFC程序设计 - MFC消息处理

    `ON_UPDATE_COMMAND_UI`消息映射宏用于定义这种更新行为。 7. **通知消息**:控件间的通信常常使用控件通知消息,如`BN_CLICKED`表示按钮被点击。这些消息通过控件的父窗口进行传递,MFC提供了`ON_BN_CLICKED`等...

    商业编程-源码-对话框源代码 OnUpdate_demo.zip

    `OnUpdate`函数通常在响应`UPDATE_COMMAND_UI`消息时被调用。 对话框(Dialog Box)是Windows应用程序中的一个重要组件,它提供了一个独立于主窗口的临时界面,用户可以在其中进行交互。在MFC中,我们通常使用`...

    MFC单文档动态显示文本

    `ON_UPDATE_COMMAND_UI` 和 `ON_COMMAND` 消息映射处理菜单项的状态更新和命令处理。 ```cpp BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) //... ON_WM_CREATE() ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, &CMainFrame...

    MFC类库详解中文版

    同时,MFC还提供了基于成员变量的事件驱动编程模型,如ON_UPDATE_COMMAND_UI宏用于更新UI状态。 文档《MFC类库详解中文版》很可能包含了关于对话框(CDialog)、文档/视图架构(CDocument、CView、CFrameWnd)、...

Global site tag (gtag.js) - Google Analytics