Difference between revisions of "RichEdit control"
From wiki.visual-prolog.com
m (categorized) |
(classInfo) |
||
Line 3: | Line 3: | ||
inherits userControlSupport | inherits userControlSupport | ||
open core, vpiDomains, gui_native | open core, vpiDomains, gui_native | ||
class facts | class facts |
Revision as of 14:35, 6 May 2013
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 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