tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルアニメgifの最大化
記事No10978
投稿日: 2007/12/22(Sat) 23:38
投稿者tpi
6.0で、WebBrowserをつかってアニメーションgifを表示しています。
これをフルスクリーンでも表示したいのですが、方法が分かりません。
ご教授頂ければ幸いです。

[ツリー表示へ]
タイトルRe: アニメgifの最大化
記事No10979
投稿日: 2007/12/23(Sun) 07:32
投稿者花ちゃん
> 6.0で、WebBrowserをつかってアニメーションgifを表示しています。
> これをフルスクリーンでも表示したいのですが、方法が分かりません。

WebBrowser を Form 上に表示しているのなら、Form をフルスクリーン表示して
そのサイズにWebBrowser を表示すればいいのでは。

それとも、アニメーションgif を拡大表示したいと言う事でしょうか?
こちらも、表示サイズを変更すれば、拡大・縮小表示されますが。

[ツリー表示へ]
タイトルRe^2: アニメgifの最大化
記事No10986
投稿日: 2007/12/23(Sun) 22:25
投稿者tpi
> それとも、アニメーションgif を拡大表示したいと言う事でしょうか?
フォームの最大化に合わせて、アニメーションgifも拡大して、フルスクリーン表示したいという意味です。
説明不足ですみません。

それで、基本的な質問なのですが、表示サイズを変更というのは、Resizeイベントを用いて、WebBrowserのプロパティを変更するということでしょうか?

[ツリー表示へ]
タイトルRe^3: アニメgifの最大化
記事No10987
投稿日: 2007/12/24(Mon) 01:05
投稿者あきら。
htmlで
<img src="画像.gif" alt="説明" title="タイトル" width=www height=hhh>
ってすると画像はブラウザーでwww x hhhで表示されます。縮小もできます。
拡大は当然画像が荒くなります。
後はフォームの大きさよりブラウザーコントロールの幅と高さ等を設定してみて下さい。
自力で頑張ってみて下さい。
っていうか私もこれ位しか知りません。(笑)

[ツリー表示へ]
タイトルRe^3: アニメgifの最大化
記事No10988
投稿日: 2007/12/24(Mon) 01:25
投稿者あきら。
> それで、基本的な質問なのですが、表示サイズを変更というのは、Resizeイベントを用いて、WebBrowserのプロパティを変更するということでしょうか?

やってみて下さい。


ただし、このtreeの流れの方法だとhtmlに書いてある通りにしか画像は表示できないような気がします…。
(画像直リンなら画像の実際の大きさ)
もし、サーバー側などでの動的なhtmlの変更ができるのであれば、話が変わってくると思います。

[ツリー表示へ]
タイトルRe^3: アニメgifの最大化
記事No10995
投稿日: 2007/12/25(Tue) 10:46
投稿者魔界の仮面弁士
> Resizeイベントを用いて、WebBrowserのプロパティを変更するということでしょうか?

Option Explicit

Private img As Object
Private imgStyle As Object
Private baseWidth As Integer
Private baseHeight As Integer

Private Sub Form_Load()
    ScaleMode = vbPixels
    WebBrowser1.Navigate "C:\sample.gif"
    WebBrowser1.RegisterAsDropTarget = False
End Sub

Private Sub Resize()
    WebBrowser1.Move 0, 0, ScaleWidth, ScaleHeight
    If img Is Nothing Then
        Exit Sub
    End If
    Dim xZoom As Single, yZoom As Single
    On Error Resume Next
    xZoom = ScaleWidth / baseWidth
    yZoom = ScaleHeight / baseHeight
    If Err.Number <> 0 Then
        xZoom = 1!
        yZoom = 1!
    End If
    On Error GoTo 0
    If xZoom <= 1! Or yZoom <= 1! Then
        imgStyle.zoom = "100%"
    Else
        imgStyle.zoom = Format(IIf(xZoom < yZoom, xZoom, yZoom), "0.000%")
    End If
End Sub

Private Sub Form_Resize()
    Resize
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Dim doc As Object
    Set doc = pDisp.Document
    Dim body As Object
    Set body = doc.body
    With body.runtimeStyle
        .padding = "0"
        .margin = "0"
        .overflow = "hidden"
        .BorderStyle = "none"
        .backgroundColor = "ThreeDFace"
    End With
    Set img = doc.getElementsByTagName("IMG")(0)
    baseWidth = img.clientWidth
    baseHeight = img.clientHeight
    Set imgStyle = img.runtimeStyle
    imgStyle.margin = "0"
    Resize
End Sub

[ツリー表示へ]
タイトルRe^4: アニメgifの最大化
記事No11008
投稿日: 2007/12/26(Wed) 00:07
投稿者tpi
ありがとうございます。
gifの最大化に関しては解決しました。


重ねて質問なのですが、
フォームの最大化時に、タイトルバーとタスクバーを消して、本当のフルスクリーン表示にしたいのですが、resize内で、

if Form1.WindowState = vbMinimized Then
Form1.BorderStyle = vbBSNone
Form1.Caption = ""
End Sub

のようにしてみましたが、タスクバーを消す方法や最大化を元に戻す方法が分からない上、これだと端の方に隙間ができてしまいます。

どうかご教授おねがいします。

[ツリー表示へ]
タイトルRe^5: アニメgifの最大化
記事No11009
投稿日: 2007/12/26(Wed) 00:26
投稿者花ちゃん
> のようにしてみましたが、タスクバーを消す方法や最大化を元に戻す方法が分からない上、これだと端の方に隙間ができてしまいます。

逆引きヘルプ一覧表 の た行 のところを参照

[ツリー表示へ]
タイトルRe^6: アニメgifの最大化
記事No11011
投稿日: 2007/12/26(Wed) 03:03
投稿者tpi
タスクバーを消す方法ですが、これを実装すると最大化したときにgifの表示がものすごく重くなってしまいます。
サンプルを単体で動かしたときはそんなことはなかったのですが、実装のやり方がまずかったのでしょうか?
サンプルをボタンで実行するところを最大化時に実行するように書き換えただけなのですが・・・。


あとresizeイベント内での判定も

If Form1.WindowState = vbMaximized Then
'タスクバーを消す処理
End If

としただけでは、最大化している間、何度も実行されてしまうので、最大化ボタンを押した時だけに実行できるようにしたいです。

[ツリー表示へ]
タイトルRe^7: アニメgifの最大化
記事No11013
投稿日: 2007/12/26(Wed) 07:48
投稿者花ちゃん
>タスクバーを消す方法ですが、これを実装すると最大化したときにgifの表示がものすごく
>重くなってしまいます。

画像の拡大表示が影響していませんか?
拡大する倍率や画像サイズに制限を加える等するしか仕方がないかも。
因みに、画像のサイズ(寸法・バイト数)はどの位ですか


> あとresizeイベント内での判定も
>
> If Form1.WindowState = vbMaximized Then
> 'タスクバーを消す処理
> End If
>
> としただけでは、最大化している間、何度も実行されてしまうので、最大化ボタンを押した時だけに実行できるようにしたいです。

そこまでできたのなら、もう少し、考えて判定に工夫を加えて下さい。

タスクバーの状態とFormの状態を取得(フラグを設定して判定するもよし)してから、
必要なら タスクバーを消す処理をし、Form が最大でタスクバー消えている場合は
処理をしなければいいのではないですか。

[ツリー表示へ]
タイトルRe^8: アニメgifの最大化
記事No11016
投稿日: 2007/12/27(Thu) 09:55
投稿者tpi
> 因みに、画像のサイズ(寸法・バイト数)はどの位ですか
320×240で、容量は10kb以下です。


> 必要なら タスクバーを消す処理をし、Form が最大でタスクバー消えている場合は
> 処理をしなければいいのではないですか。
処理が連続で起こる問題は可決できました。

しかし、gifの表示が重くなるのは変わりません。
タスクバーを消す処理を外せば問題なく動くというより、タスクバーを消す処理を実行しなくても、処理が書いているだけで重くなってしまうようです。

[ツリー表示へ]
タイトルRe^9: アニメgifの最大化
記事No11017
投稿日: 2007/12/27(Thu) 11:48
投稿者花ちゃん
> タスクバーを消す処理を外せば問題なく動くというより、タスクバーを消す処理を実行しなくても、処理が書いているだけで重くなってしまうようです。

普通は、あり得ないでしょう。

どのイベントでどのように実行しているのか明記して下さい。

まさか、resizeイベント内では書いていないでしょうね?

[ツリー表示へ]
タイトルVB6でのマウスを使った範囲選択
記事No11148
投稿日: 2008/01/15(Tue) 17:25
投稿者せふ
ピクチャボックス上に描いたグラフからマウスで範囲指定し、選択した範囲の
プロットの値を読み込んで数字の配列として読み込むにはどうしたらいいのでしょうか?
分かる方いましたらご教授お願いいたします。

[ツリー表示へ]
タイトル質問するなら、新規投稿から
記事No11150
投稿日: 2008/01/15(Tue) 18:38
投稿者花ちゃん
新規質問するなら、新規投稿から質問するようにして下さい。

他人のスレッドを引っ張ってきて質問してもレスが付きませんよ。

[ツリー表示へ]