汇编语言学习笔记-使用对话框

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
}

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

 

时间: 2024-10-13 22:02:45

汇编语言学习笔记-使用对话框的相关文章

汇编语言学习笔记-创建最基本的windows窗体

1如果你不熟悉开发环境的搭建请看此文:http://www.cnblogs.com/liulun/archive/2009/12/26/1632985.html2如果你看了此文的所有注释仍看不懂,请暂且不要再看本系列的其他文章了,先学学WINDOWS API的相关知识吧3以上代码摘自一个汇编语言全接触的CHM 是一个名叫Lxx的前辈翻译的4希望得到大家的支持 .386 .model flat,stdcall;内存平坦,参数传递约定 option casemap:none;大小写敏感 ;;;;;;

汇编语言学习笔记-使用窗体控件

代码 .386.model flat,stdcall;内存平坦,参数传递约定option casemap:none;大小写敏感 ;;;;;;引用一些必要的数据include D:\masm32\include\windows.incinclude D:\masm32\include\user32.incinclude \masm32\include\gdi32.inc includelib D:\masm32\lib\user32.libinclude D:\masm32\include\ker

汇编语言学习笔记-在窗口打印文本

代码 .386.model flat,stdcall;内存平坦,参数传递约定option casemap:none;大小写敏感 ;;;;;;引用一些必要的数据include D:\masm32\include\windows.incinclude D:\masm32\include\user32.incincludelib D:\masm32\lib\user32.libinclude D:\masm32\include\kernel32.incincludelib D:\masm32\lib\

汇编语言学习笔记-接收鼠标消息

代码 .386.model flat,stdcall;内存平坦,参数传递约定option casemap:none;大小写敏感 ;;;;;;引用一些必要的数据include D:\masm32\include\windows.incinclude D:\masm32\include\user32.incinclude \masm32\include\gdi32.inc includelib D:\masm32\lib\user32.libinclude D:\masm32\include\ker

汇编语言学习笔记-按指定的字体输出文本

代码 .386.model flat,stdcall;内存平坦,参数传递约定option casemap:none;大小写敏感 ;;;;;;引用一些必要的数据include D:\masm32\include\windows.incinclude D:\masm32\include\user32.incinclude \masm32\include\gdi32.inc includelib D:\masm32\lib\user32.libinclude D:\masm32\include\ker

汇编语言学习笔记-接收键盘消息

代码 .386.model flat,stdcall;内存平坦,参数传递约定option casemap:none;大小写敏感 ;;;;;;引用一些必要的数据include D:\masm32\include\windows.incinclude D:\masm32\include\user32.incinclude \masm32\include\gdi32.inc includelib D:\masm32\lib\user32.libinclude D:\masm32\include\ker

汇编语言学习笔记-使用菜单资源

先做菜单的资源文件,代码如下 代码 #define IDM_TEST 1 #define IDM_HELLO 2 #define IDM_GOODBYE 3 #define IDM_EXIT 4 FirstMenu MENU { POPUP "&PopUp" { MENUITEM "&Say Hello",IDM_HELLO MENUITEM "Say &GoodBye", IDM_GOODBYE MENUITEM SEP

汇编语言学习笔记-设置开发环境,编写hello world!

我用的IDE是masm32官方网站是:http://www.masm32.com/下载的地址是:http://www.masm32au.com/masm32/m32v10r.zip(这个包适合中国人开发For programmers in Australia, China, South East Asia and the Pacific region.) hello  world的汇编代码如下 代码 .386.model flat,stdcalloption casemap:none inclu

J2ME学习笔记(八)

笔记 今天买了2.5磅咖啡豆,星巴克的.有点点贵,用了599大洋,呵呵,偶尔奢侈一下也不为过嘛.刚刚磨了一杯咖啡,点上烟,呵呵,继续开始j2me的学习历程.虽说今天星期六,可是估计今天看不了多少,明天要去公司加班,所以今天还是要早点休息...想想前几个星期,soho的时候每天晚上就是我的工作时间,白天嘛..嘿嘿,睡觉...那真是幸福呀...好日子不再咯... 呵呵,TextBox,好像看名字就知道干什么的了,HTML里面的输入框.呵呵,感觉应该差不多.写一个(和TextBox有相同使用方法的还有