Последние записи
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
20th
Май
Копирование строки из Edit в другой Edit
Posted by Chas under Пост-обзор
Попытался написать программу, которая будет копировать строку из одного дочернего окна, в другое с помощью команды movsb. Программа не выполняет, то что должна. В чем моя ошибка?
Пепел Феникса:
GetWindowText принимает третим параметром длину буфера в символах.
передав NULL вы таким образом копировать то не куда.
да и копировать то не куда.
ибо апи само скопирует куда надо.
.386
.model flat, stdcall
option casemap : none
include\masm32\include\windows.inc
include\masm32\include\kernel32.inc
include\masm32\include\user32.inc
includelib\masm32\lib\kernel32.lib
includelib\masm32\lib\user32.lib
WinMain proto : DWORD, :DWORD, :DWORD, :DWORD
ButtonID equ 1
EditID_1 equ 2
EditID_2 equ 3
.data?
hInstance dd ?
CommandLine dd ?
hwndButton dd ?
hwndEdit_1 dd ?
hwndEdit_2 dd ?
string db 10 dup(?)
.data
AppName db "Window", 0
ClassName db "Window", 0
EditClassName db "Edit", 0
ButtonClassName db "Button", 0
ButtonText db "Скопировать", 0
.code
start:
invoke GetModuleHandle, NULL
mov hInstance, eax
invoke GetCommandLine
mov CommandLine, eax
invoke WinMain, hInstance, NULL, CommandLine, SW_SHOWDEFAULT
invoke ExitProcess, eax
WinMain proc hInst : HINSTANCE, hPrevInst:HINSTANCE, CmdLine:LPSTR, CmdShow:DWORD
LOCAL wc:WNDCLASSEX
LOCAL msg:MSG
LOCAL hwnd:HWND
mov wc.cbClsExtra, 0
mov wc.cbWndExtra, 0
mov wc.style, CS_HREDRAW or CS_VREDRAW
mov wc.hbrBackground, COLOR_WINDOW+1
mov wc.cbSize, sizeof WNDCLASSEX
push hInstance
pop wc.hInstance
invoke LoadIcon, NULL, IDI_APPLICATION
mov wc.hIcon, eax
mov wc.hIconSm, eax
invoke LoadCursor, NULL, IDC_ARROW
mov wc.hCursor, eax
mov wc.lpfnWndProc, offset WndProc
mov wc.lpszMenuName, NULL
mov wc.lpszClassName, offset ClassName
invoke RegisterClassEx, addr wc
invoke CreateWindowEx, NULL, addr ClassName, addr AppName, \
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, \
CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL
mov hwnd, eax
invoke UpdateWindow, hwnd
invoke ShowWindow, hwnd, SW_SHOWNORMAL
.while TRUE
invoke GetMessage, addr msg, NULL, NULL, NULL
.break .if(!eax)
invoke TranslateMessage, addr msg
invoke DispatchMessage, addr msg
.endw
mov eax, msg.wParam
ret
WinMain endp
WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
.if uMsg==WM_CREATE
invoke CreateWindowEx, WS_EX_CLIENTEDGE, addr ButtonClassName, addr ButtonText, \
WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON, 20, 150, \
180, 25, hWnd, ButtonID, hInstance, NULL
mov hwndButton, eax
invoke CreateWindowEx, WS_EX_CLIENTEDGE, addr EditClassName, NULL, \
WS_CHILD or WS_VISIBLE or WS_BORDER or ES_LEFT or\
ES_AUTOHSCROLL, 20, 100, \
180, 25, hWnd, EditID_1, hInstance, NULL
mov hwndEdit_1, eax
invoke SetFocus, hwndEdit_1
invoke CreateWindowEx, WS_EX_CLIENTEDGE, addr EditClassName, NULL, \
WS_CHILD or WS_VISIBLE or WS_BORDER or ES_LEFT or\
ES_AUTOHSCROLL, 20, 50, \
180, 25, hWnd, EditID_2, hInstance, NULL
mov hwndEdit_2, eax
invoke SetFocus, hwndEdit_2
.elseif uMsg==WM_COMMAND
mov eax, wParam
.if ax == ButtonID
invoke GetWindowText, hwndEdit_1, addr string, 10
invoke SetWindowText, hwndEdit_2, addr string
.endif
.elseif uMsg==WM_DESTROY
invoke PostQuitMessage, 0
.else
invoke DefWindowProc, hWnd, uMsg, wParam, lParam
ret
.endif
xor eax, eax
ret
WndProc endp
end start
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)