设为首页 加入收藏

TOP

C++学习笔记:菜单
2014-11-16 11:20:24 】 浏览:7088
Tags:学习 笔记 菜单

  菜单栏,工具栏,状态栏是组成Windows程序图形界面的三个主要元素。大多数的Windows应用程序都提供了菜单,作为用户和程序之间的一种交互途径。


  6.1 菜单栏


  在设置菜单栏的菜单项的时候,Pop-up属性的为弹出菜单,这种菜单不能响应命令,没有ID号。


  6.2 菜单命令的路由


  相应菜单项命令的顺序是:视类(View),文档类(Doc),框架类(Frame),应用程序类(App)。


  Windows消息的分类:


  标准消息:除了WM_COMMAND消息之外,所有以WM开头的消息都是标准消息,从CWnd派生的类都可以响应这类消息。


  命令消息:来至菜单、加速键和工具栏按钮的消息,这类消息都是以WM_COMMAND形式呈现,在MFC中,通过菜单项的标示ID来区分不同的命令消息,在SDK中,通过消息的wParam参数标示,从CCmdTarget派生的类都可以接收这类消息。


  通告消息:有控件产生的消息,例如按钮的单击,列表框的选择等都会产生这类消息,目的是向其父窗口通知事件的发生。这类消息以WM_COMMAND形式发送,从CCmdTarget派生的类都可以接收这类消息。


  CWnd派生于CCmdTarget,从CWnd派生的类可以接收所以类型的消息(View,Frame),其他从CCmdTarget派生的类只能接收命令消息和通告消息(Doc,App)。


  6.3 基本菜单操作


  Pop-up0 Pop-up1 Pop-up2 Pop-up3 …


  0-0 1-0 2-0 3-0 …


  0-1 1-1 2-1 3-1 …


  0-2 1-2 2-2 3-2 …


  可以通过CWnd的成员函数GetMenu来获取指向菜单栏的指针,对菜单子项的访问可以通过菜单的索引标识来实现。


  操作一个菜单项的2种实例:


  1 GetMenu()->GetSubMenu(0)->CheckMenuItem(0,MF_BYPOSITION | MF_CHECKED);


  2 GetMenu()->GetSubMenu(0)->CheckMenuItem(ID_FILE_OPEN,MF_BYCOMMAND | MF_CHECKED);


  MSDN中关于MF_BYCOMMAND 和MF_BYPOSITION的解释:


  MF_BYCOMMAND Specifies that the parameter gives the command ID of the existing menu item. This is the default.


  MF_BYPOSITION Specifies that the parameter gives the position of the existing menu item. The first item is at position 0.


  GetSubMenu有很多成员函数,用于菜单的操作。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++学习笔记:对话框1 下一篇C++学习笔记:对话框2

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目