|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июл 31, 2004 22:48:19 Не получается добавить в ToolBar кнопки. WINDOWS 98 ToolBar у меня в диалоге (ресурс) BMP(2 рисунка по 16х16) в ресурсе Делаю так: ;--------------------------------------------------------------------- - TB TBBUTTON <> TBAB TBADDBITMAP <> Main_ToolBarBitmap -идентификатор в ресурсе mov TBAB.hInst, 0 invoke LoadBitmap,hInstance,Main_ToolBarBitmap m2m TBAB.nID,eax invoke SendMessage,Main_ToolBar_hWnd,TB_ADDBITMAP,2,offset TBAB mov TB.iBitmap,1;Номер картинки mov TB.idCommand,1 mov TB.fsState,TBSTYLE_BUTTON mov TB.fsState,TBSTATE_ENABLED invoke SendMessage,Main_ToolBar_hWnd,TB_ADDBUTTONS,1,offset TB ;--------------------------------------------------------------------- - Но результата нет.Помогите пожалуйста. Тут исходник делаю в RadAsm _1069815977__HollyDay.rar |
|
|
Дата: Июл 31, 2004 23:37:28 · Поправил: bogrus Ты не заполнил размер структуры : invoke SendMessage,Main_ToolBar_hWnd,TB_BUTTONSTRUCTSIZE,SIZEOF TBBUTTON,0 И с ebx намутил , что прога на NT вообще вываливаеться , замени на нули или ставь "push ebx" перед "xor ebx,ebx" , а потом "pop ebx" перед каждым "ret" |
|
|
Дата: Авг 1, 2004 00:15:16 > или ставь "push ebx" перед "xor ebx,ebx" , а потом "pop ebx" перед каждым "ret" В masm можно использовать директиву uses SomeProc proc uses ebx first:DWORD, second:DWORD ......... ret SomeProc endp |
|
|
Дата: Авг 1, 2004 01:28:35 Спасибо за помощь программа пашет. А на счет ebx ничего не понял поясните пожалуйста |
|
|
Дата: Авг 1, 2004 01:56:33 Если используешь в своей процедуре (ф-ции) регистры esi,edi,ebx,ebp то предварительно нужно где-то сохранить их содержимое . Потом , поиспользовав их в своей процедуре , возвращаешь сохранённые значения на свои места (в регистры) . Потому что процедура вызвавшая твою надееться на то , что содержимое этих регистров не изменилось . Есть такая договорённость . Вот ты например сначала делаешь xor ebx,ebx . Потом вызываешь ф-цию GetDlgItem . Затем mov LVC.fmt,ebx . А ты уверен , что после GetDlgItem в ebx будет 0 ? Почему ? |
|
|
Дата: Авг 1, 2004 04:12:05 > А на счет ebx ничего не понял поясните пожалуйста Процедура, в случае использования регистров ebx,esi,edi,ebp обязана их сохранять на входе и восстанавливать при выходе из процедуры. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.158 |