Консультация № 192967
20.03.2018, 10:25
0.00 руб.
0 5 1
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
Код:

;окно win32:
...
cmp DWORD ptr [EBP+0Ch],WM_DESTROY ;всё закончилось?..
je exit ;...смотрим тут
cmp DWORD ptr [EBP+0Ch],WM_CREATE ;что создаём?..
je wmcreate ;...смотрим тут
cmp DWORD ptr [EBP+0Ch],WM_COMMAND ;что сработало?..
je wmcmd ;...смотрим тут
wmcreate:
...
mov HWNDEDT,EAX ;создали окно редактирования (дисплей)
...
mov HWNDBTN,EAX ;создали кнопку с символом
wmcmd:
mov EAX,HWNDBTN
cmp DWORD ptr[EBP+14h],EAX
push offset CPBUT
push 30 ;не более 30 символов
push WM_GETTEXT
push HWNDEDT
call ?

? - какую ф-ю необходимо вызвать, что-бы при клике на кнопку, на дисплей HWNDEDT выводился символ
кнопки CPBTN (каждый раз создавать дисплей?)



Обсуждение

давно
Старший Модератор
31795
6196
20.03.2018, 13:08
общий
Адресаты:
какую ф-ю необходимо вызвать, что-бы при клике на кнопку, на дисплей HWNDEDT выводился символ
кнопки CPBTN (каждый раз создавать дисплей?)

Всю китайскую разведку запутали.

Вы хотите получить данные с поля EDIT, то для этого есть GetWindowText, если Вы хотите записать - SetWindowText.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
7438
7205
20.03.2018, 13:40
общий
Адресаты:
Так понимаю, при нажатии на кнопку необходимо отправить в edit надпись с кнопки. Так?
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
7438
7205
20.03.2018, 13:44
общий
20.03.2018, 13:45
Адресаты:
Надеюсь, с С++ Вы знакомы? Перевести на Асм - пара пустяков :)
Вам надо сделать следующее:
Код:
case WM_COMMAND:
if (LOWORD(wParam) == IDC_KEY)
{
GetDlgItemText(hWnd, IDC_KEY, str, 30);
SetDlgItemText(hWnd, IDC_EDIT, str);
}
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
7438
7205
24.03.2018, 11:31
общий
это ответ
Здравствуйте, cupoma58!
Программирование Ассемблере под Windows ничем не отличается от программирования на WinAPI на том же С++
Вам надо реализовать следующее:
Код:
case WM_COMMAND:
if (LOWORD(wParam) == IDC_KEY)
{
GetDlgItemText(hWnd, IDC_KEY, CPBUT, 30);
SetDlgItemText(hWnd, IDC_EDIT, CPBUT);
}
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
401688
22
03.04.2018, 11:11
общий
Адресаты:
К сожалению - С++ я пропустил. Сразу с Java перебрался к ассемблеру. Так-что, с переводом придётся попотеть. Но, всё равно - благодарю.
Форма ответа