[リストへもどる]
一括表示

投稿時間:2003/08/11(Mon) 11:42
投稿者名:たけし
Eメール:
URL :
タイトル:
メタファイルの表示
Win98 + VB6 です。
LoadPictreでPictureBoxにメタファイル(拡張子.WMF)を表示しようと
すると、「ピクチャが不正」エラーで失敗します。
フリーの画像ビューワだと表示されるのでファイルに問題ない様です。
どうしたら、表示できるのでしょうか?
宜しくお願いします。

投稿時間:2003/08/11(Mon) 12:28
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: メタファイルの表示
> Win98 + VB6 です。
> LoadPictreでPictureBoxにメタファイル(拡張子.WMF)を表示しようと
> すると、「ピクチャが不正」エラーで失敗します。

Private Sub Command1_Click()
    Picture1.Picture = LoadPicture("c:\test.WMF")
End Sub

で問題なく表示されますが。
Win98SE VB6.0(SP5)   WinXP VB6.0(SP5) 共OK

他の WMF ファイルでも試して見て下さい。

投稿時間:2003/08/11(Mon) 14:24
投稿者名:たけし
Eメール:
URL :
タイトル:
Re^2: メタファイルの表示
レスありがとうほざいます。

> 他の WMF ファイルでも試して見て下さい。

MS Office にあるWMFファイル試してみたら、
問題なく表示されました。

しかし、問題のWMFファイルは表示できません。
拡張子が同じでフォーマットが違うってことが
あるんでしょか?

投稿時間:2003/08/11(Mon) 14:57
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: メタファイルの表示
> しかし、問題のWMFファイルは表示できません。
> 拡張子が同じでフォーマットが違うってことが
> あるんでしょか?

通常メタファイルには
Windowsメタファイル(WMF) と プレーサブルWindowsメタファイル(WMF) と 
拡張メタファイル(EMF) があり VBではWindowsメタファイル(WMF)はサポート
していないようです。
従って表示しなかったのは、Windowsメタファイル(WMF)かと思われます。

API等を使って変換するか、クリップボードを経由すれば表示されるようですが?。
 

投稿時間:2003/08/11(Mon) 15:42
投稿者名:たけし
Eメール:
URL :
タイトル:
Re^4: メタファイルの表示
レスありがとうございます。

> Windowsメタファイル(WMF) と プレーサブルWindowsメタファイル(WMF) と 
> 拡張メタファイル(EMF) があり VBではWindowsメタファイル(WMF)はサポート
> していないようです。
> 従って表示しなかったのは、Windowsメタファイル(WMF)かと思われます。
>
> API等を使って変換するか、クリップボードを経由すれば表示されるようですが?。
>
Windowsメタファイル(WMF)をプレーサブルWindowsメタファイル(WMF)か、
拡張メタファイル(EMF)に変換してからLoadPictureすれば表示できる
ということですね。変換方法について、調べてみます。
いろいろと、ありがとうございました。

投稿時間:2003/08/11(Mon) 16:28
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^5: メタファイルの表示
> Windowsメタファイル(WMF)をプレーサブルWindowsメタファイル(WMF)か、
> 拡張メタファイル(EMF)に変換してからLoadPictureすれば表示できる
> ということですね。変換方法について、調べてみます。

SetWinMetaFileBits APIでできるようです。
http://tokyo.cool.ne.jp/masapico/api_sample_metafile11_vb.html

投稿時間:2003/08/11(Mon) 18:50
投稿者名:たけし
Eメール:
URL :
タイトル:
Re^6: メタファイルの表示
情報ありがとうございます。

早速、試してみました。
GetMetaFile関数で、いきなり失敗してしまいました。
いろいろ悩んだ結果、ロングパスを使ったのが原因の様です。
ショートパスにしたら、成功しました。
で、変換した拡張メタファイルをLoadPictureしたら、表示できました。

あと、同じサイトに
Windowsメタファイルの描画(VB)
http://tokyo.cool.ne.jp/masapico/api_sample_metafile08_vb.html
というのがあったので試してみました。
API関数は全て成功しているんですが、何故か表示できませんでした。

でも、拡張メタファイルに変換する方法で表示できたので助かりました。
いろいろと、ありがとうございました。