tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^4: フルスクリーンにした場合のラベル等の位置
投稿日: 2009/07/22(Wed) 22:10
投稿者わいも
ご返信本当にありがとうございます。
拡大(縮小)率について調べてみました。

>スクリーンの拡大(縮小)率を求めてください。
zoom1 = Me.ScaleWidth / clpScaleWidth
zoom2 = Me.ScaleHeight / clpScaleHeight
(↑合っていますでしょうか)

>設計したPCでのラベルやその他コントロールの元座標・元大きさ、にその拡大(縮小)率を
掛けてやれば
Picture1.Move 3120 * zoom1, 9480 * zoom2, 11111 * zoom1, 2775 * zoom2

というように記述しました。
しかしどうしてもスクリーンの大きさによってピクチャや画像が移動してしまいます。

長々と申し訳ありませんが、下記のプラグラムの中で
何か至らないところがあれば教えてください。
勉強不足ですみません。
Private img As Object
Private baseWidth As Integer
Private baseHeight As Integer
Dim zoom1   As Double
Dim zoom2  As Double
Private clpScaleWidth   As Double
Private clpScaleHeight  As Double

Private Sub Resize()
    フラッシュ.Move 0, 0, ScaleWidth, ScaleHeight
    
    clpScaleWidth = Me.ScaleWidth
    clpScaleHeight = Me.ScaleHeight

    zoom1 = Me.ScaleWidth / clpScaleWidth
    zoom2 = Me.ScaleHeight / clpScaleHeight

    Picture1.Move 3120 * zoom1, 9480 * zoom2, 11111 * zoom1, 2775 * zoom2

    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

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

    Resize
End Sub

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。