zoukankan      html  css  js  c++  java
  • 孙鑫MFC学习笔记6:菜单编程

    1.对菜单响应的顺序:

                视类,文档类,框架类,应用程序类

    2.消息的分类

     

     

    3.CWnd继承自CCmdTarget类,

                所以从CWnd派生出的类也可以接收WM_COMMAND消息

     

    4.命令的消息路由

     

    5.GetMenu获取指向菜单栏的指针

    6.GetSubMenu获取指向子菜单的指针

    7.CheckMenuItem设置复选菜单

    8.SetDefaultItem设置缺省菜单项

    9.分隔栏也要计算索引位置

    10.一个子菜单中只有一个菜单项作为缺省菜单

    11.SetMenuItemBitmaps设置菜单项位图

    12.GetSystemMetrics获取系统信息

    13.EnableMenuItem设置菜单禁用(要设置m_bAutoMenuEnable=false)、

    14.SetMenu设置菜单栏

                要用Detach分离

    15.命令更新

    16.OnContextMenu、TrackPopupMenu增加右键菜单(视类)

                菜单显示是以屏幕坐标为标准

    17.ClientToScreen转客户区坐标为屏幕坐标

    18.AppendMenu 动态增加菜单项

    19.CreatePopupMenu添加一个空的弹出菜单

    20.InsertMenu插入菜单

    21.DeleteMenu删除菜单

    22.动态增加菜单的命令响应

                *1.在Resource.h中定义命令ID

                *2.可将动态增加时取的ID改为命令ID宏

                *3.在头文件中增加响应函数声明(格式为 afx_msg void 函数名();                  

                *4.源文件中加消息映射(末尾没有分号)(格式为 消息(ID,响应函数)               

                *5.在源文件中加函数实现(没有afx_msg)

    23.程序中动态增加的菜单需要窗口重绘才能显示

    24.DrawMenuBar菜单栏重绘(CMainFrame中)

    25.Invalidate窗口重绘(用于擦除窗口临时文字)

    26.Find查找字符串

    27.CStringArray字符串数组(Add,GetAdd,GetSize...)

    28.覆盖OnCommand截获消息

                注意:要设置m_bAutoMenuEnable=false

    29.LOWORD,HIWORD获取高低字节序值

    30.GetActiveView获取当前视类指针

     

     

     

    菊子曰 用菊子曰博客,就是爽!
  • 相关阅读:
    Atitit.js图表控件总结
    atitit.attilax的软件 架构 理念.docx
    Atitit.异常处理 嵌套  冗长的解决方案
    Atitit.异常处理 嵌套  冗长的解决方案
    Atitit.atiagent  agent分销系统 代理系统 设计文档
    Atitit.atiagent  agent分销系统 代理系统 设计文档
    Atitit ati licenseService    设计原理
    Atitit ati licenseService    设计原理
    Atitit.项目修改补丁打包工具 使用说明
    Atitit.项目修改补丁打包工具 使用说明
  • 原文地址:https://www.cnblogs.com/SkyFireITDIY/p/4371638.html
Copyright © 2011-2022 走看看