VC++孙鑫视频笔记(六)

本文详细介绍MFC框架下菜单的工作原理与应用技巧,包括菜单命令消息传递流程、标记与缺省菜单实现方法、图形菜单制作及常见错误分析。此外还讲解了如何创建右键弹出菜单与动态菜单,以及在不同类中处理菜单命令的方法。

     菜单的工作原理及编写应用,菜单命令消息在MFC框架程序的几个类中的传递顺序和处理过程。标记菜单、缺省菜单的实现原理、图形菜单的实现及常犯错误的分析,GetSystemMetrics的应用,快捷弹出菜单的实现方式及其命令响应函数有效范围(与弹出菜单时所指定的父窗口有密切的关系,最底层的子窗口具有最优先的处理机会)。动态菜单的编写,如何让程序在运行时产生新的菜单项及如何手工为这些新产生的菜单命令安排处理函数,如何在顶层窗口中截获对菜单命令的处理,更进一步掌握CString类的应用。
    1.弹出菜单不可以用于命令响应,也就是没有ID
    2.对菜单项的处理,可以在Frame,App,Doc,和View类中处理。其消息响应的顺序是:
         View->Doc->Frame->App
    3.消息的分类:(图)


    4。对菜单的几种操作:
         标记菜单 CheckMenuItem
         缺省菜单SetDefaultMenuItem
         图形标记菜单SetMenuItemBitmap
         GetSystemMetrics可用于获取系统的信息
   5 .MFC对菜单的命令更新机制(图)

 

   6.如果想将菜单栏与工具栏中的图标相关联只需将他们的ID号设置成一样的。
   7.右键弹出菜单的创建:
        a.可以通过菜单中Project ->Add To Project->componants and Command中选择相应的右键弹出菜单,增加到View类中
        b.也可以自己创建,关键函数TrackPopupMenu,将父类设为谁就由谁来响应右键弹出菜单选项,ClientToScreen将客户区坐标换        成屏幕坐标。
   8.动态菜单的创建:操作对象都分成两类,对菜单项和弹出菜单
      CMenu menu;
      menu.CreatePopupMenu();
      GetMenu()->AppendMenu(MF_POPUP,(UINT)menu.m_hMenu,"WinSun");
由于menu是局部变量,所以点击这个菜单时会弹出一个非法操作的提示对话框,这需要添上menu.Detach();将资源与对象断开,当然也可以把menu设为类对象。

以上这些代码在Frame中就可以使用了,如果是在View类中用,因注意View类是没有menu的所以都要调用其父窗口Frame的menu ,而且在Windows已经创建之后再动态创建menu时,还需要调用DrawMenuBar来重绘menu,当然如果是在View类中直接使用DrawMenuBar,是无效的,原因一样因为View中没有菜单栏。

 启动程序后,如何让框架类来处理本该View类优先处理的消息,在框架类中通过向导创建一个Virtual Override for class CMainFrame 添加一个OnCommand函数来覆盖基类的onCommand函数。
PS:
Invalidate()重绘窗口
CStringArray  CString类型的集合类
LOWORD可以取得低字节
在Frame中要获取与其相关联的View类:GetActiveView

独立储能的现货电能量与调频辅助服务市场出清协调机制(Matlab代码实现)内容概要:本文围绕“独立储能的现货电能量与调频辅助服务市场出清协调机制”展开,提出了一种基于Matlab代码实现的优化模型,旨在协调独立储能系统在电力现货市场与调频辅助服务市场中的联合出清问题。文中结合鲁棒优化、大M法和C&CG算法处理不确定性因素,构建了多市场耦合的双层或两阶段优化框架,实现了储能资源在能量市场和辅助服务市场间的最优分配。研究涵盖了市场出清机制设计、储能运行策略建模、不确定性建模及求解算法实现,并通过Matlab仿真验证了所提方法的有效性和经济性。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事电力市场、储能调度相关工作的工程技术人员。; 使用场景及目标:①用于研究独立储能在多电力市场环境下的协同优化运行机制;②支撑电力市场机制设计、储能参与市场的竞价策略分析及政策仿真;③为学术论文复现、课题研究和技术开发提供可运行的代码参考。; 阅读建议:建议读者结合文档中提供的Matlab代码与算法原理同步学习,重点关注模型构建逻辑、不确定性处理方式及C&CG算法的具体实现步骤,宜在掌握基础优化理论的前提下进行深入研读与仿真调试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值