| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
Kreoton Специалист


Зарегистрирован: 26.05.2004 Сообщения: 270 Откуда: Moscow
|
Добавлено: Сб Май 21, 2005 6:58 pm Заголовок сообщения: Simple graphical application for Miraculix |
|
|
| Код: |
;======================================================;
;= Simple graphical application for Miraculix =;
;= Простейшее графическое приложение для Miraculix =;
;======================================================;
use32 ; 32-битный код
mov edx, gui_dll ; Смещение имени модуля
xor eax,eax ; Функция ядра #0 - получение точки входа в модуль
int 0x90 ; Вызов ядра Miraculix
mov [WinGUI],ebx ; Запомнить точку входа в модуль GUI.DLL
call Draw_Window ; Нарисуем простейшее окно
Wait_Event: ; Начало обработки событий
mov eax,0xB ; Функция графического ядра (GUI.DLL) #0x0B - Ждать события
call [WinGUI] ; Вызов GUI.DLL
; В DL - ID события, в остальных регистрах параметры
;===========--
;=== Перерисовка
;======================--
cmp dl,1
jne no_Redraw ; Перерисовка?
call Draw_Window ; Если да, перерисовать окно
jmp Wait_Event ; Вернутся в начало цикла ожидания событий
no_Redraw:
;===========--
;=== Получение фокуса
;======================--
cmp dl,2
jne no_GetFocus
mov al,8 ; Получить фокус
call [WinGUI]
jmp Wait_Event
no_GetFocus:
;===========--
;=== Потеря фокуса
;======================--
cmp dl,3
jne no_LostFocus
mov ecx,-2 ; Перерисовать только рамку и заголовок
mov al,2
call [WinGUI]
jmp Wait_Event
no_LostFocus:
;===========--
;=== Выход
;======================--
cmp dl,4
jne no_Exit
mov al,4 ; Функция графического ядра (GUI.DLL) #0x04 - Выход
call [WinGUI]
jmp Wait_Event
no_Exit:
jmp Wait_Event
;========================;
;=== Создать окно ===;
;========================;
Draw_Window:
mov esi,50 *65536+ 350 ; Координата начала окна по оси X - 50, размер по X - 350
mov edi,50 *65536+ 250 ; Координата начала окна по оси Y - 50, размер по Y - 350
xor ebp,ebp ; 0 для обычного окна
mov ecx,11100000000b ; Атрибут окна.
mov edx, WinName ; Заголовок окна
xor eax,eax ; Функция графического ядра (GUI.DLL) #0 - Определить окно
call [WinGUI]
mov ecx,-1 ; Цвет клиентской области окна (-1 цвет по умолчанию)
mov al,2 ; Функция графического ядра (GUI.DLL) #0x02 - Нарисовать окно
call [WinGUI]
ret
;========================;
;=== Секция данных ===;
;========================;
WinName db 'Example application',0
gui_dll db 'GUI',0
WinGUI dd 0
|
|
|
| Просмотреть профиль |
|
 |
CodeWorld Гуру четвертой степени


Зарегистрирован: 26.10.2003 Сообщения: 4425 Откуда: UA
|
Добавлено: Сб Май 28, 2005 9:57 am Заголовок сообщения: |
|
|
А какие компоненты уже есть - кнопки, радио батоны?
Давай ещё скриншотов гуи в действии (у мя по прежнему не пашут последнии версии) |
|
| Просмотреть профиль |
|
 |
Kreoton Специалист


Зарегистрирован: 26.05.2004 Сообщения: 270 Откуда: Moscow
|
Добавлено: Сб Май 28, 2005 8:53 pm Заголовок сообщения: |
|
|
Всё уже есть, причем, отлично работает! Надо только многое вынести из граф.ядра в DLL-ки.
Скрины скоро будут. |
|
| Просмотреть профиль |
|
 |
CodeWorld Гуру четвертой степени


Зарегистрирован: 26.10.2003 Сообщения: 4425 Откуда: UA
|
Добавлено: Вс Май 29, 2005 8:00 am Заголовок сообщения: |
|
|
Всё это что? Деревья есть? Статус бары? Давай весь список, знаешь ли "Всё" - это не ответ  |
|
| Просмотреть профиль |
|
 |
Kreoton Специалист


Зарегистрирован: 26.05.2004 Сообщения: 270 Откуда: Moscow
|
Добавлено: Ср Июн 01, 2005 3:41 pm Заголовок сообщения: |
|
|
| На уровне ядра есть только кнопки, остальное реализую в DLL-ках |
|
| Просмотреть профиль |
|
 |
|