As many people asked me for making rtl or ltr controls on the compactframework.
My best solution for this question is:
public const int GWL_EXSTYLE = (-20);
public const int WS_EX_LAYOUTRTL = 0x400000;
public static void SetControlDirection(Control c, bool p_isRTL)
{
int style = GetWindowLong(c.Handle, GWL_EXSTYLE);
// set default to ltr (clear rtl bit)
style &= ~WS_EX_LAYOUTRTL;
if (p_isRTL == true)
{
// rtl
style = WS_EX_LAYOUTRTL;
}
SetWindowLong(c.Handle, GWL_EXSTYLE, style);
c.Invalidate();
}
[DllImport("coredll.dll")]
static extern int GetWindowLong(IntPtr hWnd, int cmd);
[DllImport("coredll.dll")]
static extern IntPtr SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
CE OS supported:
I tried on "Windows Mobile 6 Classic" emulator and it worked. (CE OS = 5.2)
On "Windows Mobile 5.0 Pocket PC" emulator, also worked. (CE OS = 5.1)
On "Pocket PC 2003 SE" emulator, it did NOT worked! (CE OS = 4.21)
Download sample test
I hope it will be helpful for you... :)
לא הולך.
ReplyDeleteניסיתי להפעיל את זה על DATAGRID
LISTBOX ו FORM .
שמתי את הקריאה אחרי InitializeComponent();
יש לי NET COMPACT 2.0
It is working.
ReplyDeleteI also tested on Checkbox & radiobutton and it works.
i am working under cf 3.5,
maybe this is the difference but i don't think.
לדעתי, אולי זה ה 3.5 מול ה 2.0..
ReplyDeleteאבל הלוואי שאני מפספס משהו.
יש דרך ליצור איתך קשר ?
הדבר הזה מטריד אותי המון זמן..
במיוחד ב LISTBOX .
אני מתכנת בNET COMPACT כ 3 שנים.
תודה מראש.
דבר נוסף .
ReplyDeleteאני משתמש במערכת הפעלה :
WIN.CE NET 4.2
אולי זו הסיבה ?
I don't thinks its about 2.0 / 3.5
ReplyDeletemaybe is about: WIN.CE 4.2
try please the checkbox/radiobutton
and i will check RTL for ListBox.
indeed.
ReplyDeletethe answer:
----------------
I tried on "Windows Mobile 6 Classic" emulator and it worked. (CE OS = 5.2)
On "Windows Mobile 5.0 Pocket PC" emulator, also worked. (CE OS = 5.1)
On "Pocket PC 2003 SE" emulator, it did NOT worked! (CE OS = 4.21)
תודה.
ReplyDeleteהיתה לי הרגשה שזו מערכת ההפעלה.
יש דרך ליצור איתך קשר ? מסנג'ר ?
אשמח להחליף מידע בענייני NET COMPACT ותיכנות בכלל.
כיצד ניתן לראות עברית באמולטור??
ReplyDeleteיש להתקין קובץ עברית על האמולטור.
ReplyDeleteיש כל מיני חברות המפיצות את התקנת העברית.
זה דורש רשיון :)
how to do this..explain me more detail
ReplyDeletedownload the attached example
ReplyDelete