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

الحل لمعظم الادوات التي لا تحتوي على خاصية Righttoleft

مغلق
بدأه Super_Pro في 5 أكتوبر 2007 · 6 رد · 1,303 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمه الله وبركاته اخواني الكرام الان الحل لمعظم الادوات التي لا تحتوي على خاصية Right to left مثل ListStatusBarTreeView ListViewProgressBarToolBarالحل قم بانشاء موديل و اضافة فيها شيفرة الـ Api التالية

 Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As LongPublic Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPublic Declare Function InvalidateRect Lib "user32" (ByVal hwnd As Long, lpRect As Long, ByVal bErase As Long) As LongPublic Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As LongDeclare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As LongPublic Const GW_CHILD = 5Public Const WS_EX_LAYOUTRTL = &H400000Public Const GWL_EXSTYLE = (-20)

و اذا كنت ستتخدم الشيفرة في general declaratio (قسم التصريحات)قم بتغير جملة التعريف من public الى الـ private وقم باضافة الكود المطلوب للادة التي تحتاجهة في حدث الـ Form_load من الاكودا التالية :

Private Sub Form_Load() 'On Form Load you need to set the mirroring

for Control

Dim OldLong As Long   	OldLong = GetWindowLong(Me.hwnd, GWL_EXSTYLE)	SetWindowLong Me.hwnd, GWL_EXSTYLE, OldLong Or WS_EX_LAYOUTRTL	InvalidateRect hwnd, 0, False	'For List	OldLong = GetWindowLong(List1.hwnd, GWL_EXSTYLE)	SetWindowLong List1.hwnd, GWL_EXSTYLE, OldLong Or WS_EX_LAYOUTRTL	InvalidateRect hwnd, 0, False

list

 OldLong = GetWindowLong(List1.hwnd, GWL_EXSTYLE)	SetWindowLong List1.hwnd, GWL_EXSTYLE, OldLong Or WS_EX_LAYOUTRTL	InvalidateRect hwnd, 0, False

StatusBar

OldLong = GetWindowLong(StatusBar1.hwnd, GWL_EXSTYLE)	SetWindowLong StatusBar1.hwnd, GWL_EXSTYLE, OldLong Or WS_EX_LAYOUTRTL	InvalidateRect hwnd, 0, False

TreeView

Dim nodX As Node	Set nodX = TreeView1.Nodes.Add(, , "R", "Root")	Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C1", "Child 1")	Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C2", "Child 2")	Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C3", "Child 3")	Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C4", "Child 4")	nodX.EnsureVisible	OldLong = GetWindowLong(TreeView1.hwnd, GWL_EXSTYLE)	SetWindowLong TreeView1.hwnd, GWL_EXSTYLE, OldLong 
Or WS_EX_LAYOUTRTL	InvalidateRect hwnd, 0, False

end sub

تم تعديل هذه المشاركة بواسطة Super_Pro في 5 أكتوبر 2007 في 16:54

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

أستضافة مواقع (Website Hosting) ابتداء من 35دينار اردني (50$) سنوي 962799247524+ أضغط هنا

logo.png

#2

تابع باقي الادوات

Private Sub Form_Load()

ListView

OldLong = GetWindowLong(ListView1.hwnd, GWL_EXSTYLE)	SetWindowLong ListView1.hwnd, GWL_EXSTYLE, OldLong Or WS_EX_LAYOUTRTL	InvalidateRect hwnd, 0, False

ProgressBar

ProgressBar1.Value = 50	OldLong = GetWindowLong(ProgressBar1.hwnd, GWL_EXSTYLE)	SetWindowLong ProgressBar1.hwnd, GWL_EXSTYLE, OldLong Or WS_EX_LAYOUTRTL	InvalidateRect hwnd, 0, False

ToolBar

mhwnd = GetWindow(Toolbar1.hwnd, GW_CHILD)	oldlong = GetWindowLong(mhwnd, GWL_EXSTYLE)	SetWindowLong mhwnd, GWL_EXSTYLE, oldlong Or WS_EX_LAYOUTRTL	InvalidateRect hwnd, 0, False

end subودمت سالمين

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

أستضافة مواقع (Website Hosting) ابتداء من 35دينار اردني (50$) سنوي 962799247524+ أضغط هنا

logo.png

#3

و مرفق مثلا بسيط يضم الادوات التالية ـ

Tree View , list view , image list

Example_For_Tree_View.rar

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

أستضافة مواقع (Website Hosting) ابتداء من 35دينار اردني (50$) سنوي 962799247524+ أضغط هنا

logo.png

#5

حياك الله اخي HhH-PROGRAMMER

تم تعديل هذه المشاركة بواسطة Super_Pro في 5 أكتوبر 2007 في 17:38

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

أستضافة مواقع (Website Hosting) ابتداء من 35دينار اردني (50$) سنوي 962799247524+ أضغط هنا

logo.png

#6

ماهذا الكرم الحاتمي

بارك الله .......... فيكما

#7

حياك الله اخي ابو زيد

الهلالي :lol:

تم تعديل هذه المشاركة بواسطة Super_Pro في 6 أكتوبر 2007 في 21:34

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

أستضافة مواقع (Website Hosting) ابتداء من 35دينار اردني (50$) سنوي 962799247524+ أضغط هنا

logo.png

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

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

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

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

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

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