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

طريقة تحويل عناوين "header" الليست فيو من اليمين إلى اليسار

بدأه booknet في 26 أكتوبر 2008 · 2 رد · 481 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــة

هل توجد طريقة لتحويل عناوين "Header" الليست فيو "ListView" من اليمين إلى اليسار، علما بأنني بحثت في المنتدى وجميع الأكواد الموجودة تحول الليست فيو فقط وتبقى العناوين لا تتغير.

وبالبحث في الويب وجدت العنوان التالي لحل هذه المشكلة ولكن بلغة النت على ما أعتقد، فإذا هناك أحد يستطيع تحويله الى الفيجول بيسك.

العنوان هو:

http://forums.microsoft.com/MSDN/ShowPost....69&SiteID=1

وشكرا

#2

السلام عليكم...

الكود التالي مأخوذ من المكتبة VBAppAss.dll (و هي من تصميمي الخاص و أستعملها في كل البرامج المصممة بـ Visual Basic):

  1. Private Const GWL_EXSTYLE = (-20)
  2. Private Const WS_EX_LAYOUTRTL = &H400000
  3.  
  4. Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long,
    ByVal nIndex As Long) As Long
  5. Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long,
    ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  6. Private Declare Function UpdateWindow Lib "user32" (ByVal hwnd As Long) As Long
  7. Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long,
    ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
  8.  
  9. Private Sub ChangeControlLayout(ByVal ControlHandle As Long, ByVal ArabicLayout As Boolean)
  10. Dim OldLong As Long
  11.  
  12. OldLong = GetWindowLong(ControlHandle, GWL_EXSTYLE)
  13. If ArabicLayout Then
  14. SetWindowLong ControlHandle, GWL_EXSTYLE, OldLong Or WS_EX_LAYOUTRTL
  15. Else
  16. SetWindowLong ControlHandle, GWL_EXSTYLE, OldLong And (Not WS_EX_LAYOUTRTL)
  17. End If
  18. UpdateWindow ControlHandle
  19. End Sub
  20.  
  21. Private Sub Form_Load()
  22. ' تغيير الليست فيو نفسها لتكون من اليمين إلى اليسار
  23. ChangeControlLayout ListView1.hwnd, True
  24. ' تغيير عناوين الأعمدة لتكون من اليمين إلى اليسار
  25. ChangeControlLayout FindWindowEx(ListView1.hwnd, 0&, "msvb_lib_header", ""), True
  26. End Sub
  27.  

الاسم msvb_lib_header المستخدم مع الدالة FindWindowEx هو الـ Class Name الخاص بالـ Header التابع للـ ListView.

نرجو الاستفادة و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#3

وعليكــم السـلام ورحمة الله وبركاتـه..

جزاك الله خيرا أخي العزيز

فلقد أفدتني كثيرا وكنت أبحث عن هذا الكود منذ فترة

والمفروض أن هذا الموضوع يثبت لأهميته

وشكرا

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

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

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

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

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