📄 printgdi.cs
字号:
// PrintGdi.cs - Main form for PrintGdi program, which
// demonstrates printing with GDI-based rendering.
//
// Code from _Programming the .NET Compact Framework with C#_
// and _Programming the .NET Compact Framework with VB_
// (c) Copyright 2002-2004 Paul Yao and David Durant.
// All rights reserved.
using System;
using System.IO;
using System.Text;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.WindowsCE.Forms;
using System.Runtime.InteropServices;
using YaoDurant.Drawing;
using YaoDurant.Win32;
namespace PrintGdi
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class FormMain : System.Windows.Forms.Form
{
private System.Windows.Forms.ImageList ilistCommands;
private System.Windows.Forms.MainMenu menuMain;
private System.Windows.Forms.MenuItem mitemFilePopup;
private System.Windows.Forms.MenuItem mitemFileNew;
private System.Windows.Forms.MenuItem mitemFileOpen;
private System.Windows.Forms.MenuItem mitemFileSave;
private System.Windows.Forms.MenuItem mitemFileSaveAs;
private System.Windows.Forms.MenuItem mitemFileFormat;
private System.Windows.Forms.MenuItem mitemFFAscii;
private System.Windows.Forms.MenuItem mitemFFUnicode;
private System.Windows.Forms.MenuItem mitemFFUtf7;
private System.Windows.Forms.MenuItem mitemFFUtf8;
private System.Windows.Forms.MenuItem mitemFFDefault;
private System.Windows.Forms.MenuItem menuItem1;
private System.Windows.Forms.MenuItem mitemFilePrint;
private System.Windows.Forms.MenuItem mitemEditPopup;
private System.Windows.Forms.MenuItem mitemEditCut;
private System.Windows.Forms.MenuItem mitemEditCopy;
private System.Windows.Forms.MenuItem mitemEditPaste;
private System.Windows.Forms.MenuItem menuItem7;
private System.Windows.Forms.MenuItem mitemEditClear;
private System.Windows.Forms.MenuItem mitemEditUndo;
private System.Windows.Forms.MenuItem menuItem8;
private System.Windows.Forms.MenuItem mitemEditFont;
private System.Windows.Forms.MenuItem mitemToolsPopup;
private System.Windows.Forms.MenuItem mitemToolsOptions;
private System.Windows.Forms.MenuItem mitemSettingsPopup;
private System.Windows.Forms.MenuItem mitemSettingsSave;
private System.Windows.Forms.MenuItem mitemSettingsRestore;
private System.Windows.Forms.MenuItem mitemSettingsInit;
private System.Windows.Forms.ContextMenu cmenuMain;
private System.Windows.Forms.MenuItem mitemProgramMenu;
private System.Windows.Forms.MenuItem mitemToolbar;
private System.Windows.Forms.ToolBar tbarCommands;
private System.Windows.Forms.ToolBarButton tbbEditFormat;
private System.Windows.Forms.TextBox tboxInput;
private System.Windows.Forms.ToolBarButton tbbViewOptions;
public FormMain()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(FormMain));
this.tboxInput = new System.Windows.Forms.TextBox();
this.ilistCommands = new System.Windows.Forms.ImageList();
this.menuMain = new System.Windows.Forms.MainMenu();
this.mitemFilePopup = new System.Windows.Forms.MenuItem();
this.mitemFileNew = new System.Windows.Forms.MenuItem();
this.mitemFileOpen = new System.Windows.Forms.MenuItem();
this.mitemFileSave = new System.Windows.Forms.MenuItem();
this.mitemFileSaveAs = new System.Windows.Forms.MenuItem();
this.mitemFileFormat = new System.Windows.Forms.MenuItem();
this.mitemFFAscii = new System.Windows.Forms.MenuItem();
this.mitemFFUnicode = new System.Windows.Forms.MenuItem();
this.mitemFFUtf7 = new System.Windows.Forms.MenuItem();
this.mitemFFUtf8 = new System.Windows.Forms.MenuItem();
this.mitemFFDefault = new System.Windows.Forms.MenuItem();
this.menuItem1 = new System.Windows.Forms.MenuItem();
this.mitemFilePrint = new System.Windows.Forms.MenuItem();
this.mitemEditPopup = new System.Windows.Forms.MenuItem();
this.mitemEditCut = new System.Windows.Forms.MenuItem();
this.mitemEditCopy = new System.Windows.Forms.MenuItem();
this.mitemEditPaste = new System.Windows.Forms.MenuItem();
this.menuItem7 = new System.Windows.Forms.MenuItem();
this.mitemEditClear = new System.Windows.Forms.MenuItem();
this.mitemEditUndo = new System.Windows.Forms.MenuItem();
this.menuItem8 = new System.Windows.Forms.MenuItem();
this.mitemEditFont = new System.Windows.Forms.MenuItem();
this.mitemToolsPopup = new System.Windows.Forms.MenuItem();
this.mitemToolsOptions = new System.Windows.Forms.MenuItem();
this.mitemSettingsPopup = new System.Windows.Forms.MenuItem();
this.mitemSettingsSave = new System.Windows.Forms.MenuItem();
this.mitemSettingsRestore = new System.Windows.Forms.MenuItem();
this.mitemSettingsInit = new System.Windows.Forms.MenuItem();
this.cmenuMain = new System.Windows.Forms.ContextMenu();
this.mitemProgramMenu = new System.Windows.Forms.MenuItem();
this.mitemToolbar = new System.Windows.Forms.MenuItem();
this.tbarCommands = new System.Windows.Forms.ToolBar();
this.tbbEditFormat = new System.Windows.Forms.ToolBarButton();
this.tbbViewOptions = new System.Windows.Forms.ToolBarButton();
//
// tboxInput
//
this.tboxInput.Multiline = true;
this.tboxInput.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.tboxInput.Size = new System.Drawing.Size(240, 240);
this.tboxInput.Text = "Some text inside a textbox.";
//
// ilistCommands
//
this.ilistCommands.Images.Add(((System.Drawing.Image)(resources.GetObject("resource"))));
this.ilistCommands.Images.Add(((System.Drawing.Image)(resources.GetObject("resource1"))));
this.ilistCommands.ImageSize = new System.Drawing.Size(16, 16);
//
// menuMain
//
this.menuMain.MenuItems.Add(this.mitemFilePopup);
this.menuMain.MenuItems.Add(this.mitemEditPopup);
this.menuMain.MenuItems.Add(this.mitemToolsPopup);
this.menuMain.MenuItems.Add(this.mitemSettingsPopup);
//
// mitemFilePopup
//
this.mitemFilePopup.MenuItems.Add(this.mitemFileNew);
this.mitemFilePopup.MenuItems.Add(this.mitemFileOpen);
this.mitemFilePopup.MenuItems.Add(this.mitemFileSave);
this.mitemFilePopup.MenuItems.Add(this.mitemFileSaveAs);
this.mitemFilePopup.MenuItems.Add(this.mitemFileFormat);
this.mitemFilePopup.MenuItems.Add(this.menuItem1);
this.mitemFilePopup.MenuItems.Add(this.mitemFilePrint);
this.mitemFilePopup.Text = "File";
//
// mitemFileNew
//
this.mitemFileNew.Text = "New";
this.mitemFileNew.Click += new System.EventHandler(this.mitemFileNew_Click);
//
// mitemFileOpen
//
this.mitemFileOpen.Text = "Open...";
this.mitemFileOpen.Click += new System.EventHandler(this.mitemFileOpen_Click);
//
// mitemFileSave
//
this.mitemFileSave.Text = "Save";
this.mitemFileSave.Click += new System.EventHandler(this.mitemFileSave_Click);
//
// mitemFileSaveAs
//
this.mitemFileSaveAs.Text = "SaveAs...";
this.mitemFileSaveAs.Click += new System.EventHandler(this.mitemFileSaveAs_Click);
//
// mitemFileFormat
//
this.mitemFileFormat.MenuItems.Add(this.mitemFFAscii);
this.mitemFileFormat.MenuItems.Add(this.mitemFFUnicode);
this.mitemFileFormat.MenuItems.Add(this.mitemFFUtf7);
this.mitemFileFormat.MenuItems.Add(this.mitemFFUtf8);
this.mitemFileFormat.MenuItems.Add(this.mitemFFDefault);
this.mitemFileFormat.Text = "Format";
//
// mitemFFAscii
//
this.mitemFFAscii.Text = "Ascii";
this.mitemFFAscii.Click += new System.EventHandler(this.mitemFFFormat_Click);
//
// mitemFFUnicode
//
this.mitemFFUnicode.Text = "Unicode";
this.mitemFFUnicode.Click += new System.EventHandler(this.mitemFFFormat_Click);
//
// mitemFFUtf7
//
this.mitemFFUtf7.Text = "Utf7";
this.mitemFFUtf7.Click += new System.EventHandler(this.mitemFFFormat_Click);
//
// mitemFFUtf8
//
this.mitemFFUtf8.Text = "Utf8";
this.mitemFFUtf8.Click += new System.EventHandler(this.mitemFFFormat_Click);
//
// mitemFFDefault
//
this.mitemFFDefault.Text = "Default";
this.mitemFFDefault.Click += new System.EventHandler(this.mitemFFFormat_Click);
//
// menuItem1
//
this.menuItem1.Text = "-";
//
// mitemFilePrint
//
this.mitemFilePrint.Text = "Print...";
this.mitemFilePrint.Click += new System.EventHandler(this.mitemFilePrint_Click);
//
// mitemEditPopup
//
this.mitemEditPopup.MenuItems.Add(this.mitemEditCut);
this.mitemEditPopup.MenuItems.Add(this.mitemEditCopy);
this.mitemEditPopup.MenuItems.Add(this.mitemEditPaste);
this.mitemEditPopup.MenuItems.Add(this.menuItem7);
this.mitemEditPopup.MenuItems.Add(this.mitemEditClear);
this.mitemEditPopup.MenuItems.Add(this.mitemEditUndo);
this.mitemEditPopup.MenuItems.Add(this.menuItem8);
this.mitemEditPopup.MenuItems.Add(this.mitemEditFont);
this.mitemEditPopup.Text = "Edit";
//
// mitemEditCut
//
this.mitemEditCut.Text = "Cut";
//
// mitemEditCopy
//
this.mitemEditCopy.Text = "Copy";
//
// mitemEditPaste
//
this.mitemEditPaste.Text = "Paste";
//
// menuItem7
//
this.menuItem7.Text = "-";
//
// mitemEditClear
//
this.mitemEditClear.Text = "Clear";
//
// mitemEditUndo
//
this.mitemEditUndo.Text = "Undo";
//
// menuItem8
//
this.menuItem8.Text = "-";
//
// mitemEditFont
//
this.mitemEditFont.Text = "Font...";
this.mitemEditFont.Click += new System.EventHandler(this.mitemEditFont_Click);
//
// mitemToolsPopup
//
this.mitemToolsPopup.MenuItems.Add(this.mitemToolsOptions);
this.mitemToolsPopup.Text = "Tools";
//
// mitemToolsOptions
//
this.mitemToolsOptions.Text = "Options...";
this.mitemToolsOptions.Click += new System.EventHandler(this.mitemToolsOptions_Click);
//
// mitemSettingsPopup
//
this.mitemSettingsPopup.MenuItems.Add(this.mitemSettingsSave);
this.mitemSettingsPopup.MenuItems.Add(this.mitemSettingsRestore);
this.mitemSettingsPopup.MenuItems.Add(this.mitemSettingsInit);
this.mitemSettingsPopup.Text = "Settings";
//
// mitemSettingsSave
//
this.mitemSettingsSave.Text = "Save";
this.mitemSettingsSave.Click += new System.EventHandler(this.mitemSettingsSave_Click);
//
// mitemSettingsRestore
//
this.mitemSettingsRestore.Text = "Restore";
this.mitemSettingsRestore.Click += new System.EventHandler(this.mitemSettingsRestore_Click);
//
// mitemSettingsInit
//
this.mitemSettingsInit.Text = "Initialize";
this.mitemSettingsInit.Click += new System.EventHandler(this.mitemSettingsInit_Click);
//
// cmenuMain
//
this.cmenuMain.MenuItems.Add(this.mitemProgramMenu);
this.cmenuMain.MenuItems.Add(this.mitemToolbar);
this.cmenuMain.Popup += new System.EventHandler(this.cmenuMain_Popup);
//
// mitemProgramMenu
//
this.mitemProgramMenu.Text = "Program Menu";
this.mitemProgramMenu.Click += new System.EventHandler(this.mitemProgramMenu_Click);
//
// mitemToolbar
//
this.mitemToolbar.Text = "Toolbar";
this.mitemToolbar.Click += new System.EventHandler(this.mitemToolbar_Click);
//
// tbarCommands
//
this.tbarCommands.Buttons.Add(this.tbbEditFormat);
this.tbarCommands.Buttons.Add(this.tbbViewOptions);
this.tbarCommands.ImageList = this.ilistCommands;
this.tbarCommands.ButtonClick += new System.Windows.Forms.ToolBarButtonClickEventHandler(this.tbarCommands_ButtonClick);
//
// tbbEditFormat
//
this.tbbEditFormat.ImageIndex = 0;
//
// tbbViewOptions
//
this.tbbViewOptions.ImageIndex = 1;
//
// FormMain
//
this.Controls.Add(this.tboxInput);
this.Controls.Add(this.tbarCommands);
this.Menu = this.menuMain;
this.MinimizeBox = false;
this.Text = "PrintGdi";
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main()
{
Application.Run(new FormMain());
}
// Supports clipboard messages to text box.
private Microsoft.WindowsCE.Forms.Message m_msg;
private void FormMain_Load(object sender, EventArgs e)
{
mitemSettingsRestore_Click(this, EventArgs.Empty);
// Set focus to text box window.
this.tboxInput.Focus();
// Fetch window handle of text box.
IntPtr hwndEditor = GetFocus();
// Create message structure for sending Win32 messages
m_msg = Message.Create(hwndEditor, 0, IntPtr.Zero,
IntPtr.Zero);
}
#region Fonts and Settings
/// mitemEditFont - Respond to menu selection Edit->Font...
private void mitemEditFont_Click(
object sender,
System.EventArgs e)
{
DlgFont dlg = new DlgFont(this);
// Initialize input values to dialog.
dlg.strFontName = tboxInput.Font.Name;
dlg.cemFontSize = tboxInput.Font.Size;
FontStyle fsTemp = tboxInput.Font.Style;
dlg.bBold = ((fsTemp & FontStyle.Bold) != 0);
dlg.bItalic = ((fsTemp & FontStyle.Italic) != 0);
dlg.bUnderline = ((fsTemp & FontStyle.Underline) != 0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -