oicìliS © - Assembly para Iniciantes
CAIXA DE FERRAMENTAS
(ver 1.0 de 22.01.02)

A Caixa de Ferramentas NumaBoa

 

Nossa caixa de ferramentas contém modelos, snippets, tools e programas acessórios - sempre em ordem alfabética e acompanhados de uma breve explicação.

 

MODELOS

 

Janelinha NumaBoa Modelo de classe de janela padrão Windows com windows procedure (gerenciador de mensagens) mínimo.

.386

.MODEL FLAT,STDCALL

option casemap:none

 

include \masm32\include\windows.inc

include \masm32\include\kernel32.inc

include \masm32\include\user32.inc

 

includelib \masm32\lib\kernel32.lib

includelib \masm32\lib\user32.lib

 

gerenteJanela proto :DWORD, :DWORD, :DWORD, :DWORD

 

.DATA?

mInstancia DWORD ?

linhaComando DWORD ?

 

.DATA

NomeClasse db "JanelaNua",0

TituloJanela db "Janelinha NumaBoa",0

 

.CODE

inicio:

invoke GetModuleHandle, NULL

mov mInstancia, eax

invoke GetCommandLine

mov linhaComando, eax

invoke gerenteJanela, mInstancia, NULL, linhaComando, SW_SHOWDEFAULT

invoke ExitProcess,0

 

gerenteJanela proc mInst:DWORD, mInstAnt:DWORD, linhaCmd:DWORD, Mostra:DWORD

LOCAL ej:WNDCLASSEX

LOCAL mJanela:HWND

LOCAL malote:MSG

 

mov ej.cbSize, SIZEOF WNDCLASSEX

mov ej.style, CS_HREDRAW or CS_VREDRAW

mov ej.lpfnWndProc, OFFSET gerenteMensagem

mov ej.cbClsExtra, NULL

mov ej.cbWndExtra, NULL

push mInst

pop ej.hInstance

invoke LoadIcon, NULL, IDI_WINLOGO

mov ej.hIcon, eax

mov ej.hIconSm, eax

invoke LoadCursor, NULL, IDC_ARROW

mov ej.hCursor, eax

mov ej.hbrBackground, COLOR_WINDOW+1

mov ej.lpszMenuName, NULL

mov ej.lpszClassName, OFFSET NomeClasse

invoke RegisterClassEx, ADDR ej

invoke CreateWindowEx, NULL, ADDR NomeClasse, ADDR TituloJanela,

WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,

CW_USEDEFAULT, CW_USEDEFAULT,

CW_USEDEFAULT, NULL, NULL, mInst, NULL

mov mJanela,eax

invoke ShowWindow, mJanela, SW_SHOWNORMAL

invoke UpdateWindow, mJanela

.WHILE TRUE

invoke GetMessage, ADDR malote, NULL, 0, 0

.BREAK .IF (eax < 1)

invoke TranslateMessage, ADDR malote

invoke DispatchMessage, ADDR malote

.ENDW

mov eax, malote.wParam

ret

gerenteJanela endp

 

gerenteMensagem proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM

.IF uMsg == WM_CREATE

 

.ELSEIF uMsg == WM_SIZE

 

.ELSEIF uMsg == WM_PAINT

 

.ELSEIF uMsg == WM_COMMAND

 

.ELSEIF uMsg == WM_CLOSE

 

.ELSEIF uMsg==WM_DESTROY

invoke PostQuitMessage, NULL

xor eax,eax

ret

.ENDIF

invoke DefWindowProc, hWnd, uMsg, wParam, lParam

ret

gerenteMensagem endp

 

end inicio


 

SNIPPETS
Centrar Janela Centrar a janela na tela, independente da resolução usada. O valor de retorno são EAX=posição X e EBX=posição Y.

largJanela:DWORD

altJanela: DWORD

...

invoke GetSystemMetrics, SM_CYSCREEN
shr eax,1
sub eax, altJanela/2
push eax

invokeGetSystemMetrics, SM_CXSCREEN
shr,1
sub eax, largJanela/2
pop ebx
; obtém a altura da tela
; divide o valor por 2
; subtrai metade da altura da janela
; guarda o valor calculado de Y na pilha

; obtém a largura da tela
; divide o valor por 2
; subtrai a metade da largura da janela
; recupera o valor calculado de Y

 

Também podemos transformar este código numa função, por exemplo:

CalcMeio proto :DWORD, :DWORD

...

CalcMeio proc dimJanela:DWORD, dimTela:DWORD

shr dimTela,1

shr dimJanela,1

mov eax, dimJanela

sub dimTela, eax

return dimTela

CalcMeio endp


MACROS

 

Cor em RGB

Macro para produzir o valor de uma cor em RGB no registrador EAX.


RGB macro red, green, blue

xor eax, eax

mov ah, blue

shl eax, 8

mov ah, green

mov al, red

endm

 

 

 

PROGRAMAS ACESSÓRIOS

 

ResourceStudio32
versão 1.0

Programa para gerar e compilar arquivos de recursos.


Autor: Symantec

Tipo: ?

Origem: hutch

Download: nre.exe (1.691 Kb)

 

 
RGN Generator
versão 1.01

Programa para gerar uma estrutura RGNDATA (região de dados) a partir de arquivos gráficos.


Autor: Richard De Oude

Tipo: Freeware

Origem: CodeProject ou CodeGuru

Download: RGNCreator_demo.zip (317 Kb)

 

 


| AAAA | Página Inicial | Mapa do Site | Novidades | Busca | Indique esta página | Mestre da Teia | Voltar |
| Localizador || @ Info NumaBoa > oicìliS > Assembly > Referências > Caixa de Ferramentas
Créditos: vovó Vicki

webdesign sobMedida by vickiSoft - /informatica/oiciliS/assembler/referencias/cxFerramentas.php (22.01.02) versão 1.0 de 08.02.02
Licença Creative Commons 1998-2006 Aldeia NumaBoa
Exceto onde especificamente declarado, todo material deste site é disponibilizado de acordo com a Licença Creative Commons.