• 孙鑫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获取当前视类指针

     

     

     

    菊子曰 用菊子曰博客,就是爽!
  • 相关阅读:
    【译文】四十二种谬误(一)
    .NET笔记(二)
    设计模式C#实现(十六)——中介者模式
    设计模式C#实现(十五)——命令模式
    《程序员修炼之道》笔记
    《学会提问》读书笔记
    设计模式C#实现(十四)——责任链模式
    设计模式C#实现(十三)——享元模式(蝇量模式)
    学以致用——读《学会提问》
    访问苹果开发者网站太慢
  • 原文地址:https://www.cnblogs.com/SkyFireITDIY/p/4371638.html
Copyright © 2020-2023  润新知