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

 

 

 

菊子曰 用菊子曰博客,就是爽!
原文地址:https://www.cnblogs.com/SkyFireITDIY/p/4371638.html