Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: VB. RichTextBox. Как сделать UNDO Добавлено: 19.11.03 17:32  

Автор вопроса:  IAm

Пишу следующий код

Public Const WM_UNDO = &H304

Public Declare Function SendMessage Lib "user32" _

Alias "SendMessageA" (ByVal hWnd As Long, _

ByVal wMsg As Long, ByVal wParam As Long, _

lParam As Any) As Long

Private Sub UndoMenu_Click()

SendMessage CodeList.hWnd, WM_UNDO, 0, 0

End Sub

Но к сожалению после вызова процедуры SendMessage(процедура судя по отладчику отрабатывается) никаких изменений в РичТекстБоксе не происходит, хотя тот же код, примененный к обычному ТекстБоксу работает. В чем может быть дело?

Ответить

  Ответы Всего ответов: 12  

Номер ответа: 1
Автор ответа:
 &&&&M



Вопросов: 8
Ответов: 68
 Профиль | | #1 Добавлено: 19.11.03 21:04
Попробуй послать EM_UNDO

Ответить

Номер ответа: 2
Автор ответа:
 IAm



Вопросов: 8
Ответов: 20
 Профиль | | #2 Добавлено: 19.11.03 22:10

Пробовал, то же самое.

Ответить

Номер ответа: 3
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #3 Добавлено: 20.11.03 10:40

Попробуй это (у меня и в TextBox и в RichTextBox пашет)

Модуль

Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Public Const EM_UNDO = &HC7
Public Const EM_CANUNDO = &HC6

Форма

fCanUndo = SendMessage(txtMain.hwnd, EM_CANUNDO, &O0, &O0)
    If fCanUndo Then SendMessage txtMain.hwnd, EM_UNDO, &O0, &O0

Ответить

Номер ответа: 4
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #4 Добавлено: 20.11.03 11:16
Также пашет и с константами EM_CANREDO и EM_REDO (RTBox)

Ответить

Номер ответа: 5
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #5
Добавлено: 21.11.03 15:43

Если мне не изменяет склероз, у RichTextBoxа свои события... Поэтому WM_UNDO там и не работает...

Ответить

Номер ответа: 6
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #6 Добавлено: 21.11.03 16:00

Sharp, склероз тебе не изменяет.....

Ответить

Номер ответа: 7
Автор ответа:
 IAm



Вопросов: 8
Ответов: 20
 Профиль | | #7 Добавлено: 21.11.03 16:16

EM_CANUNDO возвращает 0

Ответить

Номер ответа: 8
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #8 Добавлено: 21.11.03 17:38

Значит тебе нельзя отменить...

Ответить

Номер ответа: 9
Автор ответа:
 IAm



Вопросов: 8
Ответов: 20
 Профиль | | #9 Добавлено: 21.11.03 18:05
Так не может быть, ужас какой-то

Ответить

Номер ответа: 10
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #10 Добавлено: 22.11.03 18:51

Это что-то у тя глючит???

Ответить

Номер ответа: 11
Автор ответа:
 IAm



Вопросов: 8
Ответов: 20
 Профиль | | #11 Добавлено: 23.11.03 14:31

Если просто ставлю пустой РичТекстБокс Undo вроде работает, а на моем нет, может я в событиях какие-то операции делаю исключающие Undo, потому что у меня идет постоянный контроль за вводимым текстом и подмена keyCode

Ответить

Номер ответа: 12
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #12 Добавлено: 26.11.03 10:26

Вышди пример, посмотрю...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам