xp风格菜单

用C#和VB.NET实现Office XP风格的菜单 好了,这些是题外话了。这种移植很枯燥,但可以很快熟悉新的Beta2的类库和函数,Show出来的菜单还不错,感觉是Office2000风格的菜单。最后一部分是制作VS.NET或XP风格的例子,上面那个例子的效果不能使我完全满意,然后我重新写了另外一个,不过我对最后的结果还不是很满意,因为我的没有上一个例子那么完整,例子中我只显示了这个风格的菜单,对于事件响应、状态栏更新、tooltips、菜单的状态(enabled state)等处理都没有考虑,我把这些归结为时间问题,并承诺自己下次把它做得更好。 阅读详情

网易的个人主页收费了,顺便把以前写的一些东西贴出来,或许可以用用。

xp风格菜单

context.js

<!--
/**
 *@context menu with xp style
 *@author: LiXinGang  avlee@163.com 2002.3.25
 *@version v1.0
 */

// menu object
function contextMenu()
{
 this.items   = new Array();
 
 this.addItem = function (item)
 {
  this.items[this.items.length] = item;
 }

 this.show = function (oDoc)
 {
  var strShow = "";
  var i;
  
  strShow = "<div id=/"rightmenu/" style=/"BACKGROUND-COLOR: #ffffff; BORDER: #000000 1px solid; LEFT: 0px; POSITION: absolute; TOP: 0px; VISIBILITY: hidden; Z-INDEX: 10/">";
  strShow += "<table border=/"0/" height=/"";
  strShow += this.items.length * 20;
  strShow += "/" cellpadding=/"0/" cellspacing=/"0/">";
  strShow += "<tr height=/"3/"><td bgcolor=/"#d0d0ce/" width=/"2/"></td><td>";
  strShow += "<table border=/"0/" width=/"100%/" height=/"100%/" cellpadding=0 cellspacing=0 bgcolor=/"#ffffff/">";
  strShow += "<tr><td bgcolor=/"#d0d0ce/" width=/"23/"></td><td><img src=/" /" height=/"1/" border=/"0/"></td></tr></table>";
  strShow += "</td><td width=/"2/"></td></tr>";
  strShow += "<tr><td bgcolor=/"#d0d0ce/"></td><td>";
  strShow += "<table border=/"0/" width=/"100%/" height=/"100%/" cellpadding=3 cellspacing=0 bgcolor=/"#ffffff/">";
  oDoc.write(strShow);
  for(i=0; i<this.items.length; i++)
  {
   this.items[i].show(oDoc);
  }
  strShow = "</table></td><td></td></tr>";
  strShow += "<tr height=/"3/"><td bgcolor=/"#d0d0ce/"></td><td>";
  strShow += "<table border=/"0/" width=/"100%/" height=/"100%/" cellpadding=0 cellspacing=0 bgcolor=/"#ffffff/">";
  strShow += "<tr><td bgcolor=/"#d0d0ce/" width=/"23/"></td><td><img src=/" /" height=/"1/" border=/"0/"></td></tr></table>";
  strShow += "</td><td></td></tr>";
  strShow += "</table></div>/n";
  oDoc.write(strShow);
 }
}

// menu Item object
function contextItem(text, icon, cmd, type)
{
 this.text = text ? text : "";
 this.icon = icon ? icon : "";
 this.cmd = cmd ? cmd : "";
 this.type = type ? type : "menu";
 
 this.show = function (oDoc)
 {
  var strShow = "";
  
  if(this.type == "menu")
  {
   strShow += "<tr ";
   strShow += "onmouseover=/"changeStyle(this, 'on');/" ";
   strShow += "onmouseout=/"changeStyle(this, 'out');/" ";
   strShow += "onclick=/"";
   strShow += this.cmd;
   strShow += "/">";
   strShow += "<td class=/"ltdexit/" width=/"16/">";
   if (this.icon == "")
    strShow += "&nbsp;";
   else {
    strShow += "<img border=/"0/" src=/"";
    strShow += this.icon;
    strShow += "/" width=/"16/" height=/"16/" style=/"POSITION: relative/"></img>";
   }
   strShow += "</td><td class=/"mtdexit/">";
   strShow += this.text;
   strShow += "</td><td class=/"rtdexit/" width=/"5/">&nbsp;</td></tr>";
  }
  else if (this.type == "separator")
  {
   strShow += "<tr><td class=/"ltdexit/">&nbsp;</td>";
   strShow += "<td class=/"mtdexit/" colspan=/"2/"><hr color=/"#000000/" size=/"1/"></td></tr>";
  }
  
  oDoc.write(strShow);
 }
}

function changeStyle(obj, cmd)
{ 
 if(obj) try {
  var imgObj = obj.children(0).children(0);
  
  if(cmd == 'on') {
   obj.children(0).className = "ltdfocus";
   obj.children(1).className = "mtdfocus";
   obj.children(2).className = "rtdfocus";
   if(imgObj)
   {
    if(imgObj.tagName.toUpperCase() == "IMG")
    {
     imgObj.style.left = "-1px";
     imgObj.style.top = "-1px";
    }
   }
  }
  else if(cmd == 'out') {
   obj.children(0).className = "ltdexit";
   obj.children(1).className = "mtdexit";
   obj.children(2).className = "rtdexit";
   if(imgObj)
   {
    if(imgObj.tagName.toUpperCase() == "IMG")
    {
     imgObj.style.left = "0px";
     imgObj.style.top = "0px";
    }
   }
  }
 }
 catch (e) {}
}

function showMenu()
{
 var x, y, w, h, ox, oy;
 
 x = event.clientX;
 y = event.clientY;
 
 var obj = document.getElementById("rightmenu");
 if (obj == null)
  return true;
 
 ox = document.body.clientWidth;
 oy = document.body.clientHeight;
 if(x > ox || y > oy)
  return false;
 w = obj.offsetWidth;
 h = obj.offsetHeight;
 if((x + w) > ox)
   x = x - w;
 if((y + h) > oy)
  y = y - h;
 
 obj.style.posLeft = x + document.body.scrollLeft;
 obj.style.posTop = y + document.body.scrollTop;
 obj.style.visibility = "visible";
 
 return false;
}
function hideMenu()
{
 if(event.button == 0)
 {
  var obj = document.getElementById("rightmenu");
  if (obj == null)
   return true;
  obj.style.visibility = "hidden";
  obj.style.posLeft = 0;
  obj.style.posTop = 0;
 }
}

function writeStyle()
{
 var strStyle = "";
 
 strStyle += "<STYLE type=text/css>";
 strStyle += "TABLE {Font-FAMILY: /"Tahoma/",/"Verdana/",/"宋体/"; FONT-SIZE: 9pt}";
 strStyle += ".mtdfocus {BACKGROUND-COLOR: #ccccff; BORDER-BOTTOM: #000000 1px solid; BORDER-TOP: #000000 1px solid; CURSOR: hand}";
 strStyle += ".mtdexit {BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid}";
 strStyle += ".ltdfocus {BACKGROUND-COLOR: #ccccff; BORDER-BOTTOM: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; CURSOR: hand}";
 strStyle += ".ltdexit {BACKGROUND-COLOR: #d0d0ce; BORDER-BOTTOM: #d0d0ce 1px solid; BORDER-TOP: #d0d0ce 1px solid; BORDER-LEFT: #d0d0ce 1px solid}";
 strStyle += ".rtdfocus {BACKGROUND-COLOR: #ccccff; BORDER-BOTTOM: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-RIGHT: #000000 1px solid; CURSOR: hand}";
 strStyle += ".rtdexit {BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid; BORDER-RIGHT: #ffffff 1px solid}";
 strStyle += "</STYLE>";
 
 document.write(strStyle);
}

function makeMenu()
{
 var myMenu, item;
 
 var homepage_cmd = "this.style.behavior='url(#default#homepage)';this.setHomePage('http://gamethinking.yeah.net/'); return false;";
 var favorate_cmd = "window.external.addFavorite('http://gamethinking.yeah.net/','游戏思想'); return false;";
 var viewcode_cmd = "window.location = 'view-source:' + window.location.href";
 
 myMenu = new contextMenu();
 
 item = new contextItem("返回主页", "images/main.gif", "top.location='http://gamethinking.yeah.net/';", "menu");
 myMenu.addItem(item);
 
 item = new contextItem("设为主页", "images/myhome.gif", homepage_cmd, "menu");
 myMenu.addItem(item);
 
 item = new contextItem("添加到收藏夹", "images/fav_add.gif", favorate_cmd, "menu");
 myMenu.addItem(item);
 
 item = new contextItem("联系作者", "images/mail.gif", "location.href='mailto:avlee@163.com'", "menu");
 myMenu.addItem(item);
 
 item = new contextItem("", "", "", "separator");
 myMenu.addItem(item);
 
 item = new contextItem("察看源码", "images/edit.gif", viewcode_cmd, "menu");
 myMenu.addItem(item);
 
 myMenu.show(this.document);

 delete item;
 delete myMenu;
}

function toggleMenu(isEnable)
{
 if(isEnable)
  document.oncontextmenu = showMenu;
 else
  document.oncontextmenu = new function() {return true;};
}

writeStyle();
makeMenu();
document.onclick = hideMenu;
document.oncontextmenu = showMenu;
file://-->

menutest.htm

<HTML>
<HEAD>
<TITLE></TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META content="MSHTML 5.00.2920.0" name=GENERATOR>
<SCRIPT language="Javascript" src="js/context.js"></SCRIPT>
</HEAD>
<body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0">
<table border="0" width="100%" height="100%" cellpadding="0" cellspacing="3">
 <tr><td valign="top">
  <div id="docBoard" style="width: 100%">
   xp风格的右键菜单<br>
   欢迎使用
  </div>
 </td>
 <td valign="top" align="right">
  <p><input type="checkbox" name="closerm" onclick="toggleMenu(!this.checked);">关闭右键菜单</p>
 </td>
 </tr>
</table>
</body>
</HTML>

XP风格的右键菜单和导航菜单的实现 在这篇文章中,我将向您展示如何使用JavaScript实现XP风格的右键菜单和导航菜单。这些菜单是基于XP操作系统的经典设计风格,可以通过右键单击元素或导航菜单按钮来触发。首先,我们需要创建一个基本的HTML结构来容纳右键菜单和导航菜单。接下来,我们将使用JavaScript来实现右键菜单和导航菜单的功能。您可以将上述代码复制粘贴到一个HTML文件中,并在浏览器中打开该文件以查看XP风格的右键菜单和导航菜单的效果。来阻止默认的右键菜单,然后创建菜单项并将其添加到页面上。函数来创建右键菜单。 阅读详情

相关推荐

仿Windows XP风格的JavaScript网页菜单实现

随着Web应用复杂性的增加,前端框架和库如React、Vue和Angular应运而生,它们提供了组件化的开发方式,简化了状态管理,加强了代码的可维护性和可扩展性。这些工具通常封装了复杂的DOM操作和性能优化,是现代Web开发不可或缺的一部分。在文档的开头,给出一个项目简介是非常有必要的。这部分应该简洁地说明项目的用途和目的。此外,包括一个清晰的项目标题和一个描述性的子标题可以快速吸引用户的注意力。

weixin_30633869的博客 684

自绘XP风格菜单

  这是以前写的代码,自绘XP风格的菜单,硬盘坏了后以为没了,最后写的一个软件要自定义风格,“翻箱倒柜”的终于在我可爱的古董机^_^上找到了一个应用的例子。还是把它放到Blog上来,即可共享又可作为备用 :)  把主菜单的OnMeasureItem指向MeasureMainItem、OnAdvancedDrawItem指向DrawMainItem,子菜单的OnMeasureItem指向Measur

编程手札 2340

STM32F103C8T6最小系统板GPIO配置避坑指南:从原理图到流水灯一次成功

本文详细介绍了STM32F103C8T6最小系统板GPIO配置的实战指南,从硬件准备到流水灯实现,涵盖了九大关键步骤。特别针对新手常见问题,如GPIO配置、开发环境搭建和程序下载调试,提供了详细的解决方案和避坑技巧,帮助开发者快速掌握STM32开发基础。

weixin_33756596的博客 340

用C#和VS.NET实现Office XP风格的菜单

开始我会涉及到在Winform中最基本的一些菜单的概念。然后会有一个以前接触过的有关菜单的例子,它是For Beta 1的。老实说我没有想到Beta1 到Beta2有许多函数和命名空间发生了变化,以前我在Beta1中测试过这个例子,很顺利。这次在Beta2中会有许多错误,我提供了两个Project,一个是原来的Project的,一个是我修改后For Beta 2的。这种移植很枯燥,但可以很快熟悉新

lne818的专栏 1395

Pinocchio 结合 CasADi 进行 IK 逆运动学及 Mujoco 仿真

摘要:本视频演示了如何利用Pinocchio和CasADi实现机械臂逆运动学(IK)求解,并在Mujoco中进行仿真。通过构建优化问题(最小化位姿误差),结合IPOPT求解器对机械臂关节角度进行优化。代码支持导入URDF/MJCF模型,并以so100机械臂为例,实现了末端执行器位置跟踪的仿真测试。关键步骤包括:建立平移/旋转误差函数、设置约束条件、调用CasADi求解,最终在Mujoco中实时更新关节状态完成运动控制。

darcsdn 1003

从Excel到Power Pivot:构建你的第一个商业智能分析模型

本文详细介绍了如何从Excel升级到Power Pivot,构建你的第一个商业智能分析模型。通过激活Power Pivot功能、导入数据、建立表关系、创建智能度量值以及打造交互式仪表盘,帮助用户高效处理百万行级别的数据,实现数据自动关联和动态分析,大幅提升商业决策效率。

weixin_30629653的博客 256

让Firefox的菜单具有Windows XP风格!

修改用户配置文件userChrome.css, 增加如下内容:/* Make menus XP style */menupopup, popup {    border: 1px solid ThreeDShadow !important;    -moz-border-left-colors: ThreeDShadow !important;    -moz-border-top-colors:

白日放歌须纵酒,青春作伴好还乡。 1640

基于YOLOv8的端面小目标计数解决方案: 多头检测器+小缺陷到大缺陷一网打尽的GiraffeDet+Wasserstein Distance Loss | 助力工业小目标缺陷检测

端面小目标计数部署解决方案 | 亲测在工业小目标缺陷涨点明显,原始mAP@0.5 0.936提升至0.955

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1955

DELPHI7实现XP菜单风格

步骤八:选择第一个TActionBarItem, 设它的ActionBar属性为ActionMainMenuBar,选第二个TActionBarItem,设它的ActionBar属性为ActionToolBar.步骤四:把Additional面板上的ActionToolBar组件加到PageScrooler组件上(注意放在PageScroolerh 上)步骤二:把Additional面板上的ActionMainMenuBar组件加到CoolBar组件上.(注意一定要放在CooBar 组件上)

男神的专栏 698

企业如何开展BI建设--指标体系建设

很多企业的数字化转型工作都是从做BI项目开始的,很多企业认为,BI就是做指标大屏,所以做了很多的驾驶舱,也做了很多指标,有从系统取的,有手工填报的,甚至手工填报的比例占到了70%,最终BI沦为了填报系统,业务认为BI就是把从线下的微信沟通转到了线上录入展示,并没有给业务代来任何提升,久而久之,BI大屏就没人关心,公司高层也认为数据都是填报的,都经过了加工处理,这种数据不可信,不能反映业务开展的实际。其实在BI系统建设之前,我们首先要做的就是要梳理企业的指标,到底我们要展示哪些指标?

263

Windows 镜像包大全(附百度云下载链接)

插入U盘,找到下载好的两个驱动软件,并安装,先打开驱动人生万能网卡版,安装好网卡驱动,可以接入wifi或者网线了,然后打开驱动精灵,按照提示,安装所有的驱动(中间要是让你重启,就先选择稍后再说,如果有的驱动安装好之后非要你重启,关不掉的那种,那你就重启吧),等全部安装好了,重启电脑。如果你有显卡,这里以英伟达举例,我是GTX960的,当你的驱动都安装好后,右键桌面,会出现一个英伟达控制面板。安装软碟通,下载之后,一直下一步就ok,啥也不用配置,到了最后一项点击“继续试用”即可。(下载里面的网卡版即可),

悦分享 7364

XP风格的右键菜单

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>网页特效--XP风格的右键菜单丨石家庄瑜伽馆-河北草坪</title> <STYLE>.menutabl...

weixin_30949361的博客 132

手把手教你学Simulink——基于经典PID控制的电机系统场景实例:BLDC电机PID电流控制策略仿真

*无刷直流电机(Brushless DC Motor, BLDC)**因其高效率、长寿命和低维护成本,在众多领域如家用电器、工业自动化、电动汽车等得到了广泛应用。为了实现对BLDC电机的有效控制,通常采用基于霍尔传感器或反电动势检测的换相技术,并结合电流闭环控制以提高系统的动态响应和稳定性。本教程将带你使用构建一个基于PID控制的BLDC电机电流控制策略仿真模型BLDC电机建模PID控制器设计与应用系统仿真与调试控制效果分析本文介绍了如何使用构建一个。

MHD0815的博客 197

Delphi实用代码自绘XP风格菜单

这是以前写的代码,自绘XP风格的菜单,硬盘坏了后以为没了,最后写的一个软件要自定义风格,“翻箱倒柜”的终于在我可爱的古董机^_^上找到了一个应用的例子。把主菜单作以下调整:   OnMeasureItem指向MeasureMainItem、   OnAdvancedDrawItem指向DrawMainItem,   子菜单的OnMeasureItem指向MeasureS

liukeforever的专栏 1022

基于YOLOv8与UI界面的短视频内容审核系统实现与深度学习应用

YOLO(You Only Look Once)是一种用于实时物体检测的深度学习模型,它能在单次前向传播中同时完成物体检测和定位。YOLOv8是YOLO系列中的最新版本,相较于之前的版本,YOLOv8具有更高的检测精度和更快的推理速度,特别适合需要实时检测的应用场景。YOLOv8通过卷积神经网络(CNN)来提取图像中的特征,并通过多个卷积层来预测每个目标的位置和类别。该模型的优势在于其端到端的结构,使得在视频监控、自动驾驶、安防监控等实时应用中,能够实现快速且高效的目标检测。

YOLO 314

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

可折叠的模仿XP风格的菜单

可折叠的模仿XP风格的菜单

Allen.CD.China 158

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

js实现的XP风格的右键菜单

<html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>网页特效|www.jb51.net|---XP风格的右键菜单</title><STYLE>.menutable{BACKGROU...

weixin_30546933的博客 194

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

xp风格菜单 (转)

xp风格菜单 (转)[@more@]网易的个人主页收费了,顺便把以前写的一些东西贴出来,或许可以用用。 xp风格菜单 context.js <!--/** *@context menu with xp style...

csd3176的博客 119

XP风格的菜单、工具条

ShortCurBarDemo20051108 转载于:https://www.cnblogs.com/henryzc/archive/2005/11/08/271538.html

weixin_30918415的博客 72

如何实现在Asp.net下XP风格的下拉菜单

结合Jst和Css实现了在Asp.net下XP风格的下拉菜单,效果图如下:实现的步骤及源码如下:Default.aspx代码: 1@ Page language="c#" Codebehind="default.aspx.cs" AutoEventWireup="false" Inherits="PopupMenuControlSample._default" %> 2DOCTYPE HTML

Mars的专栏 821

XP风格的菜单类(VB.net)以及使用方法

由 2006-7-3 13:47:00 By:废客泉 XP风格的菜单类(VB.net) '/////////////////////////////////////...

weixin_30641999的博客 207
下一篇: “big-endian”和“little-endian”的三种参考处理方式
avlee
博客等级 码龄26年 0粉丝 5原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值