Очистка экрана - Assembler
Формулировка задачи:
Здравствуйте . Помогите , пожалуйста , с функцией очистки экрана. У меня есть программа с меню . И один с пунктов меню - это "Очистка" . То есть , при нажатие на этот пункт , окно должно очищаться.
Пробовала как-то так записать :
Вроде всё компилируется , но при нажатии на кнопку меню программа просто начинает вылетать и всё .
Помогите , пожалуйста , как это возможно сделать ?
invoke GetMessage, ADDR msg, NULL, 0, 0 ; читання повідомлення or eax, eax ; формування ознак jz Quit ; перейти на мітку Quit, якщо eax = 0 invoke DispatchMessage, ADDR msg ; відправка на обслуговування .ENDW ; закінчення циклу оброблення повідомлень Quit: mov eax,msg.wParam ret ; повернення з процедури WinMain WinMain endp ; закінчення процедури з ім'ям WinMain WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM,\ lParam:LPARAM LOCAL rect:RECT ; резервування стека під структуру RECT LOCAL ps:PAINTSTRUCT ; резервування стека під структуру LOCAL hdc:HDC ; резервування стека під хендл вікна .IF uMsg==WM_DESTROY ; якщо є повідомлення про знищення вікна invoke PostQuitMessage,NULL ; передача повідомлення WM_Quit ..................... ОЧИСТКА: .ELSEIF ax==IDM_CLR mov ax, 03 int 10h
Решение задачи: «Очистка экрана»
textual
Листинг программы
.ELSEIF ax==IDM_CLR invoke SendMessage, hWnd, WM_ERASEBKGND, 0,0
Объяснение кода листинга программы
ax
- это регистр, который содержит значение, которое было передано в функциюGetMessage
.IDM_CLR
- это константа, которая определяет тип сообщения, которое нужно отправить.hWnd
- это дескриптор окна, которое нужно очистить.WM_ERASEBKGND
- это тип сообщения, которое нужно отправить окну для очистки его фона.0
и0
- это параметры, которые передаются вместе с сообщениемWM_ERASEBKGND
и указывают на то, что фон окна должен быть очищен.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д