Код (Text): invoke SendMessage,hwndmemo1,EM_GETLINE,1,addr buffer invoke MessageBox,0,addr buffer,0,0 Если в memo1 содержится многострочный текст, то командой EM_GETLINE можно получить текст строки, указанной в wParam. Но почему-то при выполнении вышепреведенного кода в буффере пусто. Очень странно, что ни в туториалах к масму ни в примерах не нашел упоминание про команду EM_GETLINE. Почему так?
ActioN 1) что возвращает SendMessage? 2) сколько реально строк в hwndmemo1? 3) ты в курсе, что "Edit controls: The copied line does not contain a terminating null character"?
ActionN Возможные подводные камушки: 1) при вызове SendMessage первый word буфера должен содержать его длину - максимальное кол-во символов, которое можно в него скопировать (если 0, то ес-но ничего не копируется) 2) нумерация строк в многострочном едите начинается с 0 (если у тебя всего одна строка, то ес-но при чтении строки №1 в буфер ничего не копируется) 3) изложил q_q - скопированная строка не содержит замыкающего 0 Поэтому правильно нужно делать так: Код (Text): bufsize equ 256 buffer db bufsize dup (?) mov word ptr [buffer], bufsize-1 ;размер буфера invoke SendMessage, ... mov byte ptr [eax+buffer],0 ;замыкающий 0
IceStudent, в мсдн заглядывал, только не придал внимания lParam'y. leo, q_q, спасибо, все заработало.