Фасм

Тема в разделе "WASM.BEGINNERS", создана пользователем dgs, 19 июл 2008.

  1. dgs

    dgs New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2008
    Сообщения:
    434
    Привет всем, недавно решил начать программировать на фасме, до этого баловался Delphi, не смейтесь над исходником, но у меня проблемы с диалогом. Вроде все правильно, а как то к мыши прилипает. :) И как сделать тулбар со стилем TBSTYLE_FLAT, ведь структура:

    Код (Text):
    1. struct TBBUTTON
    2.   iBitmap   dd ?
    3.   idCommand dd ?
    4.   fsState   db ?
    5.   fsStyle   db ?
    6.             dw ?
    7.   dwData    dd ?
    8.   iString   dd ?
    9. ends
    TBSTYLE_FLAT не влазит в fsStyle как байт, а как в три байта запихнуть??? Бред какой то... :) Помогите пожалуйста разобраться...
     
  2. dgs

    dgs New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2008
    Сообщения:
    434
    Вот и файл.
     
  3. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    Код (Text):
    1. OR DWORD PTR [Твоя_структура.fsStyle], TBSTYLE_FLAT
    Видимо, как-то так.
    ЗЫ: а вообще, это извращение, однако, трёхбайтные парамы... Одного байта пожалели, блин. Мелкософт, одно слово %)
     
  4. dgs

    dgs New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2008
    Сообщения:
    434
    Хе - хе а FLATным тулбар не стал... Параметр TBSTYLE_FLAT = 800h, а один байт нумеруется только до 256 кажется так. В общем задача как пихнуть в 3 байта 800h.
     
  5. dgs

    dgs New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2008
    Сообщения:
    434
    А может ошибка не в мелкософте а в includах фасма в MSDN к примеру дается такая структура:

    Код (Text):
    1. typedef struct _TBBUTTON { \\ tbb  
    2.     int iBitmap;
    3.     int idCommand;
    4.     BYTE fsState;
    5.     BYTE fsStyle;
    6.     DWORD dwData;
    7.     int iString;
    8. } TBBUTTON, NEAR* PTBBUTTON, FAR* LPTBBUTTON;
    9. typedef const TBBUTTON FAR* LPCTBBUTTON;
    Дык все равно в байт запихнуть Word? Это как? :)
     
  6. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    dgs
    Стиль TBSTYLE_FLAT отношения к TBBUTTON не имеет. Посему ему и не нужно влазить в байт. Это раз.
    Ни в инклудах фасма, ни в MSDN нет ошибки. В MSDN код на си. Компилятор автоматически выравнивает положение поля структуры на границу равную его размеру. Поэтому между BYTE fsStyle и DWORD dwData (из MSDN-описания) есть два байта, отведенные на выравнивание dwData. Это два.
    Фасм так не своевольничает, поэтому там в описании явно указаны два безымянных байта. Это три.
    И никогда не запихивайте ничего в три байта.
    DEEP
    Не бывает трехбайтовых полей у структур. И нечего все валить на Microsoft. 99% процентов ругательств в сторону бедного Гейтса - результат некомпетентности обругивающих.
     
  7. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Эм... с каких пор это свои сообщения нельзя редактировать? O_o
     
  8. dgs

    dgs New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2008
    Сообщения:
    434
    Ну а как FLAT кнопки тогда сделать как в делфи?
     
  9. dgs

    dgs New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2008
    Сообщения:
    434
    Блин ну интересно без собственной отрисовки можно обойтись или нет?
     
  10. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    а не хочешь ресурс ышкой накликать в ресхаке?)
     
  11. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    Можно. Юзай мою отрисовку ;)
    http://www.wasm.ru/forum/viewtopic.php?pid=255650#p255650
    хотя там, наверное, тоже придётся напильником работать... всёж-таки состояний у тулбарных кнопок может быть больше, тот же LineBreak, или как его там...

    ЗЫ: мде, а про трёхбайтный парам и впрямь натупил... надо больше спать
     
  12. dgs

    dgs New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2008
    Сообщения:
    434
    :)

    Спасибо.

    Отредактировано dgs (2008-07-19 12:35:05)
     
  13. dgs

    dgs New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2008
    Сообщения:
    434
    Дык может кто поможет с диалогом? Исходник ни кто не качал?