Hi Issam,
Start with this code and let me know how it works. Try both nDlgType values
nDlgType = BITOR(MB_RTLREADING, MB_RIGHT, 64)
and then
nDlgType = BITOR(MB_RTLREADING, 64)
#DEFINE MB_RTLREADING 0x00100000
#DEFINE MB_RIGHT 0x00080000
DECLARE INTEGER MessageBoxW IN user32 As MessageBoxAPI;
INTEGER hWindow, STRING lpText,;
STRING lpCaption, LONG uType
LOCAL cMessage, cCaption, nDlgType
TEXT TO cMessage NOSHOW PRETEXT 4
Adding two right-to-left marks (RLMs), represented by Unicode
formatting character U+200F, in the beginning of a MessageBox
display string is interpreted by the Win32 MessageBox rendering
engine so as to cause the reading order of the MessageBox to be
rendered as right-to-left (RTL).
ENDTEXT
cMessage = ToUnicode( m.cMessage )
cCaption = ToUnicode( VERSION() )
nDlgType = BITOR(MB_RTLREADING, MB_RIGHT, 64)
= MessageBoxAPI(_screen.HWnd, m.cMessage, m.cCaption, m.nDlgType)
FUNCTION ToUnicode(cStr As String) As String
RETURN STRCONV(m.cStr+CHR(0), 5)
This article may contain some useful information too:
http://www.microsoft.com/middleeast/msdn/ArabicCalendar.aspx