Const EM_CANUNDO = &HC6
Пошлите сообщение EM_CANUNDO текстовому полю для определения возможности отмены последней операции. Если операция отмены возможна, пользователь может выбрать команду Отменить из контекстного меню элемента управления
Если операция отмены возможна, функция возвращает ненулевое значение. В противном случае возвращается 0.
' Демонстрация операции отмены для текстового поля. ' Поместите на форме три элемента управления: ' Text1,Command1 и Command2. При нажатии кнопки Command2 ' устанавливается заранее определённый текст, ' отменить который нельзя.Операция отмены возможна, ' если пользователь изменит содержимое текстового поля вручную Private Sub Form_Load() ' сделаем кнопку недоступной Command1.Enabled = False End Sub Private Sub Text1_Change() Dim possible As Long ' операция отмены возможна? possible = SendMessage(Text1.hWnd, EM_CANUNDO, ByVal 0, ByVal 0) ' Так как 0 = False, а остальные значения в VB = True, мы можем использовать конструкцию: Command1.Enabled = possible End Sub Private Sub Command1_Click() ' Отменяем последние изменения, сделанные в текстовом поле пользователем Dim retval As Long ' возвращаемое значение retval = SendMessage(Text1.hWnd, EM_UNDO, ByVal 0, ByVal 0) End Sub Private Sub Command2_Click() ' Установим зараннее определенный текст ' который не может быть отменет с помощью ' EM_UNDO Text1.Text = "Русский_Проект" End Sub