Difference between revisions of "RichEdit control"
From wiki.visual-prolog.com
(Initial text) |
m (line break) |
||
Line 56: | Line 56: | ||
Style = ws_child + style, | Style = ws_child + style, | ||
getClientSize(Width, Height), | getClientSize(Width, Height), | ||
hwnd := createWindowEx(0, "RichEdit50W", "", Style, 0, 0, Width, Height, getVpiWindow(), null, mainExe::getCurrentHinstance(), null), | hwnd := createWindowEx(0, "RichEdit50W", "", Style, 0, 0, Width, Height, | ||
getVpiWindow(), null, mainExe::getCurrentHinstance(), null), | |||
WParam = uncheckedConvert(unsigned, setTextEx(st_default, unicode_codepage)), | WParam = uncheckedConvert(unsigned, setTextEx(st_default, unicode_codepage)), | ||
LParam = uncheckedConvert(integer, getText()), | LParam = uncheckedConvert(integer, getText()), |
Revision as of 22:17, 20 December 2007
PFC does not contain any support for the RichEdit control. If you want to use it you may consider this code. The code is the implementation of a control.
implement richeditControl inherits userControlSupport open core, vpiDomains, gui_native constants className = "richeditControl/richeditControl". classVersion = "$JustDate: $$Revision: $". clauses classInfo(className, classVersion). class facts loaded : boolean := false(). clauses new(Parent):- new(), setContainer(Parent). clauses new():- if loaded = false() then _ = useDll::load("Msftedit.dll"), loaded := true() end if, userControlSupport::new(), generatedInitialize(). constants wm_user = 1024. em_streamIn = wm_user+73. em_streamOut = wm_user+74. em_setTextEx = wm_user+97. constants st_default = 0. st_keepundo = 1. st_selection = 2. st_newchars = 4. constants unicode_codepage = 1200. domains setTextEx = setTextEx(unsigned Flags, unsigned Codepage). facts hwnd : windowHandle := erroneous. style : unsigned := ws_visible + ws_vscroll + es_multiline + es_autovscroll. % e.g. style = ws_visible + ws_vscroll + es_multiline + es_autovscroll + es_nohidesel + es_readonly, clauses show():- userControlSupport::show(), Style = ws_child + style, getClientSize(Width, Height), hwnd := createWindowEx(0, "RichEdit50W", "", Style, 0, 0, Width, Height, getVpiWindow(), null, mainExe::getCurrentHinstance(), null), WParam = uncheckedConvert(unsigned, setTextEx(st_default, unicode_codepage)), LParam = uncheckedConvert(integer, getText()), _NoChar = vpi::winSendEvent(hwnd, e_Native(em_setTextEx, WParam, LParam)). predicates onSize : window::sizeListener. clauses onSize(_Source):- getClientSize(Width, Height), % This is in pixel vpi::winMove(hwnd, rct(0, 0, Width, Height)). % This code is maintained automatically, do not update it manually. 21:21:34-2.10.2007 facts predicates generatedInitialize : (). clauses generatedInitialize():- setText("richeditControl"), This:setSize(240, 120), addSizeListener(onSize). % end of automatic code end implement richeditControl