1

読み込み時にシステムの解像度を 1280*1024 から 1024*768 に変更する VB アプリケーションがあります。アプリケーションを停止すると、解像度が として定義されている通常の解像度に復元されNormalRes = Screen.Width / Screen.TwipsPerPixelXます。しかし、同時に2回目に実行すると、解像度が回復しませんでした。

コードを確認したところ、返された解像度は 1024(horizo​​ntal=1280)*1024 だったので、解像度を変更できず、1024*768 のままでした。

私を悩ませているのは、通常の解像度が として定義されている場合Screen.Width/Screen.TwipsPerPixelXです。

なぜ異なる値を与えているのですか (1280 ではなく 1024 を与えています)。初めて解像度を変更すると、その値が変わるためですか?
の値が異なる値を持つことができるのは、どのような状況ですか? ?

あなたの助けを求めて、サティシュ・クマール

4

1 に答える 1

1

画面の解像度を再計算する代わりに、解像度を変更する前に解像度を保存し、アプリケーションを閉じるときに元の解像度に戻してはどうでしょうか。

例:

Public Class Form1
    Dim oldSize As Size

    Public Sub Form_Load() Handles Form1.Load
        oldSize = Screen.PrimaryScreen.Bounds.Size
    End Sub

    Public Sub Form_Closed() Handles Form1.Closed
        SetScreenResolution(oldSize)
    End Sub

    Public Sub SetScreenResolution(size As Size)
        ' write your code to change the screen size here
    End Sub
End Class
于 2012-10-17T12:32:11.013 に答える