تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
ضبط شاشة العرض
#1
السلام عليكم

أرغب بجعل الفورم وجميع الأدوات عليه يتم ضبط ابعادها بما يتناسب مع دقة عرض الشاشة 

جربت أكواد بشروحات كثيرة لكن تظهر بها أخطاء متعددة
الرد }}}
تم الشكر بواسطة:
#2
ضع ذلك الكود في Module
كود :
Const WM_DISPLAYCHANGE = &H7E
Const HWND_BROADCAST = &HFFFF&
Const EWX_LOGOFF = 0
Const EWX_SHUTDOWN = 1
Const EWX_REBOOT = 2
Const EWX_FORCE = 4
Const CCDEVICENAME = 32
Const CCFORMNAME = 32
Const DM_BITSPERPEL = &H40000
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const CDS_UPDATEREGISTRY = &H1
Const CDS_TEST = &H4
Const DISP_CHANGE_SUCCESSFUL = 0
Const DISP_CHANGE_RESTART = 1
Const BITSPIXEL = 12
Public 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
Public Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, ByVal iModeNum As Long, lpDevMode As Any) As Boolean
Public Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwFlags As Long) As Long
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'********************************************************
Public Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Public Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
Public Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, ByVal lpInitData As Any) As Long
Public Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Dim OldX As Long, OldY As Long, nDC As Long
Sub ChangeRes(X As Long, Y As Long, Bits As Long)
   Dim DevM As DEVMODE, ScInfo As Long, erg As Long, an As VbMsgBoxResult
   'Get the info into DevM
   erg = EnumDisplaySettings(0&, 0&, DevM)
   'This is what we're going to change
   DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL
   DevM.dmPelsWidth = X 'ScreenWidth
   DevM.dmPelsHeight = Y 'ScreenHeight
   DevM.dmBitsPerPel = Bits '(can be 8, 16, 24, 32 or even 4)
   'Now change the display and check if possible
   erg = ChangeDisplaySettings(DevM, CDS_TEST)
   'Check if succesfull
   
End Sub
Sub ScreenLoad()
Dim nDC As Long
   'retrieve the screen's resolution
   OldX = Screen.Width / Screen.TwipsPerPixelX
   OldY = Screen.Height / Screen.TwipsPerPixelY
   'Create a device context, compatible with the screen
   nDC = CreateDC("DISPLAY", vbNullString, vbNullString, ByVal 0&)
   'Change the screen's resolution
   ChangeRes 1152, 864, GetDeviceCaps(nDC, BITSPIXEL)
End Sub
Sub ScreenUmload()
ChangeRes OldX, OldY, GetDeviceCaps(nDC, BITSPIXEL)
DeleteDC nDC
End Sub
غير 1152,864     إلي دقة الشاشة التي تناسب مشروعك

في حدث تحميل الفورم ضع ذلك السطر    ScreenLoad

وفي حدث Unload Form    ضع ذلك السطر      ScreenUmload

وممكن تقوم بالتحقق من دقة الشاشة اولا فإذا كانت تناسب مشروعك فلا تغير شيء
أما إذا كانت لا تناسبه فقم بتغييرها
الرد }}}
تم الشكر بواسطة: Ahmed_Mansoor , sendbad100 , dr.mostashar


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [vb6.0] عدم ثبوت رقم الوزن المنقول من شاشة جهاز قارء الوزن الى شاشة البرنامج وادي العوضي 3 883 04-06-22, 12:50 AM
آخر رد: وادي العوضي
  كيف أصدر من تقرير من الكرستال دون عرض شاشة الخيارات ياسر عبد الكريم 0 773 27-05-21, 07:57 PM
آخر رد: ياسر عبد الكريم
  طلب كود استدعاء الصنف في شاشة المبيعات ahmed201 0 857 15-01-21, 08:15 AM
آخر رد: ahmed201
  طلب تعديل كواد زر اختصار الصنف في شاشة المبيعات ahmed250 2 1,433 03-06-20, 03:14 PM
آخر رد: ahmed250
  تعديل كواد اختصار الصنف في شاشة المبيعات ahmed20 0 1,095 08-03-20, 02:56 PM
آخر رد: ahmed20
  سؤال في شاشة عرض البرنامج tighrmte 3 2,118 20-02-19, 07:13 PM
آخر رد: tighrmte
  [vb6.0] تأخير نقل البيانات من الجهاز الخارجي الى شاشة البرنامج وادي العوضي 21 5,934 24-02-18, 12:37 PM
آخر رد: وادي العوضي
  [مثال] شاشة الموظفين vb6 VB_Local 13 6,294 20-01-18, 09:46 PM
آخر رد: yahyaalmalki
  ظهور الخط العربي بخط غريب داخل شاشة الكود للفيجوال بيسك في الوندوز 10 allobaed 2 2,806 08-08-17, 03:09 AM
آخر رد: allobaed
  تشغيل شاشة CMD في وضع Admin superwoofer 3 2,405 07-05-16, 12:56 PM
آخر رد: superwoofer

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم