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

كيف يمكن جعل msgbox من اليمين الى اليسار

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

كيف يمكن جعل msgbox من اليمين الى اليسار وكيف يمكن جعل مفاتيحة باللغة العربية مثل نعم بدلآ من yes و لا بدلآ من no

#2

صمم Form و خليها شبه الـ MsgBox و أستعملها أسهلك و الله من وجع الدماغ ده.

#3

MsgBox "مرحبا", vbCritical + vbMsgBoxRtlReading

وبالنسبة للعربي فهي تعتمد على الويندوز اذا كان الواجهة عربية فهي تظهر بالعربي

#4

بالنسبة للأزرار فهي تبع للنظام , إن كان عربي فعربي وإن كان بطيخ فبطيخ

بالنسبة لاتجاه الكتابة :

msgbox "",vbMsgBoxRight + vbMsgBoxRtlReading , ""
اقتباس
If A is success in life, then A equals x plus y plus z. Work is x; y is play; and z is keeping your mouth shut

Albert Einstein

مدخل إلى برمجة وتصميم الألعاب : كيف أبدأ ؟

#5

متشكر جدا جدا ياجماعة على اهتمامكم بالرد

الف شكر

#6

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

انا ما اهتم لهذي المسالة

لكن مشكووور اخي على لفت الانتباه

امتنى من كل عضو ياتي و يضع كود ان يشرحه الى الذي طلب

لان اذا لم يشرح يبقى العضو يحفظ الكود ولا يفهمه

تحياتي

مبرمج مبتدا

startingprogremmer.jpg
#7
اقتباس
امتنى من كل عضو ياتي و يضع كود ان يشرحه الى الذي طلب

لان اذا لم يشرح يبقى العضو يحفظ الكود ولا يفهمه

عمل رسائل Msgbox عربية .

لا تحتوي ال Msgbox على خاصية RightToLeft بالصورة الطبيعية ، بل تحتوي على قيمتين تؤديان إلى تعريب الرسالة ، وهما 524288 و 1048576 .

ويقابلهما الثابتان :

vbMsgBoxRight و vbMsgBoxRtlReading

بهذا نكتب أمر الرسالة بالشكل التالي :

MsgBox "أحمد جمال .", vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading,"اللغة العربية"

لمزيد من الاختصار . لن نضطر في كل مرة لاظهار رسالة أن نكتب الثابتين السابقين أو الرقمين .لذا فإن بامكاننا تعريف Enum وذلك لاعطاء هذين الثابتين اسماً آخر ، وذلك بالشكل التالي :

Public Enum Ahmed
	arabic = vbMsgBoxRight + vbMsgBoxRtlReading
End Enum

ويمكننا أن نقوم بكتابة الأمر السابق في موديول وذلك لاستخدامه في جميع الشاشات .

لاحقاً . يمكن استخدام كلمة arabic لتقوم بالمهمة مباشرة .

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

MsgBox "أحمد جمال .", vbInformation + arabic,"اللغة العربية"

منقول

تم تعديل هذه المشاركة بواسطة المزمجر في 4 يونيو 2007 في 19:11

ألا بذكر الله تطمئن القلوب

#9
اقتباس
بالنسبة للأزرار فهي تبع للنظام , إن كان عربي فعربي وإن كان بطيخ فبطيخ

:lol:

اقتباس
بارك الله بك اخانا المزمجر على هذا الشرح لكن السؤال كان عن تعريب الازرار

مثل موافق بدل ok

لدي طريقة بس ياريت حد يجربها لان النظام الان عندي عربي مش بطيخ

:D

ألا بذكر الله تطمئن القلوب

#10

جرب الطريقة

ضع الكود التالي في الموديول

 

Private m_hHook As Long
'
Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal HWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetDlgItemText Lib "user32" Alias "SetDlgItemTextA" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal lpString As String) As Long
Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
'
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal HWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
''
Public Sub MessageBoxH(hwndThreadOwner As Long)
	'
	Dim hInstance As Long
	Dim hThreadId As Long
	'
	hInstance = GetWindowLong(hwndThreadOwner, GWL_HINSTANCE)
	hThreadId = GetCurrentThreadId()
	'
	m_hHook = SetWindowsHookEx(WH_CBT, AddressOf MsgBoxHookProc, hInstance, hThreadId)
	'
End Sub
'
Private Function MsgBoxHookProc(ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

	If uMsg = HCBT_ACTIVATE Then
		'
		SetDlgItemText wParam, IDOK, "موافق"
		SetDlgItemText wParam, IDCANCEL, "إلغاء الأمر"
		SetDlgItemText wParam, IDABORT, "إحباط"
		SetDlgItemText wParam, IDRETRY, "إعادة المحاولة"
		SetDlgItemText wParam, IDIGNORE, "تجاهل"
		SetDlgItemText wParam, IDYES, "نعم"
		SetDlgItemText wParam, IDNO, "لا"
		'
		UnhookWindowsHookEx m_hHook
		'
	End If
	'
	MsgBoxHookProc = False
End Function
'
Sub OffMsg()
	'
	UnhookWindowsHookEx m_hHook
	'
End Sub

ضع الكود التالي في الفورم للتجربة

Private Sub Command1_Click()
   MessageBoxH Form1.HWnd
	Dim ask
	ask = MsgBox("المزمجر", vbQuestion + vbMsgBoxRight + vbMsgBoxRtlReading + vbYesNoCancel)
	Call OffMsg
End Sub

ألا بذكر الله تطمئن القلوب

#11

الكود ناقص حاجات زى :

Private Const WH_CBT As Long = 5
Private Const GWL_HINSTANCE As Long = -6

مع العلم أن فيه خطورة من أستعمال الطرق دى , لازلت أفضل فكرة الـ Form

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

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

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

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

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

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