paksain aja resolusinya, misalnya di PC pada saat anda buat program menggunakan resolusi (1024,768) maka di Menu utama kasih perintah ini; copas modul yg ada di attach,
SimpenRegional StandardRegionalSetting GetCurrentResolution If UbahResolusi(1024, 768) = False Then End Agus Sudana wrote: > > > dear kakak2 programer VB, > saya ada buat program POS di layar notebook 14" wide. > tp, waktu saya installkan di LCD 17", tampilan'nya tidak sebagus di > layar 14" (alias kacau). > bagaimana mensiasati'nya?? > mohon bantuannya. > terima kasih. > > Agus Sudana > > > >
Option Explicit Private Declare Function EnumDisplaySettings Lib "user32" _ Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, _ ByVal iModeNum As Long, _ lpDevMode As Any) As Boolean Private Declare Function ChangeDisplaySettings Lib "user32" _ Alias "ChangeDisplaySettingsA" (lpDevMode As Any, _ ByVal dwFlags As Long) As Long Private Declare Function ExitWindowsEx Lib "user32" _ (ByVal uFlags As Long, ByVal dwReserved As Long) As Long Private Const CCDEVICENAME = 32 Private Const CCFORMNAME = 32 Private Const DISP_CHANGE_SUCCESSFUL = 0 Private Const DISP_CHANGE_RESTART = 1 Private Const DM_BITSPERPEL = &H40000 Private Const DM_PELSWIDTH = &H80000 Private Const DM_PELSHEIGHT = &H100000 Private Const CDS_UPDATEREGISTRY = &H1 Private Const CDS_TEST = &H4 Private Type DEVMODE dmDeviceName As String * CCDEVICENAME dmSpecVersion As Integer dmDriverVersion As Integer dmSize As Integer dmDriverExtra As Integer dmFields As Long dmOrientation As Integer dmPaperSize As Integer dmPaperLength As Integer dmPaperWidth As Integer dmScale As Integer dmCopies As Integer dmDefaultSource As Integer dmPrintQuality As Integer dmColor As Integer dmDuplex As Integer dmYResolution As Integer dmTTOption As Integer dmCollate As Integer dmFormName As String * CCFORMNAME dmUnusedPadding As Integer dmBitsPerPel As Integer dmPelsWidth As Long dmPelsHeight As Long dmDisplayFlags As Long dmDisplayFrequency As Long End Type Private DevM As DEVMODE Public Type TUkuranResolusi ScreenX As Long ScreenY As Long End Type Public TResolusiAsli As TUkuranResolusi Public Sub GetCurrentResolution() TResolusiAsli.ScreenX = Screen.Width \ Screen.TwipsPerPixelX TResolusiAsli.ScreenY = Screen.Height \ Screen.TwipsPerPixelY End Sub Public Function UbahResolusi(ByVal ScreenX As Long, ByVal ScreenY As Long, _ Optional ByVal KedalamanWarna As Integer = 32) As Boolean Dim erg As Long erg& = EnumDisplaySettings(0&, 0&, DevM) DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL DevM.dmPelsWidth = ScreenX DevM.dmPelsHeight = ScreenY DevM.dmBitsPerPel = KedalamanWarna 'test perubahan dulu... support ngga monitor nya makae resolusi yg mo diset... erg& = ChangeDisplaySettings(DevM, CDS_TEST) If erg& = DISP_CHANGE_SUCCESSFUL Then erg& = ChangeDisplaySettings(DevM, CDS_UPDATEREGISTRY) UbahResolusi = True Else 'klo ngga support, ya nggak jadi perubahan. MsgBox "Oops..., monitor anda nggak support dengan resolusi " & _ ScreenX & "x" & ScreenY & "", vbOKOnly + vbSystemModal, "Error" UbahResolusi = False End If End Function
