大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 程序开发 -> Office 2000风格的停泊、智能型菜单

Office 2000风格的停泊、智能型菜单

时间: 2021-07-31 作者:daque

翻译:徐景周(原著:piero viano)载入演练源码(http://www.vckbase.com/vckbase/vckbase12/vc/ctrls/menu_07/1207099.htm)(翻译注:因为原文作家所供给例子代码需运用附带rc资源,经自己运用后感触不够通用,故将局部源码窜改并将作品翻译。文中此刻所附例子为我迩来所作一抓图步调的界面局部。不只office 2000智能菜单噢!还囊括多文书档案视图的tab页表露,自绘制菜单等,确定请参看附带范例代码。我的email是:jingzhou_xu@163.net ~o~)在你的工程文献中运用office 2000菜单的话(翻译:暂时仅扶助多文书档案菜单窜改,即使要改单文书档案菜单界面包车型的士话,可对文献中的cmultidoctemplateex类、cmdiframeex类和cmdiframeex类举行窜改,以符合单文书档案界面。),请按底下办法举行: 在资源里的字符串表中新增二字符串:一、id_showfull ,32792,表露实足菜单。二、id_intmode,32794,翻开/遏止智能菜单形式。 将offmenu文献夹中每一个.cpp和.h文献包括井你的工程文献中。 编纂工程文献中的 mainfrm.h (主框架头文献) : 将原类的证明从:class cmainframe : public cmdiframewnd改为:#include "mdifrmex.h"#include "toolbarex.h"class cmainframe : public cmdiframeex接着将类中的东西条类从 ctoolbar 改为 ctoolbarex:ctoolbar m_wndtoolbar;形成:ctoolbarex m_wndtoolbar;编纂工程文献中的 mainfrm.cpp (主框架文献): 变换个中动静映照从:implement_dynamic(cmainframe, cmdiframewnd)begin_message_map(cmainframe, cmdiframewnd)形成:implement_dynamic(cmainframe, cmdiframeex)begin_message_map(cmainframe, cmdiframeex)接着将 cmainframe::oncreate 中的:if (cmdiframewnd::oncreate(lpcreatestruct) == -1)变为:if (cmdiframeex::oncreate(lpcreatestruct) == -1)编纂工程文献中 myapp.h (运用类头文献):变换个中的类证明从:class ctestmdiapp : public cwinapp变为:#include "winappex.h"class ctestmdiapp : public cwinappex编纂工程文献中 myapp.cpp (运用类文献):将个中的动静映照从:begin_message_map(ctestmdiapp, cwinapp)变为:#include "doctplex.h"begin_message_map(ctestmdiapp, cwinappex)接着将 cmyapp::initinstance() 中的底下代码从:         cmultidoctemplate* pdoctemplate;         pdoctemplate = new cmultidoctemplate(                 idr_testmdtype,                 runtime_class(ctestmdidoc),                 // custom mdi child frame                 runtime_class(cchildframe),                  runtime_class(ctestmdiview));         adddoctemplate(pdoctemplate);         // create main mdi frame window         cmainframe* pmainframe = new cmainframe;         if (!pmainframe->loadframe(idr_mainframe))                 return false;         m_pmainwnd = pmainframe;替代成:         uint nid;         nid=idr_mainframe;         // create main mdi frame window         cmainframe* pmainframe = new cmainframe;         if (!pmainframe->loadframe(nid))                 return false;         m_pmainwnd = pmainframe;         cmultidoctemplateex* pdoctemplate;         pdoctemplate = new cmultidoctemplateex(                 idr_testmdtype,                 runtime_class(ctestmdidoc),                 // custom mdi child frame                 runtime_class(cchildframe),                  runtime_class(ctestmdiview),                 &nid,1);         adddoctemplate(pdoctemplate);         cwinappex::initinstance();接下来就不妨编释并运转你的步调了。 即使你想本人掌握控制智能菜单的话,可径直重载cmenubar类中的底下涵数既可: word cmenubar::incmenuusage(cmenuex *pparent,                             uint pos,                             word curusage)bool cmenubar::evaluateifgrayed(cmenuex *pparent,                                 uint pos,                                 word &curusage,                                 int imed,                                 int irange)第一个涵数用来增添暂时菜单条有效法。第二个涵数确定暂时菜单条能否灰色表露,它也可用来窜改暂时菜单条的用法。即使你想在菜单中保存运用步调中设置的数据的话,可用cmenuex::getextradataptr(uint)来包括进那些数据。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.