flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
coconut 07 May 2005, 03:23
i dont believe invoke macro can push the constant (from comctl32.inc) like that. perhaps try to define TRACKBAR_CLASS as 'msctls_trackbar32',0 first
|
|||
![]() |
|
dieboy 07 May 2005, 04:08
THANK YOU, it works !
This is full source code (if someone need...): Code: format PE GUI 4.0 entry start include '%fasminc%/win32a.inc' section '.data' data readable writeable _title db 'Win32 program template',0 _class db 'FASMWIN32',0 mainhwnd dd ? hinstance dd ? htb dd ? tbclass db 'msctls_trackbar32', 0 msg MSG wc WNDCLASS imm INITCOMMONCONTROLSEX section '.code' code readable executable start: invoke GetModuleHandle,0 mov [hinstance],eax invoke LoadIcon,0,IDI_APPLICATION mov [wc.hIcon],eax invoke LoadCursor,0,IDC_ARROW mov [wc.hCursor],eax mov [wc.style],0 mov [wc.lpfnWndProc],WindowProc mov [wc.cbClsExtra],0 mov [wc.cbWndExtra],0 mov eax,[hinstance] mov [wc.hInstance],eax mov [wc.hbrBackground],COLOR_BTNFACE+1 mov [wc.lpszMenuName],0 mov [wc.lpszClassName],_class invoke RegisterClass,wc invoke CreateWindowEx,0,_class,_title,WS_VISIBLE+WS_DLGFRAME+WS_SYSMENU,128,128,192,192,NULL,NULL,[hinstance],NULL mov [mainhwnd],eax mov [imm.dwSize], sizeof.INITCOMMONCONTROLSEX mov [imm.dwICC], ICC_BAR_CLASSES invoke InitCommonControlsEx, imm invoke CreateWindowEx, 0, tbclass, NULL, WS_CHILD + WS_VISIBLE + TBS_HORZ, 5, 5, 100, 20, [mainhwnd], 0, [hinstance], NULL mov [htb], eax msg_loop: invoke GetMessage,msg,NULL,0,0 or eax,eax jz end_loop invoke TranslateMessage,msg invoke DispatchMessage,msg jmp msg_loop end_loop: invoke ExitProcess,[msg.wParam] proc WindowProc, hwnd,wmsg,wparam,lparam push ebx esi edi cmp [wmsg],WM_DESTROY je wmdestroy defwndproc: invoke DefWindowProc,[hwnd],[wmsg],[wparam],[lparam] jmp finish wmdestroy: invoke PostQuitMessage,0 xor eax,eax finish: pop edi esi ebx return endp section '.idata' import data readable writeable library kernel,'KERNEL32.DLL',\ user,'USER32.DLL',\ cmt,'COMCTL32.DLL' import kernel,\ GetModuleHandle,'GetModuleHandleA',\ ExitProcess,'ExitProcess' import user,\ RegisterClass,'RegisterClassA',\ CreateWindowEx,'CreateWindowExA',\ DefWindowProc,'DefWindowProcA',\ GetMessage,'GetMessageA',\ TranslateMessage,'TranslateMessage',\ DispatchMessage,'DispatchMessageA',\ LoadCursor,'LoadCursorA',\ LoadIcon,'LoadIconA',\ PostQuitMessage,'PostQuitMessage' import cmt,\ InitCommonControlsEx, 'InitCommonControlsEx' |
|||
![]() |
|
coconut 07 May 2005, 14:20
InitCommonControls should work too, why use the Ex version?
|
|||
![]() |
|
dieboy 09 May 2005, 06:56
I have accustomed
![]() |
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2023, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.