■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#29185-0
アイコンファイルをクリップボードへコピー
質問させて下さい。アイコンファイルをクリップボードへ
コピーしたいのですが、以下のコードで実行した結果、
「実行時エラー '460':クリップボードの形式が不正です」と
エラー表示されてしまいます。

    'クリップボードをクリア
    Clipboard.Clear
    
    'クリップボードへコピー
    Clipboard.SetData LoadPicture("c:\sample.ico")

オンラインヘルプの構文上、「format」を省略した場合、
「適切な形式が自動的に選択されます。」とあるのに何故なのでしょうか?
ご存知の方、いらっしゃいましたら教えて頂けないでしょうか。
#29191-0
RE#29185:アイコンファイルをクリップボードへコピー
アイコンは、クリップボードで転送するための標準フォーマットとして
作られていません。そのままで転送可能なのは、ビットマップかメタ
ファイルのどちらかになります。
#29194-0
RE#29191:アイコンファイルをクリップボードへコピー
> アイコンは、クリップボードで転送するための標準フォーマットとして
> 作られていません。そのままで転送可能なのは、ビットマップかメタ
> ファイルのどちらかになります。

回答ありがとうございます。>K.J.Kさん
フォーマットの変換が必要とゆー事なのでしょうか。
現在、正常動作しないコードは以下ですが、

    'クリップボードをクリア
    Clipboard.Clear
    
    'クリップボードへコピー
    Clipboard.SetData LoadPicture("c:\sample.ico")


上記を以下の様に変更した場合でも、「アイコン」と認識されて
しまうのでしょうか。

    Image1.Picture = LoadPicture("c:\sample.ico")

    'クリップボードをクリア
    Clipboard.Clear

    'クリップボードへコピー
    Clipboard.SetData Image1.Picture
    

何度もすませんが、以上宜しくお願いします。
#29196-0
RE#29194:アイコンファイルをクリップボードへコピー
> フォーマットの変換が必要とゆー事なのでしょうか。

ビットマップまたはメタファイルとして転送するか、それともAPI関数を使って
独自のフォーマットを登録し、それとして送るか、のどちらかになるでしょう。

> 上記を以下の様に変更した場合でも、「アイコン」と認識されて
> しまうのでしょうか。

です。PictureオブジェクトのTypeプロパティを調べればわかります。
#29198-0
RE#29194:アイコンファイルをクリップボードへコピー
> 上記を以下の様に変更した場合でも、「アイコン」と認識されて
> しまうのでしょうか。

Pictureオブジェクトは、元の画像形式を保持します。

Image1に読み込もうと、Picture型変数に読み込もうと、
LoadPictureされた画像の色数やフォーマットが
変換されるわけではありません。
アイコンはアイコン、メタファイルはメタファイル、
ビットマップはビットマップのままとなります。

# ただし、GIFやJPEGは、ビットマップ変換されて読み込まれます。


ビットマップ変換したいなら、PaintPictureメソッドを用いて、
AutoRedraw=TrueなPictureBox(もしくはForm)に「描画」して、
そのImageプロパティを参照するようにしましょう。これならばBMP化されます。
(この場合、その画像の色数は、画面の色数に修正される事になります)
#29199-0
RE#29196:アイコンファイルをクリップボードへコピー
分かり易い回答をありがとうございます。>K.J.K. さん
アドバイスを参考に頑張ってみます。


#29200-0
RE#29198:アイコンファイルをクリップボードへコピー
さらに詳しいアドバイスをありがとうございます。>Dentalさん
良くわかりました。
本件と関係無いですが、このQ&A掲示版を私物化している(自分がうるさい)ような気が
してきたのでしばらく自粛します。
みなさん、本当にありがとうございました。
このページと関連する記事:
#4310-1「コピーする」のデータはどこにあるのか?1999-09-01(水) 03:04
#41554-0巨大なビットマップの表示及び印刷について2001-04-11(水) 16:11
#2696-0PaintPictureメソッドでPrinterオブジェクトに送る方法について1999-10-08(金) 19:34
#11141-0たくさんのlineの描き方2000-09-06(水) 08:39
#20898-0ビットマップの起動は?2001-05-16(水) 10:48
#4630-0クリップボードとの受け渡しについて1999-12-28(火) 05:18
#11887-1Formのコピー&ペースト2000-06-22(木) 10:09
#21955-0ClipBoardについて2001-07-24(火) 17:28
#45900-0ビットマップ画像の反転、保存2001-08-16(木) 04:54
#46308-0拡張メタファイル(EMF)からビットマップ(BMP)への変換2001-08-29(水) 18:45
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)