http://bugs.winehq.org/show_bug.cgi?id=2699
------- Additional Comments From ikrakow_1999@yahoo.com 2005-09-02 10:30 ------- Reproduced in Wine 20050111, from CVS, with download as of 2/8/2005. Jem's analysis is correct. Some additional comments:
1) ES_NUMBER is defined in include/winuser.h, line 639, as an edit control style.
2) ES_DISABLENOSCROLL is defined ins include/richedit.h, line 172, as a _rich_ edit control style.
3) ES_NUMBER is processed in dlls/user/edit.c (for the edit control). Look at lines 3700-3702.
4) ES_DISABLENOSCROLL is _never_ processed.
In Windows, the rich edit control is subclassed from the edit control. The designers of the rich edit control did not need to use the ES_NUMBER style bit because the rich edit control never needed it. So they used it as ES_DISABLENOSCROLL, overriding the ES_NUMBER setting.
The patch is more complicated than simply determining whether the control is an edit or a rich edit control. Suppose a newly subclassed control (say, RichEdit_Numeric) is derived from the edit control. The ES_NUMBER bit might be used in that case. We need some general mechanism for handling subclassed controls like this.