Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема добавления BITMAP'ов на BUTTON, FASM-Добавления BITMAP на BUTTON 
V
    Опции темы
drZmeu
  Дата 27.5.2007, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Привет люди =)
Короче ASM под Win32 изучаю недавно и пишу на FASM.
Хотел написать простенький трейнер для игрушки всё вроде ничего, но вот хотел добавить в своей программке картинки на кнопочки вобшем сделать её красивее. Скачал исходники готовых трейнеров вроде разобрался, а не работает =(
Народ помогите разобраться в чём же дело =(
И ещё вопрос можно ли как-то упростить этот код+картинки =\

Вот код:
Код

format PE GUI 4.0
entry start
include 'win32a.inc'
include 'macro\if.inc'
;------------------------
ID_MAINDIALOG = 100
ID_INFO = 201
ID_MONEY = 202
ID_EXIT = 203
ID_QUIT = 204
;------------------------
section '.data' data readable writeable
hInstance dd 0   ; HWND основного окна
mess1 db 'Hello Money',0
mess2 db 'Hello Info',0
hButtons = himages+8*4
himages rd 4*13
himage  dd 0
handler dd 0     ;HWND кнопки
section '.code' code readable writeable
proc start
invoke GetModuleHandle,0
mov [hInstance],eax
invoke DialogBoxParam,eax,ID_MAINDIALOG,HWND_DESKTOP,DialogProc,0
invoke ExitProcess,0
endp
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
proc wminitproc,dlghwnd
invoke LoadIcon,[hInstance],1
invoke SendMessage,[dlghwnd],WM_SETICON,1,eax

        mov eax,himages
        mov [himage],eax


        mov esi,1
        mov edi,himages
        @@:

        invoke LoadBitmap,[hInstance],esi

        mov [edi],eax
        add esi,1
        cmp esi,12
        je @F
        add edi,4
        jmp @B
        @@:
        stdcall knopky,[dlghwnd]
ret
endp
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
proc DialogProc,hWnd,Msg,wParam,lParam
push ebx esi edi
.if [Msg]=WM_COMMAND
.if [wParam]=ID_MONEY
call MoneyProc
.endif
;--------------------
.if [wParam]=ID_INFO
call InfoProc
.endif
;--------------------
.if [wParam]=ID_QUIT
call QuitProc
.endif
;--------------------
.elseif [Msg]=WM_INITDIALOG
stdcall wminitproc,[hWnd]
;--------------------
.elseif [Msg]=WM_CLOSE
invoke EndDialog,[hWnd],0
.else
mov eax,FALSE
ret
.endif
;--------------------
mov eax,TRUE
ret
pop edi esi ebx
ret
endp
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
proc knopky, hdlg
push esi edi ebx
xor edi,edi
mov ebx,hButtons
mov esi,ID_QUIT
@@:
invoke GetDlgItem,[hdlg],esi
mov [handler],eax
invoke SendMessage,eax,\
 BM_SETIMAGE,IMAGE_BITMAP,[ebx]
; invoke ShowWindow,[handler],SW_HIDE
_ret:
pop ebx edi esi
ret
endp
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;-----------------------money--------------------
proc MoneyProc
invoke MessageBox,0,mess1,mess1,0
ret
endp
;---------------------INFO-----------------------
proc InfoProc
invoke MessageBox,0,mess2,mess2,0
ret
endp
;------------------------------------------------
proc QuitProc
pop edi esi ebx
invoke ExitProcess,0
endp
;------------------------------------------------
section '.idata' import readable writeable

library kernel32,'KERNEL32.DLL',\
user32,'USER32.DLL',\
gdi32,'GDI32.DLL'
include 'api\kernel32.inc'
include 'api\user32.inc'
include 'api\gdi32.inc'

section '.rsrc' resource data readable

directory RT_DIALOG,_dialogs,RT_BITMAP,bitmaps

resource _dialogs,\
ID_MAINDIALOG,LANG_ENGLISH+SUBLANG_ENGLISH_US,_main_dlg

dialog _main_dlg, 'Triners +1',70,70,100,85,WS_POPUP;+DS_MODALFRAME
dialogitem 'BUTTON','&Money',ID_MONEY,2,70,45,15,WS_VISIBLE+WS_TABSTOP+BS_DEFPUSHBUTTON+BS_FLAT+BS_BITMAP
dialogitem 'BUTTON','&Info',ID_INFO,1,16,35,10,WS_VISIBLE+WS_TABSTOP+BS_DEFPUSHBUTTON+BS_FLAT+BS_BITMAP
dialogitem 'BUTTON','&Quit',ID_QUIT,1,30,35,10,WS_VISIBLE+WS_TABSTOP+BS_DEFPUSHBUTTON+BS_FLAT+BS_BITMAP
enddialog

resource bitmaps,1,LANG_NEUTRAL,bitmap1,\
2,LANG_NEUTRAL,bitmap2,\
3,LANG_NEUTRAL,bitmap3

bitmap bitmap1,'run256.bmp'
bitmap bitmap2,'info256.bmp'
bitmap bitmap3,'exit256.bmp'


Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  Image.zip 5,19 Kb
--------------------
[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   Вверх
drZmeu
Дата 27.5.2007, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Народ ну помогите же =)
Весь день парюсь =(((
--------------------
[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   Вверх
drZmeu
  Дата 28.5.2007, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Есть мнение что у мну чёт неправильно в LoadBitmap или в последуюших параметрах =\
--------------------
[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   Вверх
drZmeu
  Дата 28.5.2007, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Ура разобрался.
Упростил чутка код + подправил, что нужно и получилось в полнее прилично.
Правда в MsPaint не очень рисую =)
Вобшем кому интересно скачивайте всего 4 кб.
----------------------------------------------------------------------------------------------------------
FASM v1.67.14 - v1.67.21

P.S: Готов выслушать не очень жёсткую критику и предложения!  smile 

Присоединённый файл ( Кол-во скачиваний: 39 )
Присоединённый файл  knopky.zip 3,59 Kb
--------------------
[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   Вверх
cdman
Дата 19.12.2010, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



drZmeu, выложи пожалуйста свой пример с кнопкой, не качается она по ссылке. Или кинь мне по скайпу cdman__x. Я тоже много на Асме пишу, пообщаемся.
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

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

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


 




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


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

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