VeryGary Posted July 1, 2016 Posted July 1, 2016 (edited) This could be a bug in the win api. I'd like to find a way to work around it. When I use the GUICtrlCreateInput() to create an input field, enter some text, highlight it all and change it to some other text, then GUICtrlSetStyle() the control $ES_READONLY, the right-click context menu for the control still shows an enabled "Undo" option that can be selected and "undo" back to the original value, even though the field is readonly. Ctrl-Z on the control doesn't trigger an Undo operation though, so I don't think it's an intended "feature". Is there a way to disable the Undo option on the context menu manually, or unset a flag that the field has been modified, so the user can't change the value when it's readonly? Edit: This is a kludge, but I can GUICtrlSetData($iBox, GUICtrlRead ($iBox) ) when setting it $ES_READONLY and it will clear the undo data, but this has the side effect of losing the undo data when I unset $ES_READONLY. I'd really like something cleaner, if anyone has any ideas. Edit 2: Looking at https://msdn.microsoft.com/en-us/library/windows/desktop/bb775458(v=vs.85).aspx it appears there are messages where I can perform an undo, read the data from the control, then clear the undo data. Then I could set it read only. When I wanted to unset the readonly, I could ControlSend the undo data & Ctrl-A & current data. Although, I'm afraid the ControlSend delay would make it take too long for a form with many Input boxes. I'd still like something cleaner, if anyone has any ideas. Edited July 1, 2016 by VeryGary
Moderators Melba23 Posted July 1, 2016 Moderators Posted July 1, 2016 VeryGary, As you have found, you can easily disable the "Undo" item in the context menu by sending a $EM_EMPTYUNDOBUFFER to the input control when setting it as read-only. But I am afraid I can find no easy way to reinstate the undo buffer when you re-enable editing - and the method you propose does not seem that reliable. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now