|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Окт 8, 2003 15:35:07 Приветствую! Помогите разобраться. Хочу выводить текст в EditBox(... or ES_MULTILINE or ES_READONLY or ...) в несколько строк, каждая строка - отдельная переменная. Можно-ли это осуществить с помощью SetWindowText (как позиционировать вывод), если нельзя, то какой функцией это лучше сделать. |
|
|
Дата: Окт 8, 2003 18:06:34 · Поправил: AsmGuru62 Стиль EditBox должен включать (ES_MULTILINE or ES_WANTRETURN). Для добавления текста - EM_REPLACESEL. Каждая строка должна заканчиваться CR+LF. .DATA strLine1 db 'Line #1',0Dh,0Ah,0 strLine2 db 'Line #2',0Dh,0Ah,0 strLine3 db 'Line #3',0Dh,0Ah,0 |
|
|
Дата: Окт 8, 2003 18:47:54 Не работает, выводит только последний стринг, причём не с левой стороны EditBoxа, а с правой, как будто я выставил ES_RIGHT. На ES_LEFT не реагирует. |
|
|
Дата: Окт 8, 2003 19:15:51 А можно увидеть код где EditBox создан и где добавляются строки? |
|
|
Дата: Окт 8, 2003 19:26:51 640kb Для первой линии вызывай WM_SETTEXT, а для последующих - EM_REPLACESEL. Проверено. |
|
|
Дата: Окт 8, 2003 20:38:25 · Поправил: 640kb 2 Quantum: Это получается что мне нужно после первого SetWindowText создавать новый EditBox ? 2 AsmGuru62:
...
MESSAGE_1 db 'MESSAGE_1',13,10,0
MESSAGE_2 db 'MESSAGE_2',13,10,0
...
invoke CreateWindowEx, 0, addr EditClassName, 0, \
WS_CHILD or WS_VISIBLE or WS_BORDER or \
ES_AUTOVSCROLL or ES_READONLY or ES_MULTILINE or \
ES_WANTRETURN or EM_REPLACESEL, 270, 25, 280, 320, \
hWnd, EDIT_1_ID, hInstance, 0
mov hwnd_EDIT_1, eax
...
.elseif uMsg==WM_COMMAND
mov eax,wParam
.if lParam!=0
.if ax==BUTTON_1_ID
shr eax, 16
.if ax==BN_CLICKED
invoke SetWindowText, hwnd_EDIT_1, addr MESSAGE_1
invoke SetWindowText, hwnd_EDIT_1, addr MESSAGE_2
...
|
|
|
Дата: Окт 8, 2003 21:57:54 640kb Неееет! invoke SetWindowText, hwnd_EDIT_1, addr MESSAGE_1 invoke SetWindowText, hwnd_EDIT_1, addr MESSAGE_2 Надо так: invoke SetWindowText,hwnd_EDIT_1,OFFSET MESSAGE_1 invoke SendMessage,hwnd_EDIT_1,EM_REPLACESEL,0,OFFSET MESSAGE_2 |
|
|
Дата: Окт 8, 2003 22:56:23 Воркинг! Спасибо!!! А в чём разница применения OFFSET и ADDR? С ADDR тоже работает. |
|
|
Дата: Окт 8, 2003 23:01:06 · Поправил: 640kb Хотя есть прикол (сразу не заметил). MESSAGE_1 оказывается в конце выведенного списка, выглядит так: MESSAGE_2 MESSAGE_3 MESSAGE_4 MESSAGE_1 И всё равно выводится как будто я применил ES_RIGHT |
|
|
Дата: Окт 8, 2003 23:56:14 С первым приколом разобрался, просто все сообщения нужно выводить через SendMessage, а с правосторонним выводом не могу разобраться. |
|
|
Дата: Окт 9, 2003 02:49:56 640kb А в чём разница применения OFFSET и ADDR? У меня на ADDR аллергия. Код на одну инструкцию больше генерируется. Рекомендую дизассемблировать эту прогу и констатировать факт. Иногда, правда, приходится юзать ADDR, через нехочу :) |
|
|
Дата: Окт 9, 2003 10:40:46 Понятно. А что делать с правосторонним выводом? |
|
|
Дата: Окт 9, 2003 11:04:16 Всё, разобрался. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.089 |