Ir para conteúdo
Fórum Script Brasil
  • 0

Apresentação à interface gráfica com WinASM


Ace Stryker™

Pergunta

Primeiramente precisamos criar nosso projeto, faça como se pede.

001kx.png

002cd.png

Criará 3 arquivos:

-Base.asm: Local onde você colocará nossos códigos

-Base.inc: Local onde será declarado tudo de nosso programa

-Base.rc:Local onde mexeremos na interfáce gráfica do nosso form

Agora clique em base.** e verá seu form:

003iv.png

Agora clique em Base.inc e verá algo mais ou menos assim:

include windows.inc
uselib MACRO libname
include  libname.inc
includelib libname.lib
ENDM
uselib user32
uselib kernel32
DlgProc  PROTO :DWORD,:DWORD,:DWORD,:DWORD
IDC_OK    equ 1003;LOCAL DE CONSTANTES
IDC_IDCANCEL  equ 1004
.data?
hInstance  dd  ?;dd can be written as dword 
;LOCAL DE VARIAVEIS INDEFINIDAS
e em base.asm
.486
.model flat, stdcall
option casemap :none  ; case sensitive
include  base.inc
.code
start:
invoke GetModuleHandle, NULL
mov hInstance, eax
invoke DialogBoxParam, hInstance, 101, 0, ADDR DlgProc, 0
invoke ExitProcess, eax
; -----------------------------------------------------------------------
DlgProc proc hWin :DWORD,
  uMsg :DWORD,
  wParam :DWORD,
  lParam :DWORD
.if uMsg == WM_COMMAND
  .if wParam == IDC_OK
; -----------------------------------------------------------------------
;   TODO
; -----------------------------------------------------------------------
        .elseif wParam == IDC_IDCANCEL
   invoke EndDialog,hWin,0
  .endif
.elseif uMsg == WM_CLOSE
  invoke EndDialog,hWin,0
.endif
xor eax,eax
ret
DlgProc endp
end start
Você agora não precisa entender muito do que vamos estar fazendo com essa função principal ai não, mas vou mostrar os principais: wParam é o local de nossos eventos, lá em cima, vemos que se nosso wParam é IDC_OK ele executará alguma função(To do), o que vamos fazer é: Ao clicar no botão IDC_OK o programa abrirá uma messagebox com o texto digitado no textbox de cima, com o titulo no de baixo. Após o wParam == IDC_OK digite
invoke GetDlgItemText, hWin, 1001, offset Buffer, sizeof Buffer;Pegamos o text do textbox com ID 1001 e jogamos para buffer
   invoke GetDlgItemText, hWin, 1002, offset Buffer2, sizeof Buffer2;Pegamos o texto do textbox 1002
   invoke MessageBox,hWin, offset Buffer, offset Buffer2, MB_OK;Chamamos nossa MessageBox
e adicione na Base.inc isto:
Buffer db 256 dup(?)
Buffer2 db 256 dup(?); são nossos retornos de string da função GetDlgItemText

Clique em Make/Go ALL

E teremos nosso resultado.

004iv.png

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...