rsrc.rc文件
代码
#include
<
resource.h
>
#define IDC_EDIT 3000
#define IDC_BUTTON 3001
#define IDC_EXIT 3002
MyDialog DIALOG 10 , 10 , 205 , 60
STYLE 0x0004 | DS_CENTER | WS_CAPTION | WS_MINIMIZEBOX |
WS_SYSMENU | WS_VISIBLE | WS_OVERLAPPED | DS_MODALFRAME | DS_3DLOOK
CAPTION " 我的对话框 "
{
EDITTEXT IDC_EDIT, 15 , 17 , 111 , 13 , ES_AUTOHSCROLL | ES_LEFT
DEFPUSHBUTTON " 显示编辑框中的内容 " , IDC_BUTTON, 141 , 10 , 52 , 13
PUSHBUTTON " 退出程序 " , IDC_EXIT, 141 , 26 , 52 , 13
}
#define IDC_EDIT 3000
#define IDC_BUTTON 3001
#define IDC_EXIT 3002
MyDialog DIALOG 10 , 10 , 205 , 60
STYLE 0x0004 | DS_CENTER | WS_CAPTION | WS_MINIMIZEBOX |
WS_SYSMENU | WS_VISIBLE | WS_OVERLAPPED | DS_MODALFRAME | DS_3DLOOK
CAPTION " 我的对话框 "
{
EDITTEXT IDC_EDIT, 15 , 17 , 111 , 13 , ES_AUTOHSCROLL | ES_LEFT
DEFPUSHBUTTON " 显示编辑框中的内容 " , IDC_BUTTON, 141 , 10 , 52 , 13
PUSHBUTTON " 退出程序 " , IDC_EXIT, 141 , 26 , 52 , 13
}
asm文件
代码
.
386
.model flat,stdcall
option casemap:none
DlgProc proto :DWORD,:DWORD,:DWORD,:DWORD
include D:\masm32\include\windows.inc
include D:\masm32\include\user32.inc
include D:\masm32\include\kernel32.inc
includelib D:\masm32\lib\user32.lib
includelib D:\masm32\lib\kernel32.lib
.data
DlgName db ' MyDialog ' , 0
AppName db ' My own dialog ' , 0
.data ?
hInstance HINSTANCE ?
buffer db 512 dup( ? )
. const
IDC_EDIT equ 3000
IDC_BUTTON equ 3001
IDC_EXIT equ 3002
.code
start:
invoke GetModuleHandle, NULL
mov hInstance,eax
invoke DialogBoxParam, hInstance, ADDR DlgName,NULL, addr DlgProc, NULL
invoke ExitProcess,eax
DlgProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
.IF uMsg == WM_INITDIALOG
invoke GetDlgItem, hWnd,IDC_EDIT
invoke SetFocus,eax
.ELSEIF uMsg == WM_CLOSE
invoke EndDialog, hWnd,NULL
.ELSEIF uMsg == WM_COMMAND
mov eax,wParam
.IF eax == IDC_BUTTON
invoke GetDlgItemText,hWnd,IDC_EDIT,ADDR buffer, 512
invoke MessageBox,NULL,ADDR buffer,ADDR AppName,MB_OK
.ELSEIF ax == IDC_EXIT
invoke EndDialog, hWnd,NULL
.ENDIF
.ELSE
mov eax,FALSE
ret
.ENDIF
mov eax,TRUE
ret
DlgProc endp
end start
.model flat,stdcall
option casemap:none
DlgProc proto :DWORD,:DWORD,:DWORD,:DWORD
include D:\masm32\include\windows.inc
include D:\masm32\include\user32.inc
include D:\masm32\include\kernel32.inc
includelib D:\masm32\lib\user32.lib
includelib D:\masm32\lib\kernel32.lib
.data
DlgName db ' MyDialog ' , 0
AppName db ' My own dialog ' , 0
.data ?
hInstance HINSTANCE ?
buffer db 512 dup( ? )
. const
IDC_EDIT equ 3000
IDC_BUTTON equ 3001
IDC_EXIT equ 3002
.code
start:
invoke GetModuleHandle, NULL
mov hInstance,eax
invoke DialogBoxParam, hInstance, ADDR DlgName,NULL, addr DlgProc, NULL
invoke ExitProcess,eax
DlgProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
.IF uMsg == WM_INITDIALOG
invoke GetDlgItem, hWnd,IDC_EDIT
invoke SetFocus,eax
.ELSEIF uMsg == WM_CLOSE
invoke EndDialog, hWnd,NULL
.ELSEIF uMsg == WM_COMMAND
mov eax,wParam
.IF eax == IDC_BUTTON
invoke GetDlgItemText,hWnd,IDC_EDIT,ADDR buffer, 512
invoke MessageBox,NULL,ADDR buffer,ADDR AppName,MB_OK
.ELSEIF ax == IDC_EXIT
invoke EndDialog, hWnd,NULL
.ENDIF
.ELSE
mov eax,FALSE
ret
.ENDIF
mov eax,TRUE
ret
DlgProc endp
end start