الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

لماذا لا يظل شريط المهام فى موقعه بعد تشغيل هذاالكود؟

مغلق
بدأه abduljawaad saad في 7 أغسطس 2003 · 2 رد · 670 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لو كان مقياس شاشة الكمبيوتر 800 × 600

أريد عندما يعمل البرنامج أن يتحول مقياس الشاشه إلى 1024 × 768

وضعت كود وقمت بتفيذه وكانت النتيجه ظهور شريط المهام فى مكان آخر غير موقعه أسفل الشاشه و حدثت إزاحة له ولأعلى

والفكرة التى أريد ان أصل إليها هى أن أتمكن من تحديد مقياس الشاشه التى أريده دون تدخل من المستخدم , وعند أنهاء عمل البرنامج تعود الشاشه لمقياسها السابق قبل تشغيل البرنامج

لتوضيح المشكله بصورة أدق : هذا برنامج صغير يتكون من موديول وفورم عليه زر أمر

فى الموديول الكود التالى:

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

    Const CCDEVICENAME = 32
    Const CCFORMNAME = 32
    Const DM_PELSWIDTH = &H80000
    Const DM_PELSHEIGHT = &H100000

    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
    Dim DevM As DEVMODE
    Dim sWidth As Single
    Dim sHeight As Single

Sub ChangeRes(iWidth As Single, iHeight As Single)
    Dim a As Boolean
    Dim i As Integer
    i = 0
    Do
        a = EnumDisplaySettings(0&, i, DevM)
        i = i + 1
    Loop Until (a = False)

    Dim b&
    DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT

    DevM.dmPelsWidth = iWidth
    DevM.dmPelsHeight = iHeight

    ChangeDisplaySettings DevM, 0
End Sub

فى الفورم الكود التالى:

Option Explicit

    Dim intWidth As Integer

    Dim intHeight As Integer

    Dim FLAG

    Dim sWidth As Single

    Dim sHeight As Single





Private Sub Command1_Click()

   'للعودة إلى حجم الشاشة لما كانت عليه قبل تشغيل البرنامج

    Call ChangeRes(sWidth, sHeight)

    End

End Sub



Private Sub Form_Load()

    'FLAG = 0

    intWidth = Screen.Width  Screen.TwipsPerPixelX

    intHeight = Screen.Height  Screen.TwipsPerPixelY

    Call ChangeRes(1024, 768)



End Sub

أريد أن أعرف الخطأ فى هذا الكود ولماذا لا يظل شريط المهام فى موقعه بعد تشغيل هذاالكود؟

ومرفق ملف به البرنامج لمن يريد فحص المشكله 00 وقبل تشغيل البرنامج يرجى ضبط مقياس الشاشه إلى 800 × 600

screen_size.zip

mytrial_a.gif

نحن بحاجة لتدوين تجاربنا , نحن بحاجة إلى اكتشاف قيمة التجربة, هذه تجربتى مثيرة ومفيدة ...,

هنا
#2

للرفع

mytrial_a.gif

نحن بحاجة لتدوين تجاربنا , نحن بحاجة إلى اكتشاف قيمة التجربة, هذه تجربتى مثيرة ومفيدة ...,

هنا
#3

:'(

mytrial_a.gif

نحن بحاجة لتدوين تجاربنا , نحن بحاجة إلى اكتشاف قيمة التجربة, هذه تجربتى مثيرة ومفيدة ...,

هنا

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…