メニューから画像を選択

Windows モードから幾つかのプログラムを抜粋して CLI で動かします。
メニューから画像を選択 を CLI で動かしてみましょう。
JPEG だけで無く BMP, GIF, ICON など様々なタイプのファイルを描画することが出来ます。
透明色が設定された GIF(透過GIF)を読み込むと透明色が有効です。
残念ながらアニメーション GIF を読み込んでもアニメーションは働きません。

CLI で動かす

  1. C:\Data\C#\BAT\win\ のフォルダーに MenuImage.cs の名前で utf-8(BOM 有り)でタイプして格納して下さい。
    /*★ メニュー選択で、直接ファイルから画像を入力する    前田 稔 ★*/
    using System;
    using System.IO;
    using System.Drawing;
    using System.Windows.Forms;
    
    public class MyForm : Form
    {
        private string ImgFile = "";
        public MyForm()
        {
            Paint += new PaintEventHandler(MyHandler);
    
            // メインメニューを生成
            MainMenu menu = new MainMenu();
    
            // ファイルメニューを生成
            MenuItem item = menu.MenuItems.Add("ファイル(&F)");
            item.MenuItems.Add(new MenuItem("開く(&O)...", new EventHandler(this.FileOpen)));
            item.MenuItems.Add("-");
    
            // ファイル(終了)メニューを生成
            item.MenuItems.Add(new MenuItem("終了(&X)", new EventHandler(this.FileExit), Shortcut.CtrlQ));
    
            // フォームのメニューとしてセット
            this.Menu = menu;
        }
    
        private void MyHandler(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            if (ImgFile!=string.Empty)
                g.DrawImage(new Bitmap(ImgFile), new PointF(10F,10F));
        }
    
        // ファイル-開くメニューのイベントハンドラ
        private void FileOpen(object sender, EventArgs e)
        {
            OpenFileDialog opendlg = new OpenFileDialog();
            opendlg.Filter = "画像ファイル (*.jpg)|*.jpg|すべてのファイル (*.*)|*.*" ;
            if (opendlg.ShowDialog() == DialogResult.OK)
            {
                // 選択画像を表示
                ImgFile = opendlg.FileName;
                Invalidate();
            }
        }
    
        // ファイル-終了メニューのイベントハンドラ
        private void FileExit(object sender, EventArgs e)
        {   this.Close();
        }
    }
    
    class image01
    {
        [STAThread]
        public static void Main()
        {
            MyForm mf = new MyForm();
            Application.Run(mf);
        }
    }
    
  2. スタートメニューから[すべてのプログラム][Visual C++ 2005 Express Edition][Visual Studio Tools] [Visual Studio 2005 コマンド プロンプト] から起動します。
    C:\Data\C#\BAT\win のフォルダーに移動して、直接 csc コマンドを叩きます。
    MenuImage.exe を実行するとファイル選択ダイアログが表示されます。
    画像ファイルを選択すると、選択した画像が描画されます。
    >CD C:\Data\C#\BAT\win
    >CSC MenuImage.cs
    >MenuImage.exe          
    
  3. [ファイル(&F)] メニューから [開く(&O)] を選ぶと、別の画像ファイルを選択することが出来ます。
    JPEG, BMP, GIF, PNG, ICON なども試してみて下さい。
  4. メニューの設定は new MainMenu() でメインメニューを作成します。
        // メインメニューを生成
        MainMenu menu = new MainMenu();
    
  5. メインメニューにアイテム(項目)を設定します。
        // ファイルメニューを生成
        MenuItem item = menu.MenuItems.Add("ファイル(&F)");
    
  6. メニューアイテムにイベントハンドラを設定します。
    FileOpen, FileExit がイベントハンドラの名前です。
    Shortcut.CtrlQ がショートカットの設定で、Ctrl+Q で FileExit が呼び出されます。
        item.MenuItems.Add(new MenuItem("開く(&O)...", new EventHandler(this.FileOpen)));
        item.MenuItems.Add("-");
    
        // ファイル(終了)メニューを生成
        item.MenuItems.Add(new MenuItem("終了(&X)", new EventHandler(this.FileExit), Shortcut.CtrlQ));
    
  7. メインメニューをフォームに設定します。
        // フォームのメニューとしてセット
        this.Menu = menu;
    

超初心者のプログラム入門(C#)