我重载了CMainFrame的WindowProc函数,可菜单不见了,怎么办?

ghost79 2004-08-10 09:23:42
应该是哪个消息啊,另外这个生成菜单的消息映射函数该怎么写,谢谢!
...全文
224 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjz800800 2004-08-11
  • 打赏
  • 举报
回复
楼住,你怎么重载的贴出来看看
nanfeng231 2004-08-10
  • 打赏
  • 举报
回复
先回家吃饭了,晚上看
ghost79 2004-08-10
  • 打赏
  • 举报
回复
这样写的:
本身这段代码是别人的,他另外设计了一个类:CSkinWin,好像用了一个钩子函数和框架窗口挂接了。
LRESULT CSkinWin::WindowProc(UINT msg, WPARAM wp, LPARAM lp)
{
if ( !IsWindow(m_hWnd) )
return 0;
if ( !m_bInit )
return Default();

switch ( msg )
{
case WM_SHOWWINDOW:
//call setwindowpos to force OnNcCalcSize when hWnd is a dialog
if ( wp )
SetWindowPos( m_hWnd, 0, 0, 0, 400, 400, SWP_NOSIZE|SWP_NOMOVE|SWP_FRAMECHANGED );
Default();
return 0;
break;
//case WM_ERASEBKGND:
case WM_INITMENUPOPUP:
Default();
return 0;
case WM_SYSCOMMAND:
OnSysCommand( wp, lp );
//Default();
return 0;
case WM_SETTEXT:
return OnSetText( wp, lp );
case WM_NCPAINT:
OnNcPaint( (HRGN)wp );
return 0;
case WM_NCCALCSIZE:
OnNcCalcSize( (BOOL)wp, (NCCALCSIZE_PARAMS *)lp );
return 0;
case WM_SIZE:
OnSize( wp, LOWORD(lp), HIWORD(lp) );
return 0;
case WM_NCACTIVATE:
return OnNcActivate( (BOOL)wp );
case WM_NCHITTEST:
return OnNcHitTest(CPoint(LOWORD(lp), HIWORD(lp)));
case WM_NCLBUTTONUP:
OnNcLButtonUp(wp, CPoint(LOWORD(lp), HIWORD(lp)));
return 0;
case WM_NCLBUTTONDOWN:
OnNcLButtonDown(wp, CPoint(LOWORD(lp), HIWORD(lp)));
return 0;
case WM_NCLBUTTONDBLCLK:
OnNcLButtonDblClk(wp, CPoint(LOWORD(lp), HIWORD(lp)));
return 0;
case WM_NCRBUTTONUP:
OnNcRButtonUp(wp, CPoint(LOWORD(lp), HIWORD(lp)));
return 0;
case WM_NCRBUTTONDOWN:
OnNcRButtonDown(wp, CPoint(LOWORD(lp), HIWORD(lp)));
return 0;
case WM_NCMOUSEMOVE:
OnNcMouseMove( wp,CPoint(LOWORD(lp), HIWORD(lp)));
return 0;
case WM_GETMINMAXINFO:
OnGetMinMaxInfo( (MINMAXINFO *)lp );
return 0;
case WM_WINDOWPOSCHANGING:
OnWindowPosChanging((WINDOWPOS *)lp);
return 0;
case WM_SIZING:
OnSizing( wp, (LPRECT)lp );
return 0;
case WM_ACTIVATE:
OnActivate( wp, CWnd::FromHandle((HWND)lp), 0 );
return 0;
case WM_COMMAND:
if ( !HandleSysCommand( wp, lp ) )
Default();
return 0;
default:
return Default();
}
}
nanfeng231 2004-08-10
  • 打赏
  • 举报
回复
我看过 highersong发的帖子,你看看吧

M F C依次调用下面的函数,指引输入消息到处理函数。
1) AfxWndProc( )接收消息,寻找消息所属的C W n d对象,然后调用AfxCallWndProc( )。
2) AfxCallWndProc( )存储消息(消息标识符和参数)供未来参考,然后调用WindowProc( )。
3) WindowProc( ) 发送消息给OnWndMsg( ) ,然后,如果消息未被处理,则发送给
D e f Windowproc( )。
4) OnWndMsg( )要么为W M _ C O M M A N D消息调用OnCommand( ),要么为W M _ N O T I F Y
消息调用OnNotify( )。任何被遗漏的消息都将是一个窗口消息。OnWndMsg( )搜索类的消息
映像,以找到一个能处理任何窗口消息的处理函数。如果O n W n d M s g ( )不能找到这样的处理函
数,则把消息返回到WindowProc( ),由它将消息发送给D e f WindowProc( )。
5) OnCommand( )查看这是不是一个控件通知( l P a r a m不是N U L L );如果它是,
OnCommand( )就试图将消息映射到制造通知的控件;如果它不是一个控件通知,或者控件拒
绝映射的消息,OnCommand( )就调用OnCmdMsg( )。
6) OnNotify( )也试图将消息映射到制造通知的控件;如果映射不成功, OnNotify( )就调
用相同的OnCmdMsg( )函数。
7) 根据接收消息的类,OnCmdMsg( )将在一个称为命令传递(Command Routing)的过程中
潜在地传递命令消息和控件通知。例如,如果拥有该窗口的类是一个框架类,则命令和通知
消息也被传递到视图和文档类,并为该类寻找一个消息处理函数。
WindowProc( )的原型函数为:
L R E S U LT WindowProc(UINT nMsg, WPARAM wParam, LPARAM lParam);
WindowProc( )接着调用OnWndMsg( ),它试图在类中为该消息寻找一个处理函数;任何
返回到WindowProc( )的未被处理的消息都被传输到D e f WindowProc( );D e f WindowProc( )是
所有未被处理的消息的贮藏所。
zhang_zhibin 2004-08-10
  • 打赏
  • 举报
回复
重载,
你调用基类的函数了吗?
内容概要:本文围绕“数据驱动下光伏建筑群源荷不确定性解析及其储能多目标低碳经济调度研究”展开,提出了一种融合数据驱动方法与多目标优化算法的综合调度框架。研究首先基于历史数据对光伏发电出力与建筑负荷的不确定性进行建模,采用概率预测与场景生成技术刻画源荷波动特性,并通过典型场景提取降低输入复杂性。在此基础上,构建了以最小化系统运行成本、降低碳排放强度、提升可再生能源消纳率为目标的多目标优化模型,引入NSGA-II等先进智能优化算法求解Pareto最优前沿,实现经济性与低碳性的协同优化。通过Python编程完成模型搭建与仿真验证,结果表明该方法能有效应对源荷双重不确定性,在保障供电可靠性的前提下,实现了储能系统的优化配置与多目标调度决策的均衡协调; 适合人群:具备一定电力系统基础知识和Python编程能力,从事能源系统优化、智能调度、低碳技术等相关领域的研究生、科研人员及工程技术人员; 使用场景及目标:①应用于光伏建筑群、工业园区微电网等分布式能源系统的运行调度;②支撑含储能系统的多目标低碳经济调度决策,兼顾能源成本节约与碳排放控制双重目标;③为相关课题的研究与工程实践提供完整的算法实现参考与可复现的仿真案例支持; 阅读建议:建议读者结合文中提供的Python代码深入理解模型构建与求解流程,重点关注不确定性建模与多目标优化的耦合机制,可在实际数据基础上复现并改进算法,进一步探索不同权重策略下的调度方案优选方法。
代码下载链接: https://pan.quark.cn/s/cd4149768c91 互联网灰度部署系统解决方案的核心内容深度阐释: 一、灰度发布概念 灰度发布(亦称金丝雀发布)是在云计算及互联网服务领域中常见的一种发布策略,其中心理念是在全面推广新版本前,先向部分用户群体开放试用,以此来降低更新过程中的潜在风险。这种发布模式能够有效地兼顾用户体验与系统稳定性,它允许企业逐步将新的代码或功能部署至生产环境,并且仅对部分用户群体可见。此种做法有助于提前识别潜在问题,对用户体验造成的影响较小,并且能够获取更为真实的用户反馈信息。 二、系统现状和建设背景 在传统的发布模式中,每次更新都需要暂停服务才能发布新版本,这在用户体验和服务连续性方面存在明显不足。伴随互联网经济的繁荣发展,移动终端与日常生活的融合日益紧密,对互联网系统的支撑需求持续增长。特别是在电信行业,系统需要实现7*24小时不间断服务,以适应快速变化的市场需求和频繁更新的技术。因此,迫切需要一种新的发布方式,即灰度发布,用以提升产品发布的效率并改善用户体验。 三、灰度发布的优势与挑战 灰度发布相较于传统全量发布的优势包括: 1. 提供了新功能的试错空间,支持边发布边进行优化。 2. 维持服务的连续性,实现无缝升级。 3. 针对不同用户群体实施功能区分,提升用户体验和满意度。 4. 收集用户反馈,为后续版本的功能迭代和优化提供指导。 然而,灰度发布同样面临挑战,例如技术实现的复杂性、增加的运维压力等。 四、灰度发布的具体实施策略 1. 建设目标:保证湖北联通对外服务的互联网程序能够实现7*24小时不中断的灰度发布,实现无缝升级,同时全面提升用户体验。 2. 总体说明:需要通过灰度发布实现迭代开发和版本快速更...

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧