Поиск:

Ответ в темуСоздание новой темы Создание опроса
> обработка WM_COMMAND.. 
:(
    Опции темы
0000
Дата 10.5.2007, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 11.7.2006
Где: Нижний Новгород

Репутация: нет
Всего: 5



Надо просто реализовать окошко с кнопкой Exit...поскольку пользуемся стандартными API-функциями - получается примерно следующее:
(покажу тока то, где вопрос)
Код

    push 0
    push [HINST]
    push 0
    push 0
    push 400  
    push 400  
    push 100  
    push 100  
        push WS_OVERLAPPEDWINDOW
    push OFFSET TITLENAME
    push OFFSET CLASSNAME
    push 0
    CALL CreateWindowExA@48
    cmp eax, 0
    jz _ERR
    mov [NEWHWND], eax

        push 0
    push [HINST]
    push Button_ID
    push [NEWHWND]
    push 75
    push 70
    push 140
    push 25
    push WS_CHILD
         push OFFSET ButtonText
    push OFFSET ButtonClassName
    push 0    
    CALL CreateWindowExA@48
    cmp eax, 0
    jz _ERR
    mov [BUTTONHWND], eax

цикл обработки сообщений есть - там все нормуль....проверяем MESSAGE:
Код

    cmp DWORD PTR [ebp + 0ch], WM_COMMAND
    je WMCOMMAND

так отловили WM_COMMAND и далее уже начинаем сравнивать wparam, который находится [ebp + 10h]
но вот проблема - этот wparam может быть в двух регистрах... и как правильно его обработать, что у меня он совпадает с моим Button_ID  я пока не сооброжу...
просто в метке WMCOMMAND:  
я уж чего тока не делал - и все срабатывает....
Код

WMCOMMAND:
        cmp DWORD PTR [ebp + 10h], Button_ID
        je _err

_err у меня поставлена на выход...может кто объяснит как правильно обработать такое нажжатие кнопки..
Спасибо
PM MAIL ICQ   Вверх
anwe
Дата 10.5.2007, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: нет
Всего: 23



Цитата(0000 @  10.5.2007,  18:15 Найти цитируемый пост)
этот wparam может быть в двух регистрах

В каких это двух? wParam размерности dword.
Для контролов: нижнее слово wParam - ID, верхнее - код уведомления.
Код

mov  eax,wParam
cmp ax,ButtonID

PM MAIL   Вверх
0000
Дата 11.5.2007, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 11.7.2006
Где: Нижний Новгород

Репутация: нет
Всего: 5



я асм не очень знаю...вообще предполагал, что при большом значении ButtonID wParam может находиться в двух регистрах...
теперь разобрался...сенкс
PM MAIL ICQ   Вверх
Mikl__
Дата 30.5.2007, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 18.5.2007

Репутация: нет
Всего: 1



0000, ID не может быть больше 65535 
PM MAIL   Вверх
drZmeu
  Дата 1.6.2007, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 22.11.2006

Репутация: нет
Всего: 1



День добрый =)
Попробуй так:
Код

   cmp DWORD PTR [ebp + 16ch], WM_COMMAND
    je WMCOMMAND

или

   cmp DWORD PTR [ebp + 16h], WM_COMMAND
    je WMCOMMAND

Точно не помню так как использую FASM и его макросы .if
--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code]
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для Windows/Dos | Следующая тема »


 




[ Время генерации скрипта: 0.0603 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.