Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 599
от 12.11.2006, 07:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 364, Экспертов: 25
В номере:Вопросов: 1, Ответов: 1


Вопрос № 61506: Здравствуйте эксперты!!!! 1.Я только начал изучать ассемблер и хотел бы узнать каким образом можно на основной форме создать Label как в Delhi. 2. Можно ли использовать например тот же Label из файла ресурсов в основной форме(не в DialogBox)...

Вопрос № 61.506
Здравствуйте эксперты!!!!
1.Я только начал изучать ассемблер и хотел бы узнать каким образом можно на основной форме создать Label как в Delhi.
2. Можно ли использовать например тот же Label из файла ресурсов в основной форме(не в DialogBox)
3. Каким образом можно изменить цвет DialogBox'а
Отправлен: 06.11.2006, 19:43
Вопрос задал: Sergei__2006 (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Волков Павел Юрьевич
Здравствуйте, Sergei__2006!
1.
Если Вы программируете в IDE
(RadASM http://www.radasm.com/,
WinAsm http://www.winasm.net/
, полный список - http://wasm.ru/toollist.php?list=7)

то там есть средства визуализации или можно создать в отдельном редакторе (например ResEd http://www.radasm.com/projects/ResEd.zip) скомпилировать и присоединить во время линковки.

2.
Конечно можно, ведь Label - это просто строка, посмотрите функцию LoadString, она копирует строку из ресурсов в отдельный буфер.

3.
Попробуйте обрабатывать сообщение WM_CTLCOLORDLG, при приходе этого сообщения, wParam - Handle to the device context for the dialog box (индентификатор контекста устройства вывода)
, lParam - Handle to the dialog box (индентификатор диалогового окна).
При обработке этого сообщения надо вернуть индентификатор кисти, которой будет закрашено диалоговое окно. Необходимо предусмотреть удаление индентификатора кисти.

пример:
DlgProc hWnd, msg, wParam, lParam

mov eax,[msg]
cmp eax,WM_CTLCOLORDLG
je ctlcolordlg
..
cmp eax,WM_CLOSE
je close
..
ctlcolordlg:
INVOKE CreateSolidBrush, 0000ff00h
mov [hBrush], eax
ret
close:
INVOKE DeleteObject, [hBrush]
INVOKE EndDialog, [hdlg], [wParam]
mov eax, 1
ret
синтаксис FASMа, преобразовать к другому - не проблема. Цвет в формате RGB - 0000ff00h.

Пример использования можно увидеть в пакете MASM32v8(или 9) - examplesEXAMPLE7TREEDEMO, изменяют цвет SplitBar'a при перемещении.

Успехов.
---------
Век живи, век учись.
Ответ отправил: Волков Павел Юрьевич (статус: 9-ый класс)
Ответ отправлен: 07.11.2006, 07:51
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное