My study of VC++ ( Command and Menu refered )

原创 2005年04月28日 22:14:00

1。命令处理

  • ON_COMMAND消息映射。派生类将继承父类的所有消息映射函数
  • ON_UPDATE_COMMAND_UI。更新命令用户界面处理程序。在第一次显示弹出式菜单时被调用,修改菜单项的外观。例子:

在头文件中加入: afx_msg void OnUpdateZoom(CCmdUI *pCmdUI);

在视中加入: ON_UPDATE_COMMAND_UI(IDM_ZOOM, OnUpdateZoom) 以及

void CMyView::OnUpdateZoom(CCmdUI *pCmdUI)

{

pCmdUI->SetCheck(m_bZoomed);

}

    • 对话框发送的命令。假定有一个弹出式对话框,上面有按钮,用按钮发送命令消息。 命令的ID必须在0x8000到0xDFFF的范围之内,这个范围与资源编辑器为菜单项使用的ID范围是相同的。如此,该按钮将产生一个可以传递的命令。应用程序框架首相将这个命令传递到主框架窗口,这是因为框架窗口拥有所有的弹出式对话框。命令传递随后正常进行;如果视图具有该按钮命令的处理程序,那么这就是处理它的地方。

2。应用程序框架的内置菜单项

    • 启用/禁止菜单项。如果应用程序框架没有在命令传递中找到命令消息,它可以禁止该菜单项。利用这一功能,我们就不必编写ON_UPDATE_COMMAND_UI了。

3。CMenu类

    • 菜单对象是由子菜单的嵌套结构组成的。可以使用GetSubMenu成员函数来获得指向弹出式菜单的CMenu指针,该菜单包含在主Menu对象中。CMenu::GetMenuString函数返回相应的菜单项字符串
    • 创建浮动的弹出式菜单。利用资源编辑器和MFC库的CMenu::TrackPopMenu函数,我们可以很容易的创建这些菜单。步骤如下

1. 插入一个新菜单

2. 增加弹出式菜单

3. 在视图类或某个接受鼠标消息的窗口类中添加WM_CONTEXTMENU消息。

void CMyView::OnContextMenu(CWen *pWnd, CPoint point)

{

CMenu menu;

menu.LoadMenu(IDR_MYFLOATINGMENU);

menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);

}

4。 扩展命令处理

    • ON_COMMAND消息提供了两个功能:1. 命令ID函数参数; 2. 在运行时拒绝接受命令
    • 在一个处理函数响应几个ID时有用

Case Study: A kind of Radial Menu

這個Actionscript2.0的程序有它的名字,在Activeden上面是We-Love-Mp3。 我對它的這個徑向菜單的做法蠻有興趣。 我需要選擇一個切入點來進行研究...

VC 对话框程序 menu菜单响应UPDATE_COMMAND_UI 消息

问题:一般情况下我们用UPDATE_COMMAND_UI来修改菜单的状态(enable/disable, check/uncheck, change text),但这个方法在一个基于对话框上的菜单却没...
  • xbmoxia
  • xbmoxia
  • 2014年10月16日 10:33
  • 1271

Part1:A Brief Study of Classes and Object-oriented Programming.

Actionscript 3.0 PV3d papervision3d OOP
  • pdcxs
  • pdcxs
  • 2011年07月15日 18:11
  • 63

【VC++】在对话框中使用ON_UPDATE_COMMAND_UI更新菜单

从命令用户界面处理函数(Command UI handler)改变菜单状态(启用/禁用,选择/取消选择,更改文字)在由对话框处理时没有正常工作。   原因:在下拉菜单显示的时候, WM_INI...

Pop-up Menu 不支持此接口 VC++

  • 2011年06月09日 19:31
  • 530B
  • 下载

air max femme and the addition of fleet operational command system

making use of troops and firepower more reasonable,air max femme, more transparent battlefield,aberc...

Some of the best Open Source Project's in VC++ & MFC -- xiaojianpitt

Introduction List of some of the best Open Source projects written in VC++/MFC. Background Codep...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:My study of VC++ ( Command and Menu refered )
举报原因:
原因补充:

(最多只允许输入30个字)