📄 samplemenus.cs
字号:
// *****************************************************************************
//
// (c) Crownwood Consulting Limited 2002
// All rights reserved. The software and associated documentation
// supplied hereunder are the proprietary information of Crownwood Consulting
// Limited, Haxey, North Lincolnshire, England and are supplied subject to
// licence terms.
//
// Magic Version 1.7 www.dotnetmagic.com
// *****************************************************************************
using System;
using System.IO;
using System.Data;
using System.Drawing;
using System.Resources;
using System.Reflection;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
using Crownwood.Magic.Menus;
using Crownwood.Magic.Win32;
using Crownwood.Magic.Common;
using Crownwood.Magic.Controls;
namespace SampleMenus
{
public class MDIContainer : System.Windows.Forms.Form
{
private int _count = 1;
private ImageList _images = null;
private StatusBar _status = null;
private StatusBarPanel _statusBarPanel = null;
private Crownwood.Magic.Menus.MenuControl _topMenu = null;
private System.ComponentModel.Container components = null;
public MDIContainer()
{
LoadResources();
//
// Required for Windows Form Designer support
//
InitializeComponent();
SetupMenus();
SetupStatusBar();
}
protected void LoadResources()
{
// Create a strip of images by loading an embedded bitmap resource
_images = ResourceHelper.LoadBitmapStrip(this.GetType(),
"SampleMenus.MenuImages.bmp",
new Size(16,16),
new Point(0,0));
}
protected void SetupMenus()
{
// Create the MenuControl
_topMenu = new Crownwood.Magic.Menus.MenuControl();
// We want the control to handle the MDI pendant
_topMenu.MdiContainer = this;
// Create the top level Menu
MenuCommand top1 = new MenuCommand("&Appearance");
MenuCommand top2 = new MenuCommand("&Windows");
MenuCommand top3 = new MenuCommand("A&nimation");
MenuCommand top4 = new MenuCommand("&Cities1");
MenuCommand top5 = new MenuCommand("&Movies1");
MenuCommand top6 = new MenuCommand("Ca&rs1");
MenuCommand top7 = new MenuCommand("C&ities2");
MenuCommand top8 = new MenuCommand("Mo&vies2");
MenuCommand top9 = new MenuCommand("Car&s2");
_topMenu.MenuCommands.AddRange(new MenuCommand[]{top1,top2,top3,top4,top5,top6,top7,top8,top9});
// Create the submenus
CreateAppearanceMenu(top1);
CreateWindowsMenu(top2);
CreateAnimationMenu(top3);
CreateCityMenus(top4, top7);
CreateMovieMenus(top5, top8);
CreateCarMenus(top6, top9);
// Add to the display
_topMenu.Dock = DockStyle.Top;
_topMenu.Selected += new CommandHandler(OnSelected);
_topMenu.Deselected += new CommandHandler(OnDeselected);
Controls.Add(_topMenu);
// Create an initial MDI child window
OnNewWindowSelected(null, EventArgs.Empty);
}
protected void CreateAppearanceMenu(MenuCommand mc)
{
// Create menu commands
MenuCommand style1 = new MenuCommand("&IDE", new EventHandler(OnIDESelected));
MenuCommand style2 = new MenuCommand("&Plain", new EventHandler(OnPlainSelected));
MenuCommand style3 = new MenuCommand("-");
MenuCommand style4 = new MenuCommand("PlainAsBlock", new EventHandler(OnPlainAsBlockSelected));
MenuCommand style5 = new MenuCommand("-");
MenuCommand style6 = new MenuCommand("Dock Left", new EventHandler(OnDockLeftSelected));
MenuCommand style7 = new MenuCommand("Dock Top", new EventHandler(OnDockTopSelected));
MenuCommand style8 = new MenuCommand("Dock Right", new EventHandler(OnDockRightSelected));
MenuCommand style9 = new MenuCommand("Dock Bottom", new EventHandler(OnDockBottomSelected));
MenuCommand styleA = new MenuCommand("-");
MenuCommand styleB = new MenuCommand("MultiLine", new EventHandler(OnMultiLineSelected));
MenuCommand styleC = new MenuCommand("-");
MenuCommand styleD = new MenuCommand("E&xit", new EventHandler(OnExit));
// Setup event handlers
style1.Update += new EventHandler(OnIDEUpdate);
style2.Update += new EventHandler(OnPlainUpdate);
style4.Update += new EventHandler(OnPlainAsBlockUpdate);
style6.Update += new EventHandler(OnDockLeftUpdate);
style7.Update += new EventHandler(OnDockTopUpdate);
style8.Update += new EventHandler(OnDockRightUpdate);
style9.Update += new EventHandler(OnDockBottomUpdate);
styleB.Update += new EventHandler(OnMultiLineUpdate);
mc.MenuCommands.AddRange(new MenuCommand[]{style1,style2,style3,style4,style5,style6,
style7,style8,style9,styleA,styleB,styleC,styleD});
}
protected void CreateWindowsMenu(MenuCommand mc)
{
// Create menu commands
MenuCommand window1 = new MenuCommand("&New Window", _images, 0, new EventHandler(OnNewWindowSelected));
MenuCommand window2 = new MenuCommand("Cl&ose", _images, 1, new EventHandler(OnCloseWindowSelected));
MenuCommand window3 = new MenuCommand("Close A&ll", new EventHandler(OnCloseAllSelected));
MenuCommand window4 = new MenuCommand("-");
MenuCommand window5 = new MenuCommand("Ne&xt", _images, 2, new EventHandler(OnNextSelected));
MenuCommand window6 = new MenuCommand("Pre&vious", _images, 3, new EventHandler(OnPreviousSelected));
MenuCommand window7 = new MenuCommand("-");
MenuCommand window8 = new MenuCommand("&Cascade", _images, 4, new EventHandler(OnCascadeSelected));
MenuCommand window9 = new MenuCommand("Tile &Horizontally", _images, 5, new EventHandler(OnTileHSelected));
MenuCommand windowA = new MenuCommand("&Tile Vertically", _images, 6, new EventHandler(OnTileVSelected));
window1.Shortcut = Shortcut.Ctrl0;
// Setup event handlers
window2.Update += new EventHandler(OnCloseWindowUpdate);
window2.Update += new EventHandler(OnCloseAllUpdate);
window5.Update += new EventHandler(OnNextPreviousUpdate);
window6.Update += new EventHandler(OnNextPreviousUpdate);
window8.Update += new EventHandler(OnLayoutUpdate);
window9.Update += new EventHandler(OnLayoutUpdate);
windowA.Update += new EventHandler(OnLayoutUpdate);
mc.MenuCommands.AddRange(new MenuCommand[]{window1,window2,window3,window4,
window5,window6,window7,window8,
window9,windowA});
// Want to know when MenuControl shows/hide PopupMenu
mc.PopupStart += new CommandHandler(OnWindowMenuStart);
mc.PopupEnd += new CommandHandler(OnWindowMenuEnd);
}
protected void CreateAnimationMenu(MenuCommand mc)
{
// Create menu commands
MenuCommand animate1 = new MenuCommand("Yes - Always animate", new EventHandler(OnYesAnimateSelected));
MenuCommand animate2 = new MenuCommand("No - Never animate", new EventHandler(OnNoAnimateSelected));
MenuCommand animate3 = new MenuCommand("System - Ask O/S", new EventHandler(OnSystemAnimateSelected));
MenuCommand animate4 = new MenuCommand("-");
MenuCommand animate5 = new MenuCommand("100ms", new EventHandler(On100Selected));
MenuCommand animate6 = new MenuCommand("250ms", new EventHandler(On250Selected));
MenuCommand animate7 = new MenuCommand("1000ms", new EventHandler(On1000Selected));
MenuCommand animate8 = new MenuCommand("-");
MenuCommand animate9 = new MenuCommand("Blend", new EventHandler(OnBlendSelected));
MenuCommand animateA = new MenuCommand("Center", new EventHandler(OnCenterSelected));
MenuCommand animateB = new MenuCommand("+Hor +Ver", new EventHandler(OnPPSelected));
MenuCommand animateC = new MenuCommand("-Hor -Ver", new EventHandler(OnNNSelected));
MenuCommand animateD = new MenuCommand("+Hor -Ver", new EventHandler(OnPNSelected));
MenuCommand animateE = new MenuCommand("-Hor +Ver", new EventHandler(OnNPSelected));
MenuCommand animateF = new MenuCommand("System", new EventHandler(OnSystemSelected));
// Setup event handlers
animate1.Update += new EventHandler(OnYesAnimateUpdate);
animate2.Update += new EventHandler(OnNoAnimateUpdate);
animate3.Update += new EventHandler(OnSystemAnimateUpdate);
animate5.Update += new EventHandler(On100Update);
animate6.Update += new EventHandler(On250Update);
animate7.Update += new EventHandler(On1000Update);
animate9.Update += new EventHandler(OnBlendUpdate);
animateA.Update += new EventHandler(OnCenterUpdate);
animateB.Update += new EventHandler(OnPPUpdate);
animateC.Update += new EventHandler(OnNNUpdate);
animateD.Update += new EventHandler(OnPNUpdate);
animateE.Update += new EventHandler(OnNPUpdate);
animateF.Update += new EventHandler(OnSystemUpdate);
mc.MenuCommands.AddRange(new MenuCommand[]{animate1,animate2,animate3,animate4,
animate5,animate6,animate7,animate8,
animate9,animateA,animateB,animateC,
animateD,animateE,animateF});
}
protected void CreateCarMenus(MenuCommand mc1, MenuCommand mc2)
{
// Create menu commands
MenuCommand car1 = new MenuCommand("Ford", _images, 0);
MenuCommand car2 = new MenuCommand("Vauxhall", _images, 1);
MenuCommand car3 = new MenuCommand("Opel", _images, 2);
MenuCommand car4 = new MenuCommand("Volvo", _images, 5);
MenuCommand car5 = new MenuCommand("Lotus", _images, 6, Shortcut.Alt0);
MenuCommand car6 = new MenuCommand("Aston Martin", _images, 0, Shortcut.ShiftF1);
MenuCommand car7 = new MenuCommand("Ferrari", _images, 1, Shortcut.CtrlShift0);
MenuCommand car8 = new MenuCommand("Jaguar", _images, 2, Shortcut.ShiftIns);
// Change default properties of some items
car2.Enabled = false;
car3.Enabled = false;
car4.Break = true;
car6.Infrequent = true;
car5.Infrequent = true;
mc1.MenuCommands.AddRange(new MenuCommand[]{car1,car2,car3,car4,car5,car6,car7,car8});
mc2.MenuCommands.AddRange(new MenuCommand[]{car1,car2,car3,car4,car5,car6,car7,car8});
}
protected void CreateCityMenus(MenuCommand mc1, MenuCommand mc2)
{
// Create menu commands
MenuCommand s0 = new MenuCommand("&Italy", _images, 0, new EventHandler(OnGenericSelect));
MenuCommand s1 = new MenuCommand("&Spain", _images, 1, new EventHandler(OnGenericSelect));
MenuCommand s2 = new MenuCommand("&Canada", _images, 2, new EventHandler(OnGenericSelect));
MenuCommand s3 = new MenuCommand("&France", _images, 3, new EventHandler(OnGenericSelect));
MenuCommand s4 = new MenuCommand("&Belgium", _images, 4, new EventHandler(OnGenericSelect));
MenuCommand spain0 = new MenuCommand("&Nerja", _images, 5, new EventHandler(OnGenericSelect));
MenuCommand spain1 = new MenuCommand("&Madrid", _images, 6, new EventHandler(OnGenericSelect));
MenuCommand spain2 = new MenuCommand("&Barcelona", _images, 0, new EventHandler(OnGenericSelect));
MenuCommand canada0 = new MenuCommand("Toronto", _images, 5, new EventHandler(OnGenericSelect));
MenuCommand canada1 = new MenuCommand("&Montreal", _images, 6, new EventHandler(OnGenericSelect));
MenuCommand canada2 = new MenuCommand("&Belleville", _images, 0, new EventHandler(OnGenericSelect));
MenuCommand england = new MenuCommand("England", _images, 2, new EventHandler(OnGenericSelect));
MenuCommand england1 = new MenuCommand("London", _images, 5, new EventHandler(OnGenericSelect));
MenuCommand england2 = new MenuCommand("&Birmingham", _images, 6, new EventHandler(OnGenericSelect));
MenuCommand england3 = new MenuCommand("&Nottingham", _images, 0, new EventHandler(OnGenericSelect));
// Define hierarchy
england.MenuCommands.AddRange(new MenuCommand[]{england1,england2,england3});
s1.MenuCommands.AddRange(new MenuCommand[]{spain0, spain1, spain2});
s2.MenuCommands.AddRange(new MenuCommand[]{canada0, canada1, canada2, england});
mc1.MenuCommands.AddRange(new MenuCommand[]{s0, s1, s2, s3, s4});
mc2.MenuCommands.AddRange(new MenuCommand[]{s0, s1, s2, s3, s4});
// Change default properties of some items
spain0.Infrequent = true;
spain1.Infrequent = true;
// Setup the left column details
england.MenuCommands.ExtraText = "English";
england.MenuCommands.ExtraTextColor = Color.White;
england.MenuCommands.ExtraBackColor = Color.DarkBlue;
england.MenuCommands.ExtraFont = new Font("Times New Roman", 12f, FontStyle.Bold | FontStyle.Italic);
s1.MenuCommands.ExtraText = "Spanish";
s1.MenuCommands.ExtraTextColor = Color.DarkRed;
s1.MenuCommands.ExtraBackColor = Color.Orange;
s1.MenuCommands.ExtraFont = new Font("Times New Roman", 12f, FontStyle.Bold | FontStyle.Italic);
s2.MenuCommands.ExtraText = "Canadian";
s2.MenuCommands.ExtraTextColor = Color.White;
s2.MenuCommands.ExtraBackColor = Color.DarkRed;
s2.MenuCommands.ExtraFont = new Font("Times New Roman", 12f, FontStyle.Bold | FontStyle.Italic);
mc1.MenuCommands.ExtraText = "Countries";
mc1.MenuCommands.ExtraTextColor = Color.White;
mc1.MenuCommands.ExtraBackColor = Color.SlateGray;
mc1.MenuCommands.ExtraFont = new Font("Times New Roman", 12f, FontStyle.Bold | FontStyle.Italic);
}
protected void CreateMovieMenus(MenuCommand mc1, MenuCommand mc2)
{
// Create menu commands
MenuCommand movie0 = new MenuCommand("Dr No", _images, 0, new EventHandler(OnGenericSelect));
MenuCommand movie1 = new MenuCommand("Goldfinger", _images, 1, new EventHandler(OnGenericSelect));
MenuCommand movie2 = new MenuCommand("Goldeneye", _images, 2, new EventHandler(OnGenericSelect));
MenuCommand movie3 = new MenuCommand("-");
MenuCommand movie4 = new MenuCommand("Live and Let Die", _images, 3, new EventHandler(OnGenericSelect));
MenuCommand movie5 = new MenuCommand("Man with the Golden Gun", _images, 4, new EventHandler(OnGenericSelect));
MenuCommand movie6 = new MenuCommand("License Revoked", _images, 5, new EventHandler(OnGenericSelect));
MenuCommand movie7 = new MenuCommand("Diamonds are Forever", _images, 6, new EventHandler(OnGenericSelect));
MenuCommand movie8 = new MenuCommand("From Russia with Love", _images, 0, new EventHandler(OnGenericSelect));
// Change default properties of some items
movie0.Infrequent = true;
movie1.Infrequent = true;
movie5.Infrequent = true;
movie7.Infrequent = true;
movie8.Infrequent = true;
mc1.MenuCommands.AddRange(new MenuCommand[]{movie0, movie1, movie2, movie3, movie4, movie5, movie6, movie7, movie8});
mc2.MenuCommands.AddRange(new MenuCommand[]{movie0, movie1, movie2, movie3, movie4, movie5, movie6, movie7, movie8});
// Setup the left column details
mc1.MenuCommands.ExtraText = "Bond Films";
mc1.MenuCommands.ExtraFont = new Font("Garamond", 12f, FontStyle.Bold);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -