今日の目標→
前回のプログラム(ImageView2)に手を加え、クリップボードから画像を貼り付けられるようにする。
●プロジェクトの作成
- 「ImageView3」という名前で、新規プロジェクトを作る
- Form1.csのコードを開き、ImageView2のForm1.csからコードをコピペする
- コードを次のように修正する。
コードを書き終えたらさっそく実行してみよう。他のソフト上で画像の「コピー」を実行し、このプログラムの「貼り付け」メニューを選択すると、ピクチャボックスに画像が表示されるはずだ。
●要点の解説
クリップボードとの画像データのやりとりは単純だ。次の2つのメソッドを使えばいい。
- Clipboard.SetImage() → クリップボードに画像を保存する
- Clipboard.GetImage() → クリップボードから画像を取得する
まあ実際は、このお手軽なメソッドにも弱点があって、透過GIFや透過PNGをクリップボード経由でやりとりすると透明色が消えてしまったりする。この問題は、昔なんかして解決した記憶があるので、あとで思い出したら解決法を書いてみる。
しかし今回の追加コードのほとんどがメニュー関連の処理になってしまった。ここでは標準のMenuStripクラスじゃなくて、古くからあるMainMenuクラスを使っている。古いプログラムから取ってきたコードだけど問題なく動いてよかった。
またメニューの設定データにXMLを利用している。こういうメニューみたいな階層構造のデータは、XMLで記述するのが楽である。XMLの使い方はそのうちちゃんと説明するので、しばらくお待ちくだされ。
(実行画面が入る予定)
0 件のコメント:
コメントを投稿